Жазбалар
Жазбалар (комбинирленген тип) – тү рлі қ асиеттерімен сипатталатын кү рделі объекттерді сипаттауда жә не тү рлі ақ параттық жү йелерді сипаттау барысында пайдаланылатын деректердің ең икемді жә не ың ғ айлы қ ұ рылымдарының бірі.
Жазба – жазбаның ө рістері деп аталатын компоненттердің фиксацияланғ ан санынан тұ ратын деректер қ ұ рылымы. Жазба ө рістерінің типтері ә ртү рлі болуы мү мкін. Жазбаның кейбір компонентіне сілтеу жасау ү шін ө рістерге атаулар беріледі.
Жазбалар тү рлі текті бырақ логикалық байланысқ ан ақ паратты беру ү шін пайдаланылады..
Мысалы: " студентке" тиісті деректерді сипаттау керек:
· - фамилиясы, аты (символдық массивтер немесе жолдар);
· - туылғ ан жылы (таң басыз бү тін);
· - мамандығ ы (санақ тап шығ у типі).
Сонымен, жазба – ол жазбаның ө рістері немесе компоненттері деп аталатын тү рлі типтегі шамалардың фиксацияланғ ан санынан тұ ратын тізбектілік. Массив сияқ ты жазба да бір қ атар жеке компоненттерді қ амтиды, бырақ жазбаның компоненттері ретінде тү рлі типтегі деректер болуы мү мкін. Мысалы, адрестік деректерді (индекс, қ ала, кө ше, ү й, пә тер нө мірі) жазба (record) ретінде бейнелеуге болады:
type address = record
index: string[6]; { 1-ші ө рістің аталуы: тип }
city: string[20]; { 2-ші ө рістің аталуы: тип }
street: string[20]; { 3-ші ө рістің аталуы: тип }
haus, flat: integer { 4-ші ө рістің аталуы: тип }
end;
Массивтерді сипаттағ андай жазба типін жә не сә йкес айнымалыларды сипаттауды беттестіруге болады. Мысалы, екі студенттер туралы деректерді келесідей сипаттауғ а болады:
var stud1, stud2: record
fio: string[20];
fac: string[10];
grup: string[8];
end;
«жазба» типтегі айнымалыны жә не оның бастапқ ы мә нін тұ рақ ты-жазба ретінде тұ рақ ылар бө лімінде: const < имя>: < имя типа> = < константное значение> схема бойынша анық талады.
Тұ рақ тылық мә н – ол жай жақ шаларғ а алынғ ан ө ріс атауларының жә не сә йкес мә ндердің тізімі. Тізім элементтері «нү ктелі ү тір» таң басы арқ ылы ажыратылады. Мысалы, координаталардың басы туралы жазбаны келесідей анық тауғ а болады:
type point = record
х, у, z: integer
end;
const o: point=(x: 0; y: 0; 2: 0);
Жазбаның компоненттерімен сә йкес типтегі айнымалылармен сияқ ты жұ мыс жасауғ а болады. Жазбаның компоненттеріне сілтеу нү ктеден кейін ө ріс аталуын кө рсету арқ ылы жү зеге асырылады. Мысалы, х айнымалысы address типіне ие болсын, яғ ни программада var x: address; сипаттау бар. Онда келесі меншіктеулер рұ қ сат етілген:
x.haus: =52; к.street: ='пр.Бейбітшілік'; x.city: ='Шымкент'; x.flat: -135; x.index; ='660049'
Р29 программасында екі кешенді сандар қ осындысы мен кө бейтіндісін анық тайтын есепте жазбалармен жұ мыс жасау бейнеленген:
z1=a1+i*b1 жә не z2=a2+i*b2.
Программадағ ы белгілеулердің қ олайсыз ү лкендігі деректерді қ ұ рылымдау арқ ылы алгоритмнің жоғ ары кө рнекілігімен тең елтіледі. Кө п жағ дайларда егер фиксацияланғ ан жазбаның ө рістерімен операцияларды орындау қ ажет болса, белгілеулерді қ ысқ арту ү шін жалғ ау with операторын пайдалануғ а болады. Оның қ ұ рылымы: with < жазбаның аталуы> do < оператор>;
Бұ л жағ дайда қ ызметші do сө зінен кейін жазылғ ан операторда кө рсетілген жазба ө рістерінің атаулары жазбаның аталуы жә не нү ктесіз сипатталады. Мысалы, алдың ғ ы мысалдағ ы s қ осындыны экранғ а шығ аруды with операторын пайдаланып келесідей ұ йымдастыруғ а болады:
with 5 do writeln('s=', re: 4: 2, '+i*', im: 4: 2);
Меншіктеу операторларында ө рістер атаулары мен қ атар жазбалардың атауларын да пайдалануғ а рұ қ сат етілген. Ө рістің типі жазба болуы мү мкін, мысалы:
man=record
fio: record
fam, im, otch: string[10];
end;
data: record
day: 1..31;
mes: 1..12;
god: integer
end;
pol: char;
elef: record
dom, rab: string[10];
end;
end;
«жазба» типін деректердің басқ а қ ұ рама типтерін сипаттауда пайдалануғ а рұ қ сат етілген, мысалы, жазбалар массивін қ ұ руғ а болады.
|