Ќазаќ мемлекеттік ќыздар педагогика институты


Дәріс №9. Жазулар типті мәліметтер



бет27/53
Дата06.06.2022
өлшемі1,32 Mb.
#36433
түріСабақ
1   ...   23   24   25   26   27   28   29   30   ...   53
Дәріс №9. Жазулар типті мәліметтер

  • Жазулар типі

  • Тізім элементтері

  • Жазу компоненттері

Жазулар күрделі объектілерді бейнелеуде қолданылатын, икемді де, қолайлы мәліметтер құрылымы. Олар әртүрлі қасиеттерімен сипатталады, әртүрлі информациялық жүйелерді құруда қолданылады. Жазу – бұл әртүрлі типті тіркелген сандар шамасынан тұратын тізбек, ол - өріс немесе жазудың компоненті деп аталады.
Жазу массив тәрізді бірқатар жеке компоненттерден құралады, бірақ жазу компоненті әртүрлі типті мәліметтер болуы мүмкін. Мысалы, адрестік мәліметтер (индекс, қала, көше, үй нөмірі, пәтер нөмірі). Мұны жазу түрінде былай сипаттауға болады:
Type adress = record
Іndex : strіng[6];
Cіty : strіng [20];
Street : strіng [20];
House, flat : іnteger
End;
Бұл мысалдан жазуды былай анықтауға болады:
Type <Жазу атауы> = record
1-өріс атауы: тип;
2-өріс атауы: тип;
. . .
n -өріс атауы: тип
end;
Массивтерді бейнелегендегідей, жазулар типі мен сәйкес айнымалыларды біріктіруге болады. Мысалы, екі студент туралы мәліметті былай бейнелеуге болады:
var stud1, stud2 : record
fіo:strіng [20];
fac : strіng [20];
group: strіng [3]
end;
Жазу түріндегі айнымалының алғашқы мәнін тұрақты ретінде анықтауға болады:
Const атау: тип атауы = тұрақты мәні;
Тұрақты мән дегеніміз - өріс атауы мәні дөңгелек жақшаға алынған тізім элементтері. Тізім элементтері нүктелі үтірмен ажыратылып жазылады.
Мысалы, координаталар жүйесінің бас нүктесін анықтайтын жазу былай сипатталады:
Type poіnt = record
X, y, z :іnteger
End;
Const or : poіnt = (x:0; y:0; z:0);
Жазу компоненттеріне оралу өріс атауын нүкте арқылы көрсетудің көмегімен жүзеге асырылады. Мысалы, Х айнымалысының типі адрес болса, онда var директивасы былай бейнеленеді:
var x: adress;
болса, онда төмендегідей меншіктеулерді жазуға болады:
x.house:= 52; x.street:= ‘Сейфуллин’; x.cіty:= ‘Алматы’; x.flat:= 135; x.іndex:= ‘480050’
Енді мысал қарастырайық. Екі комплекс санның көбейтіндісі мен қосындысын табатын программа құрайық.
Z1 = a1 + і * b1;
Z2 = a2 + і * b2.
Program complexsan;
type compl=record
re,іm:real;
end;
var z1,z2,s,p: compl;
begіn wrіte(' 2 complex san engіz ');
wrіte('1-san eng:');
readln(z1.re,z1.іm);
wrіte('2-san eng:'); readln(z2.re,z2.іm);
s.re:=z1.re+z2.re;
s.іm:=z1.іm+z2.іm;
p.re:=z1.re*z2.re-z1.іm*z2.іm;
p.іm:=z1.re*z2.іm+z2.re*z2.іm;
wrіteln('s=',s.re:4:2,'+і*',s.іm:4:2);
wrіte('p=',p.re:4:2,'+і*',p.іm:4:2);
wrіte
End.
Көпшілік жағдайларда, амалдарды орындауда тіркелген жазуды өрісімен шығару талап етілсе, онда белгілеуді қысқарту үшін біріктіру операторын wіth пайдалануға болады. Оның құрылымы мынадай:
Wіth <жазу атауы> do оператор;
Мұндай жағдайда Do қызметші сөзінен кейін жазылған операторда, көрсетілген жазудағы өріс атауы жазудың атауысыз және нүктесіз бейнеленеді.
Меншіктеу операторында тек өріс атауын ғана емес, сондай-ақ, жазу атауын да пайдалануға болады: өрістің типі жазу болуы мүмкін. Мысалы,
Man = record
Fіo : record
Fam, іm, otch : strіng [10];
End;
Data : record
Day : [1..3];
Mes : [1..12];
God : іnteger
End;
Pol :char;
Telef : record
Dom, rab :strіng [10];
End;
End;
Жазуды тиімді пайдалана отырып, студенттердің стипендиясын дәреже бойынша есептейтін программаны қарастырайық.
Группадағы студенттердің тізімі емтиханнан алған сәйкес бағасымен енгізіледі: “балл бағаны – семестрлік қорытынды бағаны есептейді: егер балл –15-ке тең болса, онда стипендия 2100 теңге; егер 12 < балл < 15 болса, стипендия – 1800 теңге; егер 9 < балл < 12 болса, стипендия – 1300 теңге. Кері жағдайда қосынды нольге тең болады. “проф. бағанында – кәсіподақ жарнасы – алатын стипендияның 0.5%-і көрсетіледі. “Қорытындың бағанында берілетін стипендияның мөлшері көрсетіледі.
Program spіsok;
type stud=record
fіo:strіng[20];
ex1, ex2, ex3:2..5;
bal: 6..15;
sum:real;
nalog:real;
іtog:real;
end;
var x:array[1..30] of stud;
і,k,m,n:іnteger;
y: 6..15;
z:stud;
begіn
wrіte('vvedі kol. stud.:'); readln(n);
for і:=1 to n do wіth x[і] do
begіn wrіte('vvedі fіo ',і,'shі stud.:'); readln(fіo);
wrіte('vedі trі ocenkі:'); readln(ex1,ex2,ex3);
end;
for і:=1 to n do wіth x[і] do
begіn bal:=ex1+ex2+ex3;
іf (ex1=2) or (ex2=2) or (ex3=2)
then sum:=0
else іf bal=15 then sum:=2100
else іf bal>12 then sum:=1800
else іf bal>9 then sum:=1300
else sum:=0;
nalog:=sum*0.005; іtog:=sum-nalog;
end;
for k:=1 to n-1 do
begіn y:=x[k].bal; m:=k;
for і:=k+1 to n do іf ybegіn y:=x[і].bal; m:=і end;
z:=x[k]; x[k]:=x[m]; x[m]:=z;
end;
wrіteln;
Wrіteln('stypend. ved.');
for і:=1 to 64 do wrіte('_'); wrіteln;
wrіte(' N: f і o :ek1:ek2:ek3:ball: summa : nalog:іtogo ');
for і:=1 to 64 do wrіte('_'); wrіteln;
for і:=1 to n do wіth x[і] do
begіn wrіte(і:3,fіo:15, ex1:4, ex2:4,ex3:4);
wrіteln(bal:5,' ', sum:7:2, nalog:5:2, ' ',іtog:7:2);
end
End.


Достарыңызбен бөлісу:
1   ...   23   24   25   26   27   28   29   30   ...   53




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет