Программалау тілдері оқулық Қазақстан Республикасы Білім жəне ғылым министрлігі бекіткен Алматы, 2011



Pdf көрінісі
бет11/24
Дата28.01.2017
өлшемі1,6 Mb.
#2918
түріПрограмма
1   ...   7   8   9   10   11   12   13   14   ...   24

 6.5-суретЖиындық типтің синтаксистік диаграммасы 

136
Базалық типке – мəндерінің саны 255-тан асатын integer жəне 
longint типтерінен басқа кез келген реттік тип жатады. Базалық 
тип ретінде оның мəндерінің белгілі бір аралықтары (диапазон-
дары) ғана пайдаланыла алады. 
Жиындағы элементтердің орналасу реті қадағаланбайды. 
Бұны математикадағы жиын ұғымына сəйкес деп айтуға болады.
Жаңа жиындық типті əдетте алдын ала жариялайды да, со-
нан кейін айнымалылар мен тұрақтыларды сипаттау бөлімінде 
пайдала нады. Мысалы:
Type
 Digits = set og 1..100; 
{«1-ден 100-ге дейінгі бүтін  
     сандар 
жиыны» 
типі}
 Setchar = set of char; {«ASCII кестесінің 
     символдары 
жиыны» 
типі}
 letter = set of 'a'..'z'; {«латын алфавитінің кіші 
                                əріптерінің жиыны» типі}
 logic = set of boolean; {« логикалық мəндер 
     жиыны 
« 
типі}
Var
 mychar:setchar; 
{айнымалы - ASCII кестесінің 
    символдары 
жиыны 
}
 bool:logic; 
{ айнымалы - логикалық мəндер жиыны }
 mydig:Digits; { айнымалы - 1-ден 100-ге дейінгі бүтін  
   сандар 
жиыны 
}
simst:letter; 
{ айнымалы - латын алфавитінің кіші    
  əріптері 
жиыны 

Жиын типін айнымалылар мен тұрақтыларды сипаттаған кезде 
де анықтауға болады, мысалы:
Var
 number:set of 1..31;
 { айнымалы - 1-ден 31-ге  
 
   дейінгі 
бүтін 
сандар 
жиыны}
   cif:set of 0..9; { айнымалы – сандар жиыны }
   kods:set of #0..#255; { айнымалы - ASCII  
 
     кестесінің 
                             символдары жиыны }
   workweek, week:set of dayn; { айнымалы – апта  
      күндері 
жиыны 


137
Жиын типіндегі айнымалы мəндері де жиын болады. Осы 
типтегі айнымалылар мен тұрақты лардың нақты мəндері тік жақ-
шаға алынып, үтірмен ажыратылып жазылған элементтер тізімі 
түріндегі жиын құраушысы (конструкторы) көмегімен анық-
талады. Жиын элементтері базалық типтегі тұрақты, айнымалы 
жəне өрнек түрінде берілуі мүмкін. Сонымен бірге жиынға кі-
ретін элементтер мəнінің аралығын  – интервалын да көрсетуге 
болады, мысалы:
[ ] – бос жиын;
[2,3,5,7,11]
 – тек бірнеше бүтін сандардан тұратын жиын;
['a','d','f','h']
 – бірнеше латын əріптерінен тұратын 
жиын;
[1,k]
 - 1 бүтін санынан жəне k айнымалысының ағымдағы 
мəнінен тұратын жиын;
[k..2*k]
 – бүтін сан жəне k айнымалысының 2*k өрнегінің 
нəти же сіне дейінгі мəнінен тұратын жиын;
[2..100]
 - 2-ден 100-ге дейінгі бүтін сандар жиыны;
[1,2,3..7]
 - 1,2,3,4,5,6,7 сандарынан тұратын бүтін сандар 
жиыны;
[red,yellow,green]
 – саналатын типтегі үш элементтен 
тұратын жиын
Жиындарды инициализациялау. Жиын типтегі айныма-
лыларды типтік тұрақтыларды қолдану арқылы инициализа-
циялауға болады. Мысалы:
Type setnum=set of byte; 
Const S:setnum=[1..10];
 {инициализацияланған айны-
малы, оның программадағы бастапқы мəні 1-ден 10-ға дейінгі 
бүтін сандардан тұратын жиын} 
Жиындармен орындалатын операциялар.  Жиындық  тип   -
тегі мəндермен жұмыс жасау үшін арнайы операциялар қа-
рас  
тырылған. Олар жиындар теориясында анықталған: бірігу, 
қиылысу жəне жиын 
дарды толықтыру операциялары. Бұл екі 
орынды операциялар, операнд ретінде жиын типіндегі мəндер ді 
қабылдайтын жиын жəне өрнек қолданылады. Операндтың екеуі 
де бір жиындық типке жатуы керек. Бұл операндтардың Турбо 
Паскальдағы белгіленуі мен геометриялық бейнеленуі 6.1-кесте-
де келтірілген. 

138
                                        
  6.1-кесте
Математикалық 
жазылуы
Турбо 
Паскальдағы 
операция 
Геометриялық 
бейнеленуі
Операция нəтижесі


B
A+B
A жəне B жиындары-
ның бірігуі – A жəне 
B жиындары элемент-
терінен тұратын жиын


B
A*B
A жəне B жиындары-
ның қилысуы – A жи-
ы нына да, B жиынына 
да кіретін элемент тер-
ден тұратын жиын 
A\B
A-B
A жəне B жиындары н 
толықтырушы A жиы-
нының B жиынына 
кірмейтін элемент те-
рінен тұратын жиын 
Мысалы:
[1,2] + [3,4] = [1,2,3,4];
[1..10] * [3,8,9,15,23,45] = [3,8,9];
[1..15] - [3,8,9,15,23,45] = 
[1,2,4..7,10..14];
[red,blue,green,black] * [blue,magenta,yellow] 
= [blue].
Қатынас операциялары. Жоғарыда айтылған операция лар-
дан басқа жиындарға қатынас операциялары қолданы лады. Қа-
тынас əрекеттерінің операндтары ретінде жиын ти пін   дегі айны-
малылар мен өр нек тер қолданылады. 6.2-кес теде математикалық 
жиындарды салыстыру операциялары мен Турбо Паскальдағы 
қатынас операция лары арасындағы сəйкестік келтірілген.
 6.6-сурет. Элементтің жиынға кіретінін тексеретін 
синтаксистік диаграмма 
Элементтің жиынға кіретіндігін тексеру операциясы
Іn 
сөзімен белгіленген элементтің жиынға кіретіндігін тексеру опе-

139
рациясының синтаксистік диаграммасы 6.6-суретте көр 
се 
тіл 
ген. 
Қатынас операцияларына қарағанда in операциясында бірінші опе-
ранд жиындық мəннің базалық типіне жатуы тиіс. Іn операциясының 
нəтижесі логикалық мəн болып табылады.
Төменде қатынас операциялары мен элементтің əр түрлі жи-
ынға кіретіндігін тексеру операцияларының мысалдары кел-
тірілген. 
                                                    
 6.2-кесте
Математика да 
жазылуы
Турбо Паскаль-
дағы операция
Операция нəтижесі
TRUE
FALSE
A = B
A = B
А жəне В жиыны 
өзара тең
А жəне В жиыны 
өзара тең емес
A ≠ B
A <> B
А жəне В жиы ны 
өзара тең емес
А жəне В жиыны 
өзара тең 
A
≤B
A <= B
А жиынының 
барлық элемен т -
тері В жиыны на 
кіреді
А жиынының кейбір 
элемент тері В жиы-
нына кіреді
A
≥B
A >= B
В жиынының 
барлық элемен т-
тері А жиыны на 
кіреді
В жиынының кейбір 
элемент тері  А 
жиыны на  кіреді
['a','b'] = ['b','a'] – операция нəтижесі TRUE;
[4,5,6] = [4..6] – операция нəтижесі TRUE;
['c','b'] = ['c','b','d'] – операция нəижесі FALSE;
[2,3,5,7] <= [1..9] – операция нəтижесі TRUE;
[3,6..8] <= [2..7,9] – операция нəтижесі TRUE;
[5..8,9..12] >= [6,8,11] – операция нəтижесі TRUE;
10 in [2,4,6,8,10,12,14] – операция нəтижесі TRUE;
k=1,3,5 болғанда k in [1,3,5,7,9] – операция нəтижесі TRUE жəне 
k=2,4,6 болғанда – FALSE.
Жиындық типтегі мəндерді енгізуге жəне шығаруға болмайды. 
Алайда жиын элементтерінің мəнін енгізіп жəне оларды біріктіру 
операциясының көмегімен жиынға қосуға болады, мысалы:
S:=[ ];
 {бастапқы жиын бос}
Read(n);
while not Eof do
 begin

140
 S:=S+[n];
 {бастапқы жиын мен енгізілген элементтерден  
 
 
 тұратын жиынды біріктіру}
 end; ... 
Жиын элементтерін шығару үшін: цикл ішінде базалық типтегі 
барлық элементтердің жиынға кіретіндігін тексеріп, кіретіндерін 
шығарады. Мысалы:
for i:='a' to 'z' do
if i in S then Write(i:3); 
6.2-мысал. Енгізілген сөздің əріптен немесе сызу бел гісінен 
жəне сөздің ішіне арнайы символдардың кіретіндігін анық тайтын 
программа жазу керек.
Латын алфавитінің бас əріптері мен кіші əріптері жəне сызу 
символдарынан тұратын жиын құрастырамыз:
['A'..'Z','a'..'z','_']
Сонымен бірге, сөздің екінші символынан бастап кездесуі 
мүмкін символдар жиынын құрастырамыз:
['A'..'Z','a'..'z','_','0'..'9']
Программаға сөз тіркесін енгізіп, бірінші символын, сонан 
соң цикл ішінде қалған символдарын да тексеру керек.
Program ex;
Var sr:string;
  key:boolean;
  i:integer;
Begin
  WriteLn(‘Жолды енгізіңіз’);
  ReadLn(st);
  if 
st[1] in [‘A’..’Z’,’a’..’z’,’_’] then 
     {бірінші символды тексеру}
   begin
    i:=2;
    key:=true;
    while (i<=length(st)) and key do {қалған 
              символдарды тексеру}
    if 
st[i] in [‘A’..’Z’,’a’..

141
’z’,’_’,’0’..’9’] 
     then inc(i)
     else key:=false;
    if key then WriteLn(‘st,’ жолы - 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        идентификатор.’)
     else WriteLn(st,’ жолында рұқсат  
 
 
 
 
   етілмеген символдар бар.’);
  end
  else
   WriteLn(st,’ жолы рұқсат етілмеген 
символдан 
       басталады.’);
End. 
6.3-мысал. Берілген натурал санның жазылуындағы цифрлар 
санын анықтайтын программа құрастыру керек.
Есепті шығару үшін енгізілген сан модулін символдық жол-
ға түрлендіріп, осы символдардан жиын құрастырамыз. Енді 
жиындағы символдардың 0-ден 9-ға дейінгі сандар жиынына 
кіретіндігін тексеріп, экранға мəлімет шығарамыз.
Program ex;
Var n:longint;
  st:string;
  
mnoj:set of '0'..'9';
  i:integer; j:char;
Begin
  WriteLn('Сан енгізіңіз:');
  ReadLn(n);
  Str(
abs(n),st);
  
mnoj:=[]; {бастапқыда жиын бос}
  for i:=1 to length(st) do
   
mnoj:=mnoj+[st[i]]; {жиын құрастырамыз}
  WriteLn(n,' санының жазылуына келесі сандар 
      кіреді:');
  for j:='0' to '9' do {жиынға кіретін 
 
цифрларды экранға шығарамыз}
   if 
j in mnoj then Write(j+' ');
End. 

142
6.4-мысал. Пернетақтадан енгізілген символдар тіркесінен 
тұратын жəне бос орын арқылы ажыратылған бірнеше сөздерден 
құрастырылған жолдың ішіндегі:
• жолдың əр сөзінде кезесетін; 
• жолдың тек бір сөзінде кездесетін; 
• жолдың кем дегенде бір сөзінде кездесетін; 
• жолдың екі жəне одан артық сөздерінде кездесетін 
дауыс ты əріптер санын анықтайтын программа құру керек. 
Есепті шығару үшін «ASCII кодтағы символдар жиыны» 
типін анықтаймыз. Қазақ (орыс) алфавитінің дауысты əріптерін 
жиындық типтелген тұрақты ретінде береміз. Соңғы жəне аралық 
нəтижелерді сақтау үшін жиындық типтегі айнымалыларды 
анықтаймыз:
• res1 – əр сөзге кіретін дауысты əріптер жиыны; 
• res2 – тек бір сөзге кіретін дауысты əріптер жиыны; 
• res3 – бір сөйлем ішіндегі дауысты əріптер жиыны; 
• res4 – бірнеше сөзге кіретін дауысты əріптер жиыны; 
• mns1 – ағымдағы сөзге кіретін дауысты əріптер жиыны. 
Программаға бір жолды енгізіп, ондағы сөздерді жеке-жеке 
бөліп аламыз. Əр сөзге кіретін дауысты əріптер жиынын – mnsl 
анықтаймыз. 
Егер енгізілген жолда тек бір ғана сөз бар болса, онда
res1 = res2 = res3 = mns1, 
болады да, res4 бос жиын болып шығады.
Егер енгізілген жолдағы сөздер саны бірден артық болса, онда 
əрбір жаңа сөз нəтижелік жиынды төмендегідей етіп өзгертетін 
болады:
1. əр сөзге кіретін дауысты əріптер жиыны, осыған дейін та-
былған сөздерге кіретін дауысты əріптер жиыны мен res1 З mns1 
сөзінің дауысты əріптер жиынының қиылысуына тең болады;
2. бірнеше сөзге кіретін дауысты əріптер жиыны – res4 жаңа 
сөзде қайталанатын дауысты əріптер санына өседі (бірігу): 
res4 жəне (res3 # mns1); 
3. бір сөйлемдегі дауысты əріптер жиыны – res3 сөздегі дауы-
сты əріптер санына өседі (бірігу):
res3 З mns1 

143
4. тек 
бір 
сөзге 
кіретін 
res2 – дауысты əріптер жиынын, бар-
лық сөздерді өңдегеннен кейін, бір сөйлемдегі дауысты əріптеры 
жиыны мен бірнеше сөзге кіретін дауысты əріптер жиынының 
айырмасы ретінде анықтаймыз:
res1 / res4 
Program ex;
Type setchar=set of char;
Const G:setchar=['а','я','у','ю','э','е','о
','ё','и','ы']; { «дауысты дыбыстар жиыны « 
типтік тұрақты}
Var res1, {əр сөзге кіретін дауысты əріптер 
жиыны}
res2, {тек бір сөзе кіретін дауысты əріптер 
жиыны}
res3, {сөйлемнің дауысты əріптер жиыны}
res4, {бірнеше сөзге кіретін дауысты əріптер 
жиыны}
mns1:setchar; {ағымдағы сөздің дауысты əріптер 
жиыны}
st,slovo:string; ch:char;
i,k:integer; fi rst:boolean;
Begin
WriteLn('Бастапқы жолды енгізіңіз:');
ReadLn(st); {бастапқы жолды оқимыз}
st:=st+' '; {өңдеу жеңіл болу үшін жолдың 
соғына бос орын қосамыз}
fi rst:=true; {«бірінші жол» белгісі}
while st<>'' do {сөзді қиып алу жəне өңдеу ци-
клы}
begin
k:=pos(' ',st);
slovo:=copy(st,1,k-1); {қиып алынған сөз}
Delete(st,1,k); {сөзді жолдан алып тастаймыз}
{сөзге кіретін дауысты əріптер жиынын 
анықтаймыз}
mns1:=[]; {бастапқы күй «бос жиын»}
for i:=1 to k-1 do

144
if slovo[i] in G then {егер дауысты дыбыс бол-
са, онда}
mns1:=mns1+[slovo[i]]; {жиынға қосамыз}
{нəтижелік жиындарды құрастырамыз}
if fi rst then {егер бірінші сөз болса, онда}
begin
res1:=mns1; {əр сөзге кіреді}
res2:=mns1; {тек бір сөзге кіреді}
res3:=mns1; {кездескен дауысты əріптер}
res4:=[]; {бірнеше сөзге кіреді}
fi rst:=false; {«бірінші сөз» белгісін алып та-
стаймыз}
end
else {егер бірінші сөз болмаса, онда}
begin
res1:=res1*mns1; {əр сөзге кіретіндер}
res4:=res4+res3*mns1; {бірнеше сөзге 
кіретіндер}
res3:=res3+mns1; {кездескен дауысты əріптер}
end
end;
res2:=res3-res4; {тек бір сөзге кіретіндер}
{сқйлемді өңдеу нəтижелерін шығарамыз}
WriteLn('Əр сөзге кіретін дауысты əріптер жиы-
ны:');
for ch:=#0 to #255 do if ch in res1 then 
Write(ch:2);
WriteLn;
WriteLn('Тек бір сөзге кіретін дауысты əріптер 
жиыны:');
for ch:=#0 to #255 do if ch in res2 then 
Write(ch:2);
WriteLn;
WriteLn('кем дегенде бір сөзге кіретін дауысты 
əріптер жиыны:');
for ch:=#0 to #255 do if ch in res3 then 
Write(ch:2);

145
WriteLn;
WriteLn('Бірнеше сөзге кіретіндер дауысты 
əріптер жиыны:');
for ch:=#0 to #255 do if ch in res4 then 
Write(ch:2);
WriteLn;
End. 
Бақылау сұрақтар

Жиын дегеніміз не?
2.  Жиындармен орындалатын қандай операцияларды білесіз?
3.  Turbo Pascal программалау жүйесінде жиындармен орындалатын 
операциялар қалай жазылады?
4.  Жиын құрастырушы дегеніміз не жəне ол қандай жағдайда 
қолданылады?
5.   Жиын типті айнымалылар қалай хабарланады?
6.   Бос жиын дегеніміз не жəне ол қалай беріледі?
7.   жиын элементтерін шығаруды қалай ұйымдастырамыз?
Тапсырмалар
1.  1..100 бүтін сандар жиынынан 444 қалдықсыз бөлінетін сандар 
жиынын бөліп алыңыз. Жиынды экранға шығарыңыз.
2.   латын əріптерінен құралған жиыннан өз атыңызға кірмейтін 
əріптерден тұратын жиынды құрастырыңыз. Жиынды экранға 
шығарыңыз.
3.   Пернетақтадан енгізілген фамилияға да, атқа да жəне текке де 
кіретін символдардан тұратын жиын құрастырыңыз. Жиынды 
экранға шығарыңыз.
4.   Пернетақтадан енгізілген фамилияға, атқа жəне текке кіретін 
символдардан тұратын жиын құрастырыңыз. Жиынды экранға.
5.   '0'..'9' диапозонына кіретін жəне пернетақтадан енгізілген туған 
жыл датасына кірмейтін символдардан тұратын жиын құрас-
тырып, экранға шығарыңыз.
6.   1..100 бүтін сандар жиынынан, бүтін сан квадраты болатын сан-
дардан жиын құрастырыңыз. Жиынды экранға шығарыңыз.
7.   Пернетақтадан 10 элементтен тұратын сызықтық кестеге енгі-
зілген бүтін сандар жиынынан осы кестенің ең кіші элементіне 
бөлінетін сандар жиын құрастырыңыз.  
8.   Сəйкесінше n жəне m символдан тұратын g жəне f символдық 
файлдары берілген. g файлына да, f файлына да кіретін символдар 
жиынын құрастырыңыз.
10–1618

146
6.3 Жазбаларды хабарлау. Жазба элементтерімен жұмыс істеу. 
Түрлі нұсқадағы жазбалар
Жазбаны сипаттау (RECORD)
Жазба  – өріс деп аталатын, саны нақты компоненттерден 
тұратын мəндер құрылымы. Əр өрістің өз идентификаторы 
жəне типі бар. Жазба компоненттерінің əрқайсысына тікелей 
қол жеткізуге болады жəне оларды іріктеп жаңартуға болады. 
Жазбадағы идентификатор бірегей (уникальным) болуы керек. 
Жазбаның жеке өрісіне қол жеткізу үшін, оның: жазба, нүкте жəне 
өріс идентификаторынан тұратын құрама атауын көрсету керек. 
Жазбаны процедура немесе функция параметрі ретінде көрсетуге 
болады, алайда функция жазба мəні бола алмайды.
 
Жазба типінің жалпы түрдегі сипаттамасы:
 
TYPE <идентификатор типі>= RECORD
<11идентификатор >[,< 12идентификатор >,…]: <1 тип >;
< 21идентификатор >[,< 22идентификатор >,…]: <2 тип >;
                                                   . . .
                      END;
Мысалы: 
 
TYPE  TA= RECORD
              P1: REAL;
              P2: CHAR;
              P3: BYTE
            END;
         VAR A: ARRAY[1..10] OF TA;
Бұл мысалда əр элементі TA  типті жазба болып келген бір 
өлшемді жиым сипатталған.
Жазбаны программаның айнымалыларды сипаттау бөлімін де 
де жариялауға болады.
 VAR C : RECORD
              P1: REAL;
              P2: CHAR;
              P3: BYTE
          END;

147
Мысал. Құрылымы төмендегідей жазба жиымы берілген:
• топ шифры;
• сынақ кітапшасының нөмірі;
• пəн коды;
• баға.
ИС101 тобы студенттерінің орташа бағасын анықтау керек. 
Жиымды енгізгенде ең соңғы жазба «99999» топ шифры.
PROGRAM SRBALL;
TYPE ZAP=RECORD
     SHG:STRING[5];
     NZK:INTEGER;
     KD:1..100;
     OC:2..5
   END;
VAR MAS:ARRAY[1..100] OF ZAP;
    K,N,I:BYTE;
    SUM:REAL;
BEGIN
   I:=0;
   REPEAT
    INC(I);                                
   READLN (MAS[I].SHG, MAS[I].NZK, MAS[I].KD,
                                    MAS[I].OC)
   UNTIL MAS[I].SHG='99999';
   N:=I; SUM:=0; K:=0;
   FOR I:=1 TO N DO
     IF MAS[I].SHG='ИС101' THEN
       BEGIN 
         SUM:=SUM+MAS[I].OC;
         INC(K) 
       END;
     IF K<>0 THEN SUM:=SUM/K;
     WRITELN (‘ИС-101 тобының орташа баллы=’,SUM)
END.

148
Біріктіру операторы 
Жазба компоненттерімен жұмыс жасағанда, құрама атауы 
қолданылады. Атауды қысқартып, жазбамен жұмыс жасауды 
ыңғайлы ету үшін WITH – біріктіру операторы қолданылады.
WITH  < RECORD типті айнымалының идентификаторы > 
DO
                                                         < оператор>;
WITH – біріктіру операторын қолдансақ, жазба компонентіне 
сілтеме жасағанда айнымалы атын жазбауға болады.  
Жоғарыдағы мысалды біріктіру операторының көмегімен 
жазсақ төмендегідей болып шығады:
            . . .
        I:=0;
        REPEAT
                INC(I);
                WITH MAS[I] DO
                READLN(SHG,NZK,KD,OC)
              UNTIL MAS[I].SHG='99999';
              N:=I; SUM:=0; K:=0;
              FOR I:=1 TO N DO
              WITH MAS[I] DO
                IF SHG='ИС101' THEN
                  BEGIN 
                    SUM:=SUM+OC;
                    INC(K) 
                  END;
                     . . .
Жазбаны біріктірілген түрде сипаттап, WITH  операторын 
қолдануға болады. Студенттер жайлы жазба келесі өрістерден 
тұрады делік:
• реттік нөмір;
• ФАТ (бұл өріс – фамилия, аты, тегі өрістерінен тұрады),
• сынақ кітапшасының нөмірі;
• туған жылы (бұл өріс – жыл, ай, күн өрістерінен тұрады).
Мұндағы жазба құрылымын граф түрінде төмендегідей бей-
нелеуге болады:

149
Жазбаны енгізу жəне санау программасының құрылымы ке-
лесідей түрде болады:   
 
USES CRT;           НЕМЕСЕ    USES CRT;
TYPE ZAP=RECORD               TYPE ZAP=RECORD 
 NPP:BYTE;                      NPP:BYTE;
 FIO:RECORD                     FIO:RECORD
 F,I,O:STRING[15];          F,I,O:STRING[15];
 END;                          END;
  NZK:WORD;                       NZK:WORD;
 DTR:RECORD                       DTR:RECORD 
  G:1970..2000;                  G:1970..2000;
 M:STRING[3];                      M:STRING[3];
   D:1..31                             D:1..31
   END;                         END;
  END;                             END;
VAR A:ZAP;                        VAR A:ZAP;
  K,N:BYTE;                          K,N:BYTE;
BEGIN CLRSCR;                       BEGIN CLRSCR;
 K:=0;                                K:=0;
  WITH A DO                      WITH A,FIO,DTR DO
  WITH FIO DO                 REPEAT
     WITH DTR DO                       INC(K);
REPEAT                          WRITELN('ВВОД ');
 INC(K);                             READLN(NPP);
 WRITELN('ВВОД ');                   READLN(F);
 READLN(NPP);                       READLN(I);
 READLN(F);                          READLN(O);
 READLN(I);                       READLN(NZK);
 READLN(O);                          READLN(G);
READLN(NZK);                        READLN(M);

150
 READLN(G);                          READLN(D);
 READLN(M);                       UNTIL D=99;
 READLN(D);                          WRITELN(K);
UNTIL D=99;                          READKEY
WRITELN(K);                     END.
READKEY
END.

Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   24




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

    Басты бет