typc
TTablica - array [1..10] of Byte; var
Tablical, Tablica2 : TTablica;
I : Integer;
procedurę ZamienTablice (var Tl, T2 : TTablica);
{ Funkcja zamienia tablice Tl i T2. }
var
Pom : TTablica;
begin
Pom Tl; Tl T2; T2 Pom { tylko tyle???? }
end; {------------------------- ZamienTablice -}
procedurę WypiszTablice (T : TTablica);
{ Procedura wypisuje zawartość tablicy T. } var
I ; Byte; begin
for I :- 1 to 10 do
Write (T[I], ' 1);
Writeln
end; {-------------------- WypiszTablice -}
begin
Randomize;
for I :- 1 to 10 do
begin
TablicalCI] RandomCIO);
Tablica2[I] Random(lO); end;
Write (‘Tablica 1: ‘); WypiszTablice (Tablical);
Write (‘Tablica 2: '); WypiszTablice (Tablica2);
ZamienTablice (Tablical, Tablica2); Writeln;
Write ('Tablica 1: '); WypiszTablice (Tablical);
Write ('Tablica 2: '); WypiszTablice (Tablica2);
Readln; end.
Czy nie uważasz, że możliwość przypisywania tablic tego samego typu spowodowała, że funkcja zamiany wygląda bardzo prosto? Zauważ, że w głównym bloku programu instrukcje wypisywania wyników powtarzają się dwukrotnie, w takiej samej postaci. Może warto zrobić z nich procedurę?
Przypomnijmy sobie, jaki kłopot sprawiało nam zapamiętanie płci osoby. Nie bardzo wiadomo było, czy zmienna powinna przyjmować wartość True, jeżeli osoba jest mężczyzną, czy jeżeli jest kobietą. Rozważanie tematu jest jałowe — oba rozwiązania są poprawne, byle w programie panował porządek i zawsze płeć była oznaczana w ten sam sposób. Pomyśl jednak, jak byłoby wygodnie, gdyby można zdefiniować zmienną przyjmującą wartości: kobieta lub mezczyzna.
Albo — jak zdefiniować zmienną pamiętającą dzień tygodnia. Można oczywiście dni ponumerować i używać numerów. Szybko można się jednak pogubić, który dzień to 1: niedziela czy poniedziałek? Gdyby zmienna była takiego typu, że mogłaby przyjmować