Języki i metody programowania. Ćwiczenie 9.
Tablice wielowymiarowe
Cel ćwiczenia: Deklarowanie tablic dwuwymiarowych. Definiowanie oraz inicjowanie tablic losowymi danymi. Sortowanie elementów tablic. Inne operacje na tablicach.
1. Zdefiniować typ tdtab określający tablicę prostokątną liczb całkowitych typu integer o rozmiarze W x K, gdzie W – liczba wierszy tablicy, K – liczba kolumn tablicy, są
stałymi. W programie głównym zdefiniować zmienną tablicową tab typu tdtab.
Opracować procedury:
a) inicjującą tablicę tab losowymi liczbami całkowitymi należącymi do przedziału [-100, 100) (wykorzystać funkcje randomize i random); parametrami procedury powinny być zmienna tablicowa oraz liczby inicjowanych wierszy i kolumn;
nagłówek procedury: procedure los_td(Var t: tdtab; iw, ik: integer), gdzie iw<=W oraz ik<=K – wymiary inicjowanej podtablicy;
b) wyprowadzającą zawartość tablicy na ekran - wierszami w formacie tab[i]:4;
c) obliczającą sumę elementów tablicy;
d) znajdującą w tablicy element minimalny i maksymalny;
e) sortującą elementy w wierszu o numerze i, gdzie 1<= i <= W;
f) sortującą elementy w kolumnie o numerze j, gdzie 1<= j <=K.
Wykorzystać opracowane procedury w programie.
2. Zdefiniować typ bdtab określający tablicę kwadratową liczb typu byte o rozmiarze N x N, gdzie N - stała. W programie głównym zdefiniować zmienną tablicową tab typu bdtab.
Opracować procedury:
a) inicjującą tablicę losowymi liczbami całkowitymi należącymi do zbioru {0,1};
parametrami procedury powinny być zmienna tablicowa oraz rozmiar inicjowanej podtablicy kwadratowej;
b) wyprowadzającą zawartość tablicy na ekran - wierszami w formacie tab[i]:2;
c) obliczającą sumę elementów tablicy znajdujących się na przekątnej typu | \ |;
d) obliczającą sumę elementów tablicy znajdujących się na przekątnej typu | / |;
e) obliczającą sumę elementów znajdujących się w obszarze powyżej przekątnej typu |\ |;
f) obliczającą sumę elementów znajdujących się w obszarze powyżej przekątnej typu | /|.
3. Zdefiniować typ zdtab określający tablicę kwadratową elementów typu char o rozmiarze N x N, gdzie N - stała. W programie głównym zdefiniować zmienną tablicową tab typu zdtab. Opracować procedury:
a) inicjującą tablicę losowymi znakami o kodach należących do przedziału [33,128];
parametrami procedury powinny być zmienna tablicowa oraz rozmiar inicjowanej podtablicy kwadratowej;
b) wyprowadzającą zawartość tablicy na ekran - wierszami w formacie tab[i]:2;
c) wyznaczającą liczbę wystąpień w tablicy znaku o kodzie podanym z klawiatury;
d) sortującą elementy w każdym wierszu tablicy.
4. Opracować procedurę obliczającą iloczyn macierzy A i B o elementach rzeczywistych gdzie A jest macierzą o rozmiarze P x N, B jest macierzą o rozmiarze N x Q, natomiast C = A B jest macierzą o rozmiarze P x Q. Elementy c[i,j] macierzy C są obliczane według wzoru c[i,j] = a[i,k]b[k,j], dla k=1,..., N oraz i=1,...,P; j=1,...,Q.