Record/fi
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
magyar (hu) │
polski (pl) │
português (pt) │
русский (ru) │
Record eli tietue on hyvin jäsennelty tietotyyppi. Niitä käytetään laajalti Pascal:ssa. Niillä kootaan tiedot yhteen loogisesti eli se on loogisesti yhteenkuuluvien tietoalkioiden muodostama kokonaisuus.
Monet yksinkertaiset tietorakenteet, kuten taulukot tai joukot koostuvat osista (tietoalkioista) jotka kaikki ovat samaa tyyppiä.
Tietue eli Record voi koostua monista eri osista, ne voi olla eri tyyppiä ja ne voivat olla valtavan monimutkaisia.
Tietueen osia kutsutaan kentiksi.
Record on Pascalin varattu sana.
Määrittely
Vakiorakenne
type
TMember = record
firstname, surname : string;
address: array [1..3] of string;
phone: string;
birthdate: TDateTime;
paidCurrentSubscription: boolean
end;
Muuttuva rakenne
Vieläkin monimutkaisempia rakenteita voi olla, esim:
type
maritalStates = (unmarried, married, widowed, divorced);
TPerson = record
(* CONSTANT PART *)
(* of course records may be nested *)
name: record
first, middle, last: string;
end;
sex: (male, female);
(* date of birth *)
dob: TDateTime;
(* VARIABLE PART *)
case maritalStatus: maritalStates of
unmarried: ( );
married, widowed: (marriageDate: TDateTime);
divorced: (marriageDate, divorceDate: TDateTime;
isFirstDivorce: boolean)
end;
Muuttuvan osan kentät ovat käytettävissä vain jälkeen tehtävän riippuen muuttujan. Se ei vahingoita onko kenttä marriageDate määritetty monta kertaa.
Osoittaminen
Kentät
Yksittäisiä kenttiä osoitetaan laittamalla piste tietueen nimen ja kentän nimen väliin.
a.firstname := 'George';
a.surname := 'Petersen';
a.phone := '789534';
a.paidCurrentSubscription := true;
Vaihtoehtoisesti kokonaista sarjaa kenttiä voidaan osoittaa käyttämällä With-rakennetta:
with a do
begin
firstname := 'George';
surname := 'Petersen';
phone := '789534';
paidCurrentSubscription := true
end;
Ilmentymä
A tietuetta käsitellään ohjelmassa yhtenä kokonaisuutena. Esimerkiksi koko tietue voidaan kopioida (jos kopio on samaa tyyppiä) näin:.
var
a, b: TMember;
(* main program *)
begin
{ ... assign values to the fields in record a .. }
b := a
{ now b holds a copy of a }
{ don't get confused with references: }
{ a and b still point to different entities of TMember }
end.
Vakiotietueet
type
//tietueen määrittely
TSpecialDay = record
DayName : string;
month : integer;
day : integer;
end;
const
// TSpecialDay vakiomäärittely
ChristmasDay : TSpecialDay =
(
DayName : 'Christmas Day';
month : 12;
day : 25;
);
Katso myös
- Records, tutorial that covers records
Yksinkertaiset datatyypit |
|
---|---|
Monimutkaiset datatyypit |