Ìàññèâû 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). Íàïèñàòü ïðè ïîìîùè óêàçàííîãî íàáîðà êîìàíä ïðîãðàììó, âû÷èñëÿþùóþ à) ñóììó á) ðàçíîñòü â) ïðîèçâåäåíèå äâóõ öåëûõ ÷èñåë, ò. å. â ðåçóëüòàòå ðàáîòû ýòîé ïðîãðàììû â ïîñëåäíþþ ÿ÷åéêó ìàññèâà äîëæåí çàïèñûâàòüñÿ ðåçóëüòàò ñîîòâåòñòâóþùåé îïåðàöèè íàä ñîäåðæèìûì äâóõ ïðåäûäóùèõ ÿ÷ååê. Ïðîòåñòèðîâàòü íàïèñàííóþ ïðîãðàììó ïðè ïîìîùè íàïèñàííîé ïðîöåäóðû, ïåðåäàâ åé â êà÷åñòâå ïàðàìåòðà ìàññèâ ñ ïðîãðàììîé.