2. Èíòåðâàë, íàïðèìåð: 1..5, 'a'..'z'.
3. Ñïèñîê çíà÷åíèé èëè èíòåðâàëîâ, íàïðèìåð: 1,3,5..8,10,12.
Âûïîëíÿåòñÿ îïåðàòîð case ñëåäóþùèì îáðàçîì: âû÷èñëÿåòñÿ âûðàæåíèå ïîñëå ñëîâà case è ïî ïîðÿäêó ïðîâåðÿåòñÿ, ïîäõîäèò ïîëó÷åííîå çíà÷åíèå ïîä êàêîé-ëèáî âàðèàíò, èëè íåò. Åñëè ïîäõîäèò, òî âûïîëíÿåòñÿ ñîîòâåòñòâóþùèé ýòîìó âàðèàíòó îïåðàòîð, èíà÷å — åñòü äâà âàðèàíòà. Åñëè â îïåðàòîðå case çàïèñàíà ÷àñòü else, òî âûïîëíÿåòñÿ îïåðàòîð ïîñëå else, åñëè æå ýòîé ÷àñòè íåò, òî íå ïðîèñõîäèò âîîáùå íè÷åãî.
Ðàññìîòðèì ïðèìåð. Ïóñòü ïîëüçîâàòåëü ââîäèò öåëîå ÷èñëî îò 1 äî 10, ïðîãðàììà äîëæíà ïðèïèñàòü ê íåìó ñëîâî «ó÷åíèê» ñ íåîáõîäèìûì îêîí÷àíèåì (íóëåâîå, «à» èëè «îâ»).
program SchoolChildren;
var n: integer;
begin
write('×èñëî ó÷åíèêîâ --> '); readln(n);
write(n,' ó÷åíèê');
case n of
2..4: write('à');
5..10: write('îâ');
end;
readln;
end.
Ìîæíî òàêæå óñîâåðøåíñòâîâàòü ïðîãðàììó äëÿ ïðîèçâîëüíîãî íàòóðàëüíîãî n:
write(n,' ó÷åíèê');
case n mod 100 of
11..19: write('îâ');
else case n mod 10 of
2..4: write('à');
0,5..9: write('îâ');
end;
end;
Ëåêöèÿ 4. Îïåðàòîðû öèêëîâ â Ïàñêàëå ðåàëüíûõ çàäà÷àõ ÷àñòî òðåáóåòñÿ âûïîëíÿòü îäíè è òå æå îïåðàòîðû íåñêîëüêî ðàç. Âîçìîæíû ðàçëè÷íûå âàðèàíòû: âûïîëíÿòü ôðàãìåíò ïðîãðàììû ôèêñèðîâàííîå ÷èñëî ðàç, âûïîëíÿòü, ïîêà íåêîòîðîå óñëîâèå ÿâëÿåòñÿ èñòèííûì, è ò. ï.  ñâÿçè ñ íàëè÷èåì âàðèàíòîâ â Ïàñêàëå ñóùåñòâóåò 3 òèïà öèêëîâ.
1. Öèêë ñ ïîñòóñëîâèåì (Repeat)Íà Ïàñêàëå çàïèñûâàåòñÿ ñëåäóþùèì îáðàçîì: repeat <îïåðàòîð> until <óñëîâèå>. (Ïî-ðóññêè: ïîâòîðÿòü ÷òî-òî ïîêà_íå_âûïîëíèëîñü óñëîâèå). Ïîä îáîçíà÷åíèåì <îïåðàòîð> çäåñü ïîíèìàåòñÿ ëèáî îäèíî÷íûé, ëèáî ïîñëåäîâàòåëüíîñòü îïåðàòîðîâ, ðàçäåë¸ííûõ òî÷êîé ñ çàïÿòîé. Öèêë ðàáîòàåò ñëåäóþùèì îáðàçîì: âûïîëíÿåòñÿ îïåðàòîð, çàòåì ïðîâåðÿåòñÿ óñëîâèå, åñëè îíî ïîêà åùå íå âûïîëíèëîñü, òî îïåðàòîð âûïîëíÿåòñÿ âíîâü, çàòåì ïðîâåðÿåòñÿ óñëîâèå, è ò. ä. Êîãäà óñëîâèå, íàêîíåö, ñòàíåò èñòèííûì âûïîëíåíèå îïåðàòîðà, ðàñïîëîæåííîãî âíóòðè öèêëà, ïðåêðàòèòñÿ, è äàëåå áóäåò âûïîëíÿòüñÿ ñëåäóþùèé çà öèêëîì îïåðàòîð. Ïîä óñëîâèåì, âîîáùå ãîâîðÿ, ïîíèìàåòñÿ âûðàæåíèå ëîãè÷åñêîãî òèïà.
Ïðèìåð (ïîäñ÷åò ñóììû íàòóðàëüíûõ ÷èñåë îò 1 äî 100):
var i,sum: integer;
begin
sum:=0; i:=0;
repeat
i:=i+1;
sum:=sum+i;
until i=100;
writeln('Ñóììà ðàâíà: ',sum);
readln;
end.
Âàæíî çàìåòèòü, ÷òî îïåðàòîðû ñòîÿùèå âíóòðè öèêëà repeat (èíà÷å – â òåëå öèêëà) âûïîëíÿþòñÿ õîòÿ áû îäèí ðàç (òîëüêî ïîñëå ýòîãî ïðîâåðÿåòñÿ óñëîâèå âûõîäà).
2. Öèêë ñ ïðåäóñëîâèåì (While)Ýòîò öèêë çàïèñûâàåòñÿ òàê: while <óñëîâèå> do <îïåðàòîð>. (Ïîêà óñëîâèå èñòèííî, âûïîëíÿòü îïåðàòîð). Ñóòü â ñëåäóþùåì: ïîêà óñëîâèå èñòèííî, âûïîëíÿåòñÿ îïåðàòîð (â ýòîì ñëó÷àå îïåðàòîð ìîæåò íå âûïîëíèòüñÿ íè ðàçó, ò.ê. óñëîâèå ïðîâåðÿåòñÿ äî âûïîëíåíèÿ). Ïîä îïåðàòîðîì çäåñü ïîíèìàåòñÿ ëèáî ïðîñòîé, ëèáî ñîñòàâíîé îïåðàòîð (ò.å. íåñêîëüêî îïåðàòîðîâ, çàêëþ÷¸íûõ â begin ... end).
Ðàññìîòðèì òîò æå ïðèìåð, âûïîëíåííûé ñ ïîìîùüþ while:
var i,sum: integer;
begin
sum:=0; i:=0;
while i<100 do begin
i:=i+1;
sum:=sum+i;
end;
writeln('Ñóììà ðàâíà: ',sum);
readln;
end.
3. Öèêë ñî ñ÷åò÷èêîì (For)Çàïèñûâàåòñÿ òàê: for <ïåðåìåííàÿ>:=<íà÷> to <êîí> do <îïåðàòîð>. Âìåñòî to âîçìîæíî ñëîâî downto. Ðàññìîòðèì òàêîé ïðèìåð: òðåáóåòñÿ âûâåñòè íà ýêðàí òàáëèöó êâàäðàòîâ íàòóðàëüíûõ ÷èñåë îò 2 äî 20.
var i: integer;
begin for i:=2 to 20 do writeln(i,' ',sqr(i)); end.
Ïðè âûïîëíåíèè öèêëà ïðîèñõîäèò ñëåäóþùåå: ïåðåìåííîé i ïðèñâàèâàåòñÿ íà÷àëüíîå çíà÷åíèå (2), çàòåì âûïîëíÿåòñÿ îïåðàòîð (ïðîñòîé èëè ñîñòàâíîé), ïîñëå ýòîãî ê i ïðèáàâëÿåòñÿ 1, è ïðîâåðÿåòñÿ, íå ñòàëî ëè çíà÷åíèå i ðàâíî êîíå÷íîìó (20). Åñëè íåò, òî âíîâü âûïîëíÿåòñÿ îïåðàòîð, äîáàâëÿåòñÿ 1, è ò. ä.  ñëó÷àå, êîãäà âìåñòî to èñïîëüçóåòñÿ downto, âñå ïðîèñõîäèò íàîáîðîò: åäèíèöà íå ïðèáàâëÿåòñÿ, à âû÷èòàåòñÿ. Íàïðèìåð, ñëåäóþùèé öèêë âûâåäåò òó æå òàáëèöó, íî â îáðàòíîì ïîðÿäêå:
for i:=20 downto 2 do writeln(i,' ',sqr(i));
 çàâåðøåíèå çàïèøåì ïðîãðàììó î ïîäñ÷åòå ñóììû ÷èñåë îò 1 äî 100 ñ ïîìîùüþ for:
var i, sum: integer;
begin
sum:=0;
for i:=1 to 100 do sum:=sum+i;
writeln(sum);
end.
Ëåêöèÿ 5. Ñèìâîëüíûå è ñòðîêîâûå ïåðåìåííûå ìàòåìàòèêå ïîä ïåðåìåííîé îáû÷íî ïîíèìàþò íåêóþ âåëè÷èíó, çíà÷åíèÿ êîòîðîé ìîãóò áûòü òîëüêî ÷èñëàìè.  ÿçûêàõ ïðîãðàììèðîâàíèÿ ïî÷òè âñå äàííûå, ñ êîòîðûìè ðàáîòàþò ïðîãðàììû, õðàíÿòñÿ â âèäå ïåðåìåííûõ.  ÷àñòíîñòè, áûâàþò ïåðåìåííûå äëÿ õðàíåíèÿ òåêñòîâûõ äàííûõ: ïðåäëîæåíèé, ñëîâ è îòäåëüíûõ ñèìâîëîâ.
1. Ñèìâîëüíûé òèïÒèï äàííûõ, ïåðåìåííûå êîòîðîãî õðàíÿò ðîâíî îäèí ñèìâîë (áóêâó, öèôðó, çíàê ïðåïèíàíèÿ è ò.ï.) íàçûâàåòñÿ ñèìâîëüíûì, à â Ïàñêàëå — char. Îáúÿâèòü ïåðåìåííóþ òàêîãî òèïà ìîæíî òàê: var ch: char;. Äëÿ òîãî ÷òîáû ïîëîæèòü â ýòó ïåðåìåííóþ ñèìâîë, íóæíî èñïîëüçîâàòü îïåðàòîð ïðèñâàèâàíèÿ, à ñèìâîë çàïèñûâàòü â àïîñòðîôàõ, íàïðèìåð: ch:='R';. Äëÿ ñèìâîëüíûõ ïåðåìåííûõ âîçìîæíî òàêæå èñïîëüçîâàíèå ïðîöåäóðû readln, íàïðèìåð:
write(‘Âûéòè èç èãðû? (Äà/Íåò)’); readln(ch);
if ch=’Ä’ then ...{âûõîäèòü}...
else ...{ïðîäîëæàòü}...;
Ñèìâîëüíûå ïåðåìåííûå â ïàìÿòè êîìïüþòåðà õðàíÿòñÿ â âèäå ÷èñëîâûõ êîäîâ, èíà÷å ãîâîðÿ, ó êàæäîãî ñèìâîëà åñòü ïîðÿäêîâûé íîìåð. Ê ïðèìåðó, êîä ïðîáåëà ðàâåí 32, êîä ‘A’ — 65, ‘B’ — 66, ‘C’ — 67, êîä ñèìâîëà ‘1’ — 48, ‘2’ — 49, ‘.’ — 46 è ò. ï. Íåêîòîðûå ñèìâîëû (ñ êîäàìè, ìåíüøèìè 32) ÿâëÿþòñÿ óïðàâëÿþùèìè, ïðè âûâîäå òàêèõ ñèìâîëîâ íà ýêðàí ïðîèñõîäèò êàêîå ëèáî äåéñòâèå, íàïðèìåð, ñèìâîë ñ êîäîì 10 ïåðåíîñèò êóðñîð íà íîâóþ ñòðîêó, ñ êîäîì 7 — âûçûâàåò çâóêîâîé ñèãíàë, ñ êîäîì 8 — ñäâèãàåò êóðñîð íà îäíó ïîçèöèþ âëåâî. Ïîä õðàíåíèå ñèìâîëà âûäåëÿåòñÿ 1 áàéò (áàéò ñîñòîèò èç 8 áèò, à áèò ìîæåò ïðèíèìàòü çíà÷åíèÿ 0 èëè 1), ïîýòîìó âñåãî ìîæíî çàêîäèðîâàòü 28=256 ðàçëè÷íûõ ñèìâîëîâ. Êîäèðîâêà ñèìâîëîâ, êîòîðàÿ èñïîëüçóåòñÿ Òóðáî-Ïàñêàëå, íàçûâàåòñÿ ASCII (American Standard Code for Information Interchange — àìåðèêàíñêèé ñòàíäàðòíûé êîä äëÿ îáìåíà èíôîðìàöèåé).
Äëÿ òîãî ÷òîáû ïîëó÷èòü â ïðîãðàììå êîä ñèìâîëà íóæíî èñïîëüçîâàòü ôóíêöèþ chr, íàïðèìåð:
var i: byte; {÷èñëî, çàíèìàþùåå 1 áàéò, çíà÷åíèÿ — îò 0 äî 255}
ch: char;
...
readln(i); writeln('ñèìâîë ñ êîäîì ',i,' — ýòî ',chr(i));
Åñëè â êà÷åñòâå êîäà èñïîëüçóåòñÿ êîíêðåòíîå ÷èñëî, à íå âûðàæåíèå è íå ïåðåìåííàÿ, òî ìîæíî èñïîëüçîâàòü ñèìâîë «#», ñêàæåì òàê: ch:=#7;. Äëÿ òîãî ïåðåõîäà îò êîäà ê ñèìâîëó èñïîëüçóåòñÿ ôóíêöèÿ ord (îò ñëîâà ordinal — ïîðÿäêîâûé). Èìåþùèåñÿ çíàíèÿ ïîçâîëÿþò íàì íàïèñàòü ïðîãðàììó, êîòîðàÿ âûäà¸ò íà ýêðàí òàáëèöó ñ êîäàìè ñèìâîëîâ:
program ASCII;
var ch: char;
begin
for ch:=#32 to #255 do write(ord(ch),'—>',ch,' ');
readln;
end.
 ýòîé ïðîãðàììå â êà÷åñòâå ñ÷¸ò÷èêà öèêëà áûëà èñïîëüçîâàíà ñèìâîëüíàÿ ïåðåìåííàÿ, ýòî ðàçðåøàåòñÿ, ïîñêîëüêó öèêë for ìîæåò èñïîëüçîâàòü â êà÷åñòâå ñ÷¸ò÷èêà ïåðåìåííûå ëþáîãî òèïà, çíà÷åíèÿ êîòîðîãî õðàíÿòñÿ â âèäå öåëûõ ÷èñåë.
Ñ èñïîëüçîâàíèåì êîäîâ ðàáîòàþò åù¸ äâå ôóíêöèè, çíà÷åíèÿ êîòîðûõ ñèìâîëüíûå:
... , òåì íå ìåíåå, èñïîëüçîâàíèå ïðîãðàìì ñ ïåðåêðûòèÿìè ñíèìàåò ýòî îãðàíè÷åíèå. Äâà áèáëèîòå÷íûõ ìîäóëÿ TURBO3 è GRAPH3 ââåäåíû äëÿ ñîâìåñòèìîñòè ñ ðàííåé âåðñèåé 3.0 ñèñòåìû Òóðáî Ïàñêàëü. 2 Îáúåêòû Áàçîâûì â îáúåêòíî-îðèåíòèðîâàííîì ïðîãðàììèðîâàíèè ÿâëÿåòñÿ ïîíÿòèå îáúåêòà. Îáúåêò èìååò îïðåäåë¸ííûå ñâîéñòâà. ...
... âûáðàòü ðåæèì Quit <Alt>-<X>, ïîñëå ÷åãî íàæàòü ëèáî <Enter>, ëèáî êîìáèíàöèþ <Alt>-<X>. ÔÓÍÊÖÈÎÍÀËÜÍÛÅ ÊËÀÂÈØÈ Ôóíêöèîíàëüíûå êëàâèøè èñïîëüçóþòñÿ äëÿ óïðàâëåíèÿ ñðåäîé Òóðáî Ïàñêàëÿ. Îíè îáîçíà÷àþòñÿ F1, F2,..., F12 è ðàñïîëàãàþòñÿ â ñàìîì âåðõíåì ðÿäó êëàâèàòóðû. Ñ êàæäîé èç ýòèõ êëàâèø ñâÿçûâàåòñÿ íåêîòîðàÿ êîìàíäà ìåíþ. Äåéñòâèå ïî÷òè âñåõ ôóíêöèîíàëüíûõ ...
... X. Ïðè óñïåøíîì ðåçóëüòàòå e=0. ÏÐÎÖÅÄÓÐÛ È ÔÓÍÊÖÈÈ Òóðáî Ïàñêàëü ïîçâîëÿåò âûäåëÿòü ôðàãìåíòû ïðîãðàììû âî âñïîìîãàòåëüíûå àëãîðèòìû (ÂÀ). Ýòî ïîçâîëÿåò ïèñàòü õîðîøî ñòðóêòóðèðîâàííûå ïðîãðàììû. ßçûêè ïðîãðàììèðîâàíèÿ, â êîòîðûõ ïðåäóñìîòðåíû ÂÀ, íàçûâàþòñÿ ïðîöåäóðíî-îðèåíòèðîâàííûìè. Ñòðóêòóðèðîâàííûå ïðîãðàììû îáû÷íî ïðîùå â ïîíèìàíèè è îòëàäêå. Íàëè÷èå ÂÀ â ÿçûêå ïðîãðàììèðîâàíèÿ ...
... ïðîãðàììû íåîáõîäèìî ðàñïîëàãàòü åå ñïåöèôèêàöèþ – êîììåíòàðèé â ôèãóðíûõ ñêîáêàõ, ñîäåðæàùèé íàçíà÷åíèå ïðîãðàììû, äàííûå î ïðîãðàììèñòå, äàòó ñîçäàíèÿ ïðîãðàììû. ßçûê ïðîãðàììèðîâàíèÿ Ïàñêàëü ÿâëÿåòñÿ ÿçûêîì ñòðóêòóðíîãî ïðîãðàììèðîâàíèÿ.  íåì åñòü âñå íåîáõîäèìûå óïðàâëÿþùèå êîíñòðóêöèè äëÿ ñòðóêòóðíîãî ïîñòðîåíèÿ ïðîãðàììû. Íàãëÿäíîñòü òàêîìó ïîñòðîåíèþ ïðèäàåò ñòðóêòóðèçàöèÿ âíåøíåãî âèäà ...
0 êîììåíòàðèåâ