Мураккаб цикллар
Режа:
1. Ичмаич жойлашган цикллар.
2. Ичмаич жойлашган циклларга мисоллар.
11мавзу
Янги типлар
Режа:
1. Диапазон типи.
2. Саноқли тип.
3. Мантиқий тип.
4. Сатр типи.
Айрим таркибан, мазмунан бир хил бўлган турдаги элементлар тўплами учун эълон қилинадиган сўз тип маъносини англатади. Бундай тўплам элементлари эълон қилинадиган тип объектлари ёки қийматлари деб юритилади.
1. Бутун, ҳақиқий, белгили, сатрли, мантиқий типлар Pascal тилининг стандарт типлари деб юритилади. Диапазон типи, тўплам, ёзув, саноқли массив (жадвал), файл типлари ностандарт типлар таркибига киради.
Диапазон типини эълон қилишида унинг минимал ва максимал қийматлари иккита нуқта орқали ажратиб ёзилади.
Бичими:
var
<тип номи>:<минимал қиймат>..<максимал қиймат>;
ёки
type
<тип номи>=<минимал қиймат>..<максимал қиймат>;
type - тип мазмунини билдиради.
Масалан,
var
javob=1..5;
ёки
type
oy=1..12; qкa=Plus..Minus;
Масала. 1 дан 5 гача бўлган сонларни киритиш ва чиқариш дастури тузилсин.
program diapason;
var
j=1..5; {Агар OptionsCompilerRange checking ўр-
натилган бўлса, j 1 дан 5 гача бўлган
қийматларни қабул қила олади}
i:char;
begin
repeat
write(‘Жавоблар тартиби N:’);
readln(j);
writeln(‘Киритилган рақамқ‘,j);
write(‘қайтарасизми-(yn)?');
readln(i);
until UpCase(i)<>‘Y’;
end.
Бунда UpCase содда процедура бўлиб, қавс ичидаги белгини катта (бош) белгига айлантиради.
2. Саноқли тип ҳам ностандарт типлар туркумига киради. саноқли тип ўз номига ва уни ташкил этувчи элементларидан (идентификаторларидан) иборат бўлади. Идентификатор кичик қавс ичига ёзилади ва бир-биридан вергул орқали ажратиб ёзилади.
Бичими:
type
<исми>=(<идент1>,<идент2>,...,<идентk>)
Саноқли тип идентификаторини ёзилишида унинг тартиби мухим ахамият касб этади. Чунки биринчи идентификаторга 0, иккинчисига 1,...., k-чисига k-1 тартиб номерлари берилади.
Ord(х) - функцияси идентификаторнинг тартиб номерини белгилайди.
Масалан:
type
Hafta=(Dushanba,Seshanba,Chorshanba,Payshanba,Juma, Shanba,Yakshanba);
3. Мантиқий тип (Boolean) саноқли типининг хусусий холи ҳисобланади, чунки у true ёки false қийматни қабул қила олади. Масалан,
type
boolеan=(true,false)
Масала. Ихтиерий йил ойларидаги кунлар сонини аниқлаш дастури тузилсин.
program kabisa;
type
оy=(jan,feb,mart,apr,maj,iyun,iyul,avg,sent,okt,noya, deк);
const kun:array[oy] of byte=(31,28,31,30,31,30,31,31,30,31,30,31);
var
yil:word; b:char; i:oy;
begin
repeat
write(‘Йилни киритинг=‘); readln(yil);
if (yil mod 4 = 0)
and (yil mod 100 <>0) or (yil mod 400 = 0)
then kun[feb]:=29 else kun[feb]:=28;
writeln(yil,` чи йилнинг ойларидаги кунлар сони қуйидагича:’);
for i:=jan to dek do
writeln(ord(i)=1:2,kun[i]:15);
write(‘Такрорлайсизми? - (YN) ‘);
readln(b);
until UpCase(b)<>‘Y';
end.
4. Турбо Pascal тилидаги стандарт типлардан бири узунлиги 255 та белгигача бўлган string типдан фойдаланиш имконияти берилган. Сатр типини эълон қилишда var сўзидан сўнг катталик номи ва икки нуқтадан сўнг string сўзи ёзилади. Ушбу сўздан сўнг ўзгарувчининг узулигини қавс ичида рақамлар ёрдамида эълон қилиб қўйилиши мумкин. Ушбу типда сатр узунлиги кўрсатил
маган бўлса, бу ўзгарувчига хотирадан 255 байт, яъни 255 та белги учун жой ажратилади.
Сатр типида ҳам сатр константалардан фойдаланиш мумкин.
Масалан:
var
a:string;
b:string [20];
const
c:string='Meн II к. талабасиман':
Do'stlaringiz bilan baham: |