pascal5_tablice.pdf
(
30 KB
)
Pobierz
pascal5_tablice,.doc
Free Pascal – tablice
Tablice – wprowadzenie
Pascal pozwala na skorzystanie z tablic, czyli struktur złożonych z elementów jakiegoś
typu. Tablice deklaruje się po słowie kluczowym var. Deklaracja tablicy jednowymiarowej
wygląda następująco:
nazwa_tablicy
: array[
start
..
stop
]
of
typ;
np. tablica ta o typie danych integer i 10 elementach deklaruje się:
ta : array[1..10] of integer;
Natomiast deklaracja tablicy dwuwymiarowej:
nazwa_tablicy
: array[
start
..
stop
] of array[
start..stop
] of
typ;
lub krócej:
nazwa_tablicy
: array[
start
..
stop
,
start
..
stop
] of
typ;
np. deklaracja tablicy tab przechowującej zmienne typu byte o wymiarze 10x10
tab:array[1..10,1..10] of byte;
lub
tab:array[1..10] of array[1..10] of byte;
W nawiasach kwadratowych zapisywany jest zakres indeksów tablicy w postaci
od..do
.
Indeks tablicy musi należeć do typu porządkowego, zaś ograniczenia nie mogą być
zmiennymi. W Pascalu nie podlega ograniczeniom zakres indeksów (mogą być ujemne,
byleby indeks końcowy był większy od początkowego i nie został przekroczony zakres
typu integer i word). Jedynym ograniczeniem jest blok pamięci, który ogranicza
strukturę do 65 536 bajtów.
Do elementów tablicy odnosi się za pomocą indeksów wpisywanych w nawiasach
kwadratowych. Każdy indeks jest jednoznaczny i wskazuje dokładnie na jeden element
tablicy. Właśnie dzięki indeksom programista może odwołać się dokładnie do wybranego
elementu tablicy.
Np.
a[1]:=1; {polecenie przypisujące 1 elementowi tablicy a wartość „1”}
-
1
-
PDF created with pdfFactory trial version
www.pdffactory.com
Free Pascal – tablice
Procedury Randomize i random
Do generowania wartości losowych w Pascalu służy polecenie:
Random(
wartość_max
)
;
Argumentem tej funkcji może być zmienna (lub wartość) typu Word, natomiast w wyniku
działania tej funkcji zwracana jest wartość losowa z przedziału: 0
‚
wartość_max-1}
Wartość wygenerowana przez funkcję random jest w pewnym sensie losowa (ale nie
w pełni – takie liczby nazywa się pseudolosowymi), gdyż wartość wylosowanej liczby
zależy od liczby wygenerowanej poprzednio. Podczas generowania pierwszej liczby
funkcja ta przyjmuje, że poprzednią wygenerowaną wartością była wartość zmiennej
RandSeed (typu Longint), która na początku każdego programu przyjmuje zawsze
wartość „0”. W związku z tym kilkakrotne uruchomienie programu spowoduje
wygenerowanie tego samego ciągu liczb. Aby tego uniknąć należy wywołać standardową
procedurę Randomize.. działanie tej procedury polega na wyznaczeniu liczby LongInt na
podstawie zegara systemowego, co pozwala sądzić, ze wartość początkowa użyta do
generacji ciągu liczb losowych jest przypadkowa (czas w komputerze ulega zmianie 18
razy na sekundę).
Uwaga! Przed wywołaniem funkcji random, należy wpisać procedurę randomize; ! ! ! !
Ćwiczenie 1:
Program wpisującego do jednowymiarowej tablicy zawierającej 10 elementów liczb od 1
do 10 i wypisanie ich na ekranie w odwrotnej kolejności:
program tab1;
uses crt;
var i:integer;
tab:array[1..10] of integer;
Begin
i:=1;
for i:=1 to 10 do
tab[i]:= i;
writeln('Oto tablica wypisana w prawidlowej kolejnosci:');
for i:=1 to 10 do
writeln(tab[i]);
writeln('Oto tablica wypisana w kolejnosci odwrotnej:');
for i:=10 downto 1 do
writeln(tab[i]);
ReadKey;
End.
-
2
-
PDF created with pdfFactory trial version
www.pdffactory.com
Free Pascal – tablice
Ćwiczenie 2:
Proszę napisać program uzupełniający tablicę jednowymiarową 10-cio elementową
wartościami losowymi, wypisujący zawartość tablicy i wyliczający sumę jej elementów.
Ćwiczenie 3:
Proszę zmodyfikować program napisany w ćwiczeniu 2 tak, aby wyznaczał średnią
arytmetyczną elementów znajdujących się wewnątrz tablicy.
Ćwiczenie 4:
Proszę napisać program znajdujący wartość największą i najmniejszą w tablicy 20-sto
elementowej wypełnianej wartościami losowymi.
Ćwiczenie 5:
Proszę napisać program sortujący zawartość tablicy 10-cio elementowej wypełnionej
wartościami losowymi w porządku rosnącym. Program ma wypisać tablicę przed
posortowaniem i pojej posortowaniu.
Ćwiczenie 6:
Proszę napisać program reprezentujący kolejne kroki algorytmu sortowania bąbelkowego
dla tablicy 8-mio elementowej wypełnionej wartościami losowymi.
Uwaga: Do czyszczenia ekranu stosuje się polecenie clrscr; które jest zdefiniowane
w module crt.
Ćwiczenie 7:
Program, który wypełnia tablicę dwuwymiarową 5x5 w taki sposób, że na przekątnej
znajdują się „1” a wszystkie pozostałe pola są wyzerowane.
program tab4;
uses crt;
var i,j:integer;
tab:array[1..5,1..5] of byte;
Begin
clrscr;
i:=1;{wiersze}
j:=1;{kolumny}
for i:=1 to 5 do
for j:=1 to 5 do
if i=j then tab[i,j]:=1
else
tab[i,j]:=0;
for i:=1 to 5 do
begin
for j:=1 to 5 do
-
3
-
PDF created with pdfFactory trial version
www.pdffactory.com
Free Pascal – tablice
write(tab[i,j],' ');
writeln;
end;
ReadKey;
End.
Ćwiczenie 8:
Proszę napisać program wypełniający tablicę o wymiarze 10x10 wartościami
odpowiadającymi tabliczce mnożenia.
Ćwiczenie 9:
Proszę napisać program, który wypełnia tablicę dwuwymiarową 10x10 wartościami
losowymi i obliczaj sumę każdego wiersza do odpowiadającego danemu wierszu, elementu
drugiej tablicy.
-
4
-
PDF created with pdfFactory trial version
www.pdffactory.com
Plik z chomika:
ell_lornzo
Inne pliki z tego folderu:
pascal9_grafika.pdf
(47 KB)
pascal8_pliki.pdf
(35 KB)
pascal7_procedury_funkcje.pdf
(26 KB)
pascal6_stale_typy_rekordy.pdf
(25 KB)
pascal5_tablice.pdf
(30 KB)
Inne foldery tego chomika:
c#
c++
Java
Zgłoś jeśli
naruszono regulamin