1. Перечислимые типы и типы диапазонов 2. Массивы

advertisement
Ìàññèâû
1. Ïåðå÷èñëèìûå òèïû è òèïû äèàïàçîíîâ
Èíîãäà âîçíèêàåò íåîáõîäèìîñòü ðàññìîòðåíèÿ îïðåäåëåííîãî íàáîðà ñëó÷àåâ. Ìîæíî, êîíå÷íî, çàêîäèðîâàòü èõ,
îáîçíà÷èâ öåëûìè ÷èñëàìè, íî òàêîé ïîõîä ñòðàäàåò ðÿäîì íåäîñòàòêîâ. Ñàìûé ñóùåñòâåííûé íåäîñòàòîê òàêîãî
ïîäõîäà íåîáõîäèìîñòü ïîìíèòü, êàêîå öåëîå ÷èñëî îçíà÷àåò êàêîé èç âàðèàíòîâ. Äëÿ èñïðàâëåíèÿ ñèòóàöèè ïðèäóìàíû òàê íàçûâàåìûå òèïû ïåðå÷èñëåíèÿ. Îáîçíà÷àåòñÿ òàêîé òèï ïðîñòî ïîñëåäîâàòåëüíîñòüþ èäåíòèôèêàòîðîâ
÷åðåç ¾,¿. Íàïðèìåð, åñëè â ïðîãðàììå íåîáõîäèìî àíàëèçèðîâàòü äåíü íåäåëè, äëÿ óäîáñòâà âïîëíå ìîæíî çàâåñòè
òàêîé òèï:
type DayOfWeek = (Sunday, Monday, Tuesday, Wednesday,
Thirsday, Friday, Saturday);
Ýòîò òèï, êàê è ëþáîé äðóãîé, ìîæíî èñïîëüçîâàòü äëÿ îïðåäåëåíèÿ ïåðåìåííûõ:
var d:DayOfWeek;
Âîçìîæíûå çíà÷åíèÿ ïåðåìåííîé òàêîãî òèïà (êîíñòàíòû ýòîãî òèïà) ïðåäñòàâëåíû ïåðå÷èñëåííûìè â ñêîáêàõ
èäåíòèôèêàòîðàìè (â îïðåäåëåíèè òèïà); íàïðèìåð, ìû ìîæåì íàïèñàòü d:=Tuesday èëè if d=Sunday then ... Âàæíûì
îáñòîÿòåëüñòâîì ÿâëÿåòñÿ òî, ÷òî êàæäûé êîíêðåòíûé èäåíòèôèêàòîð ìîæåò ó÷àñòâîâàòü íå áîëåå ÷åì â îäíîì òàêîì
òèïå. Ðàçóìååòñÿ, ýòè èäåíòèôèêàòîðû íåëüçÿ èñïîëüçîâàòü äëÿ èìåí ïåðåìåííûõ, äðóãèõ òèïîâ è ïîäïðîãðàìì.
Äëÿ óäîáñòâà ðàáîòû ñ ïåðå÷èñëèìûìè òèïàìè èìååòñÿ ðÿä ñòàíäàðòíûõ ôóíêöèé. Ïåðâàÿ èç íèõ íàçûâàåòñÿ ord
è âîçâðàùàåò íîìåð çíà÷åíèÿ â ñîîòâåòñòâèè ñ ïîðÿäêîì ïåðå÷èñëåíèÿ åãî â ñêîáêàõ â îïðåäåëíèè òèïà.
Íàïðèìåð, ord(Sunday) èìååò çíà÷åíèå 0, ord(Monday) 1, è ò. ä. Ðàçóìååòñÿ, â ôóíêöèþ ord ìîæíî ïîäñòàâëÿòü
íå òîëüêî êîíñòàíòû, íî è ïåðåìåííûå; òàê, ord(d) áóäåò âû÷èñëÿòü ïîðÿäêîâûé íîìåð òîé êîíñòàíòû, êîòîðàÿ â
íàñòîÿùèé ìîìåíò õðàíèòñÿ â ïåðåìåííîé d.
Êðîìå ord, èìåþòñÿ åùå äâå ôóíêöèè äëÿ ðàáîòû ñ ïåðå÷èñëèìûìè òèïàìè: pred è succ. Ïåðâàÿ èç íèõ âîçâðàùàåò
ïðåäûäóùåå çíà÷åíèå â ñïèñêå êîíñòàíò, âòîðàÿ ñëåäóþùåå. Íàïðèìåð, pred(Friday) áóäåò èìåòü çíà÷åíèå Thirsday,
à succ(Monday) Tuesday. Ðàçóìååòñÿ, pred íåëüçÿ âûçûâàòü äëÿ ïåðâîãî, à succ äëÿ ïîñëåäíåãî çíà÷åíèÿ â ñïèñêå.
Åñëè ýòè ôóíêöèè ïðèìåíÿþòñÿ äëÿ ïåðåìåííîé, ñíà÷àëà íóæíî óáåäèòüñÿ â òîì, ÷òî ïåðåìåííàÿ èìååò äîïóñòèìîå
çíà÷åíèå.
Ñëåäóþùèì ïîíÿòèåì, êîòîðîå ìû ââåäåì, áóäåò ïîíÿòèå äèñêðåòíîãî òèïà. Äèñêðåòíûé òèï òèï, çíà÷åíèÿ
êîòîðîãî ìîæíî ïåðå÷èñëèòü ïî ïîðÿäêó.  Pascal'å äèñêðåòíûìè òèïàìè ÿâëÿþòñÿ öåëî÷èñëåííûå òèïû, boolean,
char, ïåðå÷èñëèìûå òèïû, à òàêæå äèàïàçîíû. Òèï äèàïàçîíà âûãëÿäèò êàê ¾êîíñòàíòà1..êîíñòàíòà2¿. Íàïðèìåð,
ìîæíî îïðåäåëèòü òèï äèàïàçîíà 1..100, è çàêîííûìè çíà÷åíèÿìè ïåðåìåííûõ òàêîãî òèïà áóäóò öåëûå ÷èñëà îò 1 äî
100 âêëþ÷èòåëüíî. Ò. å. åñëè îïðåäåëèòü ïåðåìåííóþ x, íàïèñàâ var x:1..100; òî x:=47 áóäåò çàêîííûì ïðèñâàèâàíèåì, à
x:=124 íåò. Äèàïàçîíû ìîæíî ñòðîèòü íå òîëüêî èç öåëî÷èñëåííûõ, íî è èç äðóãèõ ïåðå÷èñëèìûõ òèïîâ. Íàïðèìåð,
'a'..'z' äèàïàçîí ñèìâîëîâ; çàêîííûìè çíà÷åíèÿìè ïåðåìåííûõ òàêîãî òèïà áóäóò ìàëåíüêèå ëàòèíñêèå áóêâû.
Òàêæå, ìîæíî îïèñàòü òèï
type WorkDay = Monday..Friday;
êîòîðûé ÿâëÿåòñÿ äèàïàçîíîì äëÿ òèïà DayOfWeek. Ôóíêöèè ord, pred è succ îïðåäåëåíû äëÿ ëþáûõ äèñêðåòíûõ
òèïîâ.
 îïåðàòîðå âûáîðà ìîæíî òàêæå êðîìå öåëûõ ÷èñåë àíàëèçèðîâàòü çíà÷åíèÿ ëþáûõ äèñêðåòíûõ òèïîâ (ñèìâîëîâ,
ïåðå÷èñëèìûõ òèïîâ èëè ëþáûõ èõ äèàïàçîíîâ). Òàêæå è â îïåðàòîðå öèêëà for ìû ìîæåì ïåðåáèðàòü çíà÷åíèÿ ëþáûõ
äèàïàçîíîâ äèñêðåòíûõ òèïîâ â ïðÿìîì èëè îáðàòíîì ïîðÿäêå. Íàïðèìåð, ñëåäóþùèé çàãîëîâîê öèêëà for âïîëíå
çàêîíåí:
for i:=Monday to Thursday do ...
(åñëè, êîíå÷íî, ïåðåìåííàÿ i èìååò ïîäõîäÿùèé òèï).
2. Ìàññèâû
Ìàññèâ åñòü ñðåäñòâî äëÿ îáúåäèíåíèÿ íåêîòîðîãî êîëè÷åñòâà îäíîòèïíûõ ïåðåìåííûõ ïîä îäíèì èìåíåì, äîñòóïíûõ ïî íîìåðó. Ãëàâíîå äîñòîèíñòâî ìàññèâà ïî ñðàâíåíèþ ñ îòäåëüíûìè ïåðåìåííûìè ñîñòîèò â òîì, ÷òî íîìåð,
âûáèðàþùèé êîíêðåòíóþ ïåðåìåííóþ èç âñåé ñîâîêóïíîñòè, íå îáÿçàí áûòü êîíñòàíòîé, à ìîæåò áûòü ðåçóëüòàòîì
ëþáîãî âûðàæåíèÿ, âîçâðàùàþùåãî öåëûé ðåçóëüòàò. Áîëåå òîãî, â Pascal'å äîïóñêàåòñÿ èñïîëüçîâàíèå â êà÷åñòâå
íàáîðà èíäåêñîâ (íîìåðîâ ýëåìåíòîâ) ëþáîãî äèñêðåòíîãî òèïà.
Íàïðèìåð, ìîæíî çàâåñòè òèï ìàññèâà èç 100 âåùåñòâåííûõ ÷èñåë òàê:
type ar
= array [1..100] of real;
Êîìó áîëüøå íðàâèòñÿ îòñ÷èòûâàòü èíäåêñû îò 0 ïîæàëóéñòà:
type ar = array [0..99] of real;
Áîëåå òîãî, ìîæíî èñïîëüçîâàòü â êà÷åñòâå ìíîæåñòâà èíäåêñîâ ëþáîé äèñêðåòíûé òèï:
type ar_ch = array [char] of real; // èíäåêñàöèÿ ñèìâîëàìè
ar_ch_rng = array ['A'..'Z'] of real; // äèàïàçîí èíäåêñîâ
ar_wd = array [DayOfWeek] of real; // ïåðå÷èñëèìûé òèï
ar_wd_rng = array [Monday..Thirsday] of real; // äèàïàçîí
Òàêæå è ñòîÿùèé ïîñëå êëþ÷åâîãî ñëîâà of òèï ýëåìåíòà ìîæåò áûòü ëþáûì äîïóñòèìûì â Pascal'å òèïîì, êàê
âñòðîåííûì, òàê è îïðåäåëåííûì ïðîãðàììèñòîì.  ÷àñòíîñòè, îí â ñâîþ î÷åðåäü ìîæåò áûòü ìàññèâîì.
 ñîîòâåòñòâèè ñ îáúÿâëåíèåì ìàññèâà äîñòóï ê ýëåìåíòó îñóùåñòâëÿåòñÿ ñ óêàçàíèåì èìåíè ìàññèâà è â êâàäðàòíûõ ñêîáêàõ çíà÷åíèÿ èíäåêñà (íîìåðà ýëåìåíòà). Íàïðèìåð, åñëè ïåðåìåííûå îáúÿâëåíû ïðè ïîìîùè äåêëàðàöèè
