Rozdział 4. • Zagadnienia trudniejsze 117
Przykładowa deklaracja typu opisującego osobę może mieć postać:
TPlec - (mezczyzna, kobieta);
TTelefony - airay Cl..3] of String;
TOsoba - recoid
Imię, Nazwisko : String[30];
Ulica, Miasto : String[30];
Kod : String [6];
Piec : TPlec;
RokUrodzenia : Word;
PESEL : StringCll];
NIP : String[13];
Telefony : TTelefony end;
W typie rekordowym wykorzystujemy dwa zdefiniowane wcześniej typy: wyliczeniowy dla określenia płci i tablicowy dla zapamiętania kontaktu telefonicznego (osoba może mieć kilka numerów telefonów).
Odwoływanie się do wartości zmiennej rekordowej odbywa się poprzez podanie nazwy zmiennej i nazwy pola rekordu, oddzielonych kropką. Dlatego poprawne są następujące instrukcje:
Osoba.Imię 'Andrzej';
Osoba.Nazwisko 'Kierzkowski';
Wiek 2000-0soba.RokUrodzenia;
GlownyTelefon Osoba.TelefonyCl];
Jeżeli chcemy użyć kilku pól jednej zmiennej w kilku kolejnych instrukcjach, łatwiej jest posłużyć się instrukcją with, która ma postać:
with zmienna_typu_rekordowego do { blok instrukcji }
W takim przypadku w bloku instrukcji odwołujemy się już do pól bezpośrednio, jakby były zwykłymi zmiennymi (bez nazwy zmiennej rekordowej i kropki). Można więc zapisać:
with Osoba do begin
Imię 'Andrzej';
Nazwisko 'Kierzkowski';
Wiek 2000-RokUrodzenia;
GlownyTelefon Osoba.TelefonyCl];
end;
Gdybyśmy w programie mieli już zadeklarowaną zmienną Imię, wystąpiłby konflikt. W tym przypadku Imię oznaczałoby odwołanie do zmiennej, a aby odwołać się do pola rekordu, należałoby użyć pełnej nazwy (zmienna.pole), pomimo że instrukcja jest zawarta w with.
IV I C Z E N I E
4.25
Musimy zdefiniować strukturę danych, w której dobrze można zapamiętać różne cechy samochodu. Oczywiście wykorzystamy w tym celu typ rekordowy.