var
Liczba, I : Integer; begin
Liczba 0; for I :-1 to 1000 do if not Odd (T[I]> then Inc (Liczba);
LiczbaParzystych Liczba;
end; {-------------------------------- LiczbaParzystych -}
begin
Randomize;
for I 1 to 1000 do
Tablica[I] Random(lOO);
Writeln ('Liczba parzystych elementów w 1000 elementowej 'tablicy wynosi ', LiczbaParzystych (Tablica));
Readln; end.
Wyjaśnienia wymaga nowa procedura, która pojawiła się w naszej funkcji; Inc. Powoduje ona zwiększenie wartości swojego parametru o 1. Można w niej także użyć drugiego parametru, określającego wielkość zwiększenia. Tak więc:
Inc (Z, 5)
spowoduje zwiększenie wartości zmiennej Z o 5. W ten sposób można zwiększać nie tylko wartości zmiennych całkowitych, ale i innych typu porządkowego (czyli takiego, w którym jednoznacznie dla zmiennej można określić następnik i poprzednik], A więc na przykład:
Znak 'A';
Inc (Znak, 3);
spowoduje przypisanie zmiennej Znak wartości D — czyli litery o trzy pozycje dalszej niż A. Nie można wykorzystać w tej instrukcji zmiennej typu rzeczywistego (z przyczyn oczywistych — nie jest typu porządkowego, ponieważ nie da się wyznaczyć następnika i poprzednika wartości zmiennej] Procedura ma także swoje przeciwieństwo: Dec, które odpowiednio zmniejsza wartość zmiennej.
w i c z E
Procedura jako parametrów potrzebuje dwóch tablic. Te same dwie tablice będą też wynikami jej działania, dlatego parametry należy przekazać przez zmienną. Nie jest trudno wyobrazić sobie procedurę, która zamienia tablice element po elemencie. My jednak skorzystamy z metody lepszej, która daje nam możliwość przypisywania całych tabel.
program cw4_08;
{ Program ilustruje działanie procedury, zamieniającej }
{ dwie zmienne typu tablicowego. }
{ Katalog r4_02 : 4_08.pas }