var c:ar_ch; x:char;
òî âûðàæåíèÿ c['z'] è c[x] âïîëíå çàêîííû è îçíà÷àþò ñîîòâåòñòâóþùèé ýëåìåíò ìàññèâà, êîòîðûé ìîæíî èñïîëüçîâàòü êàê â âûðàæåíèÿõ (òîãäà ýòà çàïèñü îçíà÷àåò çíà÷åíèå óêàçàííîãî ýëåìåíòà), òàê è â ëåâîé ÷àñòè îïåðàòîðà
ïðèñâàèâàíèÿ (òîãäà ýòà çàïèñü îçíà÷àåò àäðåñ â ïàìÿòè, ãäå õðàíèòñÿ óêàçàííûé ýëåìåíò è êóäà íóæíî çàïèñûâàòü
íîâîå çíà÷åíèå ïðè âûïîëíåíèè ïðèñâàèâàíèÿ).
Åñëè åñòü äâà ìàññèâà îäèíàêîâîãî òèïà, ò. å. ñîñòîÿùèå èç îäèíàêîâîãî ÷èñëà ýëåìåíòîâ îäíîãî òèïà, òî îäèí
ìàññèâ ìîæíî ïðèñâîèòü äðóãîìó. Òàêàÿ îïåðàöèÿ ïðîñòî ïåðåïèñûâàåò ýëåìåíòû èç îäíîãî ìàññèâà â äðóãîé. Ðîâíî
òàêæå ìîæíî ïåðåäàâàòü ìàññèâû â ïîäïðîãðàììû è âîçâðàùàòü â êà÷åñòâå ðåçóëüòàòîâ.
Äëÿ ìàññèâîâ òàêæå èìåþòñÿ äâå î÷åíü óäîáíûå ôóíêöèè low è high. Èõ ïàðàìåòðàìè ÿâëÿåòñÿ ìàññèâ, è îíè
âîçâðàùàþò ñàìîå ìàëåíüêîå è ñàìîå áîëüøîå çíà÷åíèÿ èíäåêñà ñîîòâåòñòâåííî. Ïîâñåìåñòíîå èñïîëüçîâàíèå ýòèõ
ôóíêöèé ïîçâîëÿåò â ñëó÷àå íåîáõîäèìîñòè ìåíÿòü äèàïàçîí èíäåêñîâ òîëüêî â òîì ìåñòå, ãäå îïðåäåëÿåòñÿ òèï
ìàññèâà. Åñëè æå â ïðîãðàììå â êà÷åñòâå ãðàíèö èíäåêñîâ èñïîëüçóþòñÿ ÿâíûå ÷èñëà, òàêèå èçìåíåíèÿ äîëæíû áûòü
ñäåëàíû ïî âñåé ïðîãðàììå âî âñåõ òî÷êàõ, ãäå èñïîëüçóåòñÿ èçìåíÿåìûé ìàññèâ.
Ïðèìåð. Íàïèñàòü ôóíêöèþ, ïðèíèìàþùóþ ìàññèâ âåùåñòâåííûõ ÷èñåë è âîçâðàùàþùóþ èõ ñðåäíåå àðèôìåòè÷åñêîå.  ãëàâíîé ïðîãðàììå îïðåäåëèòü ìàññèâ, ââåñòè åãî ýëåìåíòû ñ êëàâèàòóðû è íàïå÷àòàòü ñðåäíåå àðèôìåòè÷åñêîå åãî ýëåìåíòîâ, âû÷èñëåííîå ïðè ïîìîùè íàïèñàííîé ôóíêöèè.
program Average;
type ar = array [1..10] of real;
var M: ar; i: integer;
function avr(M: ar): real;
var i, sum: integer;
begin
sum:=0;
for i := low(M) to high(M) do sum:=sum+M[i];
avr:=sum/(high(M)-low(M)+1)
end;
begin
for i := low(M) to high(M) do readln(M[i]);
writeln(avr(M));
readln
end.
Çàäà÷è.
1. Íàïèñàòü ïðîöåäóðó, ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðà ìàññèâ öåëûõ ÷èñåë òèïà ar è óìíîæàþùóþ ýëåìåíòû
ýòîãî ìàññèâà ñ ÷åòíûìè èíäåêñàìè íà 2, à ñ íå÷åòíûìè íà 3.
2. Îáúÿâèòü ìàññèâ öåëûõ ÷èñåë èç 10 ýëåìåíòîâ è ââåñòè åãî ýëåìåíòû ñ êëàâèàòóðû. Ïîñ÷èòàòü, ñêîëüêî ðàç
ñî÷åòàíèå 1 2 3 âñòðå÷àåòñÿ â äàííîì ìàññèâå (ïðè ýòîì, ìåæäó 1, 2 è 3 íå ìîãóò ñòîÿòü äðóãèå ýëåìåíòû). Íàïðèìåð,
â ìàññèâå 1 2 3 0 1 2 0 3 4 6 ñî÷åòàíèå 1 2 3 âñòðå÷àåòñÿ âñåãî 1 ðàç.
3. Íàïèñàòü ôóíêöèþ, êîòîðàÿ ïðèíèìàåò â êà÷åñòâå ïàðàìåòðà îäíîìåðíûé ìàññèâ öåëûõ ÷èñåë ñ èäåêñàìè îò 1
äî 14 è èçìåíÿåò ýòîò ìàññèâ ñëåäóþùèì îáðàçîì: âñå 5 çàìåíèòü íà 1, à âñå 2 íà 0.
4. Ââåñòè 50 öåëûõ ÷èñåë ñ êëàâèàòóðû è ïîñ÷èòàòü, ñêîëüêî èç ââåäåííûõ ÷èñåë áûëî îòðèöàòåëüíûõ, ðàâíûõ 0,
1, . . ., 100, áîëüøèõ 100. Ðåçóëüòàò âûâåñòè â âèäå òàáëèöû, â êîòîðîé ìîäû (çíà÷åíèÿ îò 0 äî 100, âñòðå÷àþùèåñÿ
÷àùå âñåãî) ïîìå÷åíû ñèìâîëîì ¾*¿).
5. Ââåñòè ñ êëàâèàòóðû ìàññèâ èç 50 ÷èñåë îò 0 äî 20 è ðàñïå÷àòàòü åãî êàê îáû÷íóþ ñòîëáöîâóþ äèàãðàììó
(ýëåìåíòàì ìàññèâà ñîîòâåòñòâóþò ñòîëáöû èç ñèìâîëîâ ¾*¿).
6. Íàïèñàòü ïðîöåäóðó, ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðîâ òðè ìàññèâà, ïåðâûå äâà ïî çíà÷åíèþ (ïî 50 ýëåìåíòîâ êàæäûé), à ïîñëåäíèé ïî ññûëêå, è çàïèñûâàþùóþ ýëåìåíòû èç ïåðâûõ äâóõ ìàññèâîâ â òðåòèé â ïîðÿäêå
âîçðàñòàíèÿ (ïðåäïîëàãàåòñÿ, ÷òî â ïåðâûõ äâóõ ìàññèâàõ ýëåìåíòû òàêæå çàïèñàíû â ïîðÿäêå âîçðàñòàíèÿ).
7. Íàïèñàòü ïðîöåäóðó, ïðèíèìàþùóþ ïî ññûëêå ìàññèâ èç 100 ýëåìåíòîâ è ïåðåñòàâëÿþùóþ åãî ýëåìåíòû òàê,
÷òîáû ïîñëåäíèé ýëåìåíò îêàçàëñÿ íà òàêîì ìåñòå, ÷òîáû âñå ñòîÿùèå äî íåãî ýëåìåíòû áûëè íå áîëüøå åãî, à âñå
ñòîÿùèå ïîñëå íå ìåíüøå, íàèáîëåå áûñòðûì îáðàçîì.
8. Ìàññèâ èç âåùåñòâåííûõ ÷èñåë íàçûâàåòñÿ ïèðàìèäîé, åñëè ýëåìåíò ñ èíäåêñîì i íå áîëüøå êàæäîãî èç ýëåìåíòîâ
ñ èíäåêñàìè 2i è 2i+1. Íàïèñàòü ïðîöåäóðó, ïðèíèìàþùóþ ïî ññûëêå ìàññèâ èç 100 âåùåñòâåííûõ ÷èñåë, ïðî êîòîðûé
èçâåñòíî, ÷òî îí ïèðàìèäà ñ òî÷íîñòüþ äî îäíîãî ýëåìåíòà, ñòîÿùåãî íå íà ñâîåì ìåñòå, è èíäåêñ ýòîãî ýëåìåíòà, è
èñïðàâëÿþùóþ óêàçàííûé ìàññèâ ïðè ïîìîùè ïåðåñòàíîâîê åãî ýëåìåíòîâ, çà âðåìÿ ïîðÿäêà äâîè÷íîãî ëîãàðèôìà
îò äëèíû ìàññèâà.
3. Äèíàìè÷åñêèå ìàññèâû
Îáû÷íûå ìàññèâû òðåáóþò, ÷òîáû äèàïàçîí èíäåêñîâ áûë èçâåñòåí âî âðåìÿ êîìïèëÿöèè ïðîãðàììû. Ýòî äîñòàòî÷íî æåñòêîå îãðàíè÷åíèå, è íå âñåãäà åãî ìîæíî ñîáëþñòè.
Äëÿ îáõîäà òàêîãî îãðàíè÷åíèÿ ñóùåñòâóåò ïîíÿòèå äèíàìè÷åñêîãî ìàññèâà. äèíàìè÷åñêèé ìàññèâ îáúÿâëÿåòñÿ
ïîõîæèì îáðàçîì, íî äèàïàçîí èíäåêñîâ â êâàäðàòíûõ ñêîáêàõ íå ïèøåòñÿ.
type ar = array of integer;
var x:ar;
Ïðåæäå, ÷åì èñïîëüçîâàòü ýëåìåíòû òàêîãî ìàññèâà, íóæíî óñòàíîâèòü åãî ðàçìåð ïðè ïîìîùè âûçîâà
setlength(x,÷èñëî\_ýëåìåíòîâ)
Âïîñëåäñòâèè ýòîò ðàçìåð ìîæíî èçìåíèòü.
 îòëè÷èå îò îáû÷íûõ, ñòàòè÷åñêèõ ìàññèâîâ èç ïðåäûäóùåãî ðàçäåëà, ïåðåìåííàÿ òèïà äèíàìè÷åñêèé ìàññèâ íå
ñîäåðæèò åãî ýëåìåíòîâ, à âìåñòî ýòîãî ñîäåðæèò àäðåñ òîãî áëîêà ïàìÿòè, ãäå íà ñàìîì äåëå õðàíÿòñÿ ýëåìåíòû. Â
÷àñòíîñòè, ýòî îçíà÷àåò, ÷òî ïðèñâàèâàíèå îäíîãî äèíàìè÷åñêîãî ìàññèâà äðóãîìó íå êîïèðóåò èõ ýëåìåíòû, à òîëüêî
ïåðåïèñûâàåò àäðåñ èç îäíîé ïåðåìåííîé â äðóãóþ. Ïîñëå òàêîãî ïðèñâàèâàíèÿ îáå ïåðåìåííûå ñîäåðæàò àäðåñà
îäíîãî è òîãî æå áëîêà ïàìÿòè, è âñå èçìåíåíèÿ, ïðîèçâîäèìûå íàä äèíàìè÷åñêèì ìàññèâîì ÷åðåç îäíó ïåðåìåííóþ,
áóäóò âèäíû ÷åðåç äðóãóþ. Ïàìÿòü, çàíèìàåìàÿ äèíàìè÷åñêèì ìàññèâîì, îñâîáîæäàåòñÿ ëèøü òîãäà, êîãäà íå îñòàåòñÿ
ïåðåìåííûõ, ñîäåðæàùèõ åå àäðåñ.
Èíäåêñàìè äèíàìè÷åñêîãî ìàññèâà âñåãäà ñëóæàò öåëûå ÷èñëà, íà÷èíàÿ ñ 0. Ìàêñèìàëüíîå çíà÷åíèå èíäåêñà, êàê
è â ñëó÷àå îáû÷íûõ ìàññèâîâ, ìîæíî óçíàòü ïðè ïîìîùè ôóíêöèè high, ïàðàìåòðîì êîòîðîé áóäåò èìÿ ìàññèâà.
Çàäà÷è.
1. Íàïèñàòü ôóíêöèþ, êîòîðàÿ ïðèíèìàåò â êà÷åñòâå ïàðàìåòðà îäíîìåðíûé ìàññèâ öåëûõ ÷èñåë ëþáîé äëèíû è
âîçâðàùàåò ñóììó êâàäðàòîâ åãî ýëåìåíòîâ.
2. Íàïèñàòü ôóíêöèþ, êîòîðàÿ ïðèíèìàåò â êà÷åñòâå ïàðàìåòðà îäíîìåðíûé ìàññèâ öåëûõ ÷èñåë ëþáîé äëèíû
è âîçâðàùàåò êîëè÷åñòâî ýëåìåíòîâ â äàííîì ìàññèâå, äëÿ êîòîðûõ ñïðàâåäëèâî ñëåäóþùåå: ýëåìåíò ìàññèâà åñòü
ñóììà åãî ëåâîãî è ïðàâîãî ñîñåäà.
3. Íàïèñàòü ôóíêöèþ, ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðà äèíàìè÷åñêèé ìàññèâ âåùåñòâåííûõ êîýôôèöèåíòîâ
ìíîãî÷ëåíà (ñòåïåíü ïåðåìåííîé â êàæäîì îäíî÷ëåíå ðàâíà èíäåêñó â ìàññèâå; ñâîáîäíûé ÷ëåí ñîîòâåòñòâóåò èíäåêñó
0, êîýôôèöèåíò ïðè x èìååò èíäåêñ 1, è ò. ä.), öåëîå ÷èñëî k è âåùåñòâåííîå ÷èñëî y, è âîçâðàùàþùóþ çíà÷åíèå k-é
ïðîèçâîäíîé ìíîãî÷ëåíà â òî÷êå y.
4. Íàïèñàòü ïðîöåäóðó, ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðîâ äèíàìè÷åñêèé ìàññèâ âåùåñòâåííûõ ÷èñåë è öåëîå
÷èñëî n, è ñäâèãàþùóþ ýëåìåíòû ìàññèâà öèêëè÷åñêè íà n ïîçèöèé âïðàâî (Âàøà ïðîöåäóðà íå èìååò ïðàâà çàâîäèòü
ñâîè ìàññèâû).
5. Íàïèñàòü ôóíêöèþ, ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðà äèíàìè÷åñêèé ìàññèâ âåùåñòâåííûõ ÷èñåë è âû÷èñëÿþùóþ íàèáîëüøóþ ñóììó íåñêîëüêèõ ïîäðÿä èäóùèõ ýëåìåíòîâ ìàññèâà-ïàðàìåòðà (Âàøà ôóíêöèÿ íå èìååò ïðàâà
çàâîäèòü ñâîè ìàññèâû è äîëæíà âûïîëíÿòüñÿ çà âðåìÿ, îãðàíè÷åííîå ëèíåéíîé ôóíêöèåé îò äëèíû ïåðåäàííîãî
ôóíêöèè ìàññèâà).
6. Íàïèñàòü ïðîöåäóðó, ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðà äèíàìè÷åñêèé ìàññèâ öåëûõ ÷èñåë è åãî äëèíó, è
âûïîëíÿþùóþ çàïèñàííóþ â ýòîì ìàññèâå ïðîãðàììó. Ïðîãðàììà ñîñòîèò èç ñëåäóþùèõ äðóã çà äðóãîì êîìàíä
ñëåäóþùåãî âèäà:
0 êîìàíäà îñòàíîâà (âûõîä èç ïðîöåäóðû);
1 êîìàíäà ïåðåïèñûâàíèÿ ñîäåðæèìîãî îäíîé ÿ÷åéêè â äðóãóþ (ñëåäóþùèå çà ýòèì êîäîì äâà ýëåìåíòà ìàññèâà
ïðåäñòàâëÿþò ñîáîé èíäåêñû ÿ÷ååê òîãî æå ìàññèâà, è ñîäåðæèìîå ÿ÷åéêè ñ ïåðâûì èíäåêñîì çàïèñûâàåòñÿ â ÿ÷åéêó
ñî âòîðûì èíäåêñîì);
2 êîìàíäà èíêðåìåíòà (ñëåäóþùàÿ çà ýòèì êîäîì ÿ÷åéêà ñîäåðæèò èíäåêñ òîé ÿ÷åéêè òîãî æå ìàññèâà, ê
ñîäåðæèìîìó êîòîðîé ïðèáàâëÿåòñÿ 1);
3 êîìàíäà äåêðåìåíòà (òî æå, ÷òî è ïðåäûäóùàÿ êîìàíäà, íî òîëüêî èç ñîäåðæèìîãî ÿ÷åéêè ñ óêàçàííûì
àäðåñîì âû÷èòàåòñÿ 1);
4 êîìàíäà óñëîâíîãî ïåðåõîäà (ñëåäóþùèå çà ýòèì êîäîì äâå ÿ÷åéêè èñïîëüçóþòñÿ òàê: ïåðâàÿ ñîäåðæèò àäðåñ ÿ÷åéêè, ñîäåðæèìîå êîòîðîé ïðîâåðÿåòñÿ íà ðàâåíñòâî 0, è âòîðàÿ àäðåñ ñëåäóþùåé êîìàíäû â òîì ñëó÷àå,
åñëè ïðîâåðêà äàëà ïîëîæèòåëüíûé ðåçóëüòàò; åñëè ïðîâåðêà äàëà îòðèöàòåëüíûé ðåçóëüòàò, âñÿ êîìàíäà óñëîâíîãî
ïåðåõîäà èãíîðèðóåòñÿ, è â êà÷åñòâå àäðåñà ñëåäóþùåé êîìàíäû èñïîëüçóåòñÿ àäðåñ êîìàíäû óñëîâíîãî ïåðåõîäà +
3).
Íàïèñàòü ïðè ïîìîùè óêàçàííîãî íàáîðà êîìàíä ïðîãðàììó, âû÷èñëÿþùóþ à) ñóììó á) ðàçíîñòü â) ïðîèçâåäåíèå
äâóõ öåëûõ ÷èñåë, ò. å. â ðåçóëüòàòå ðàáîòû ýòîé ïðîãðàììû â ïîñëåäíþþ ÿ÷åéêó ìàññèâà äîëæåí çàïèñûâàòüñÿ
ðåçóëüòàò ñîîòâåòñòâóþùåé îïåðàöèè íàä ñîäåðæèìûì äâóõ ïðåäûäóùèõ ÿ÷ååê.
Ïðîòåñòèðîâàòü íàïèñàííóþ ïðîãðàììó ïðè ïîìîùè íàïèñàííîé ïðîöåäóðû, ïåðåäàâ åé â êà÷åñòâå ïàðàìåòðà
ìàññèâ ñ ïðîãðàììîé.
Download