Cîñòaâèòü ïðîãðaììó, êîòîðaя ñîäåðæèò òåêóùóþ èíôîðìaöèþ î êíèãaõ â áèá- ëèîòåêå.
Câåäåíèя î êíèãaõ ñîäåðæaò:
íîìåð ÓÄÊ;
ôaìèëèþ è èíèöèaëû aâòîða;
íaçâaíèå;
ãîä èçäaíèя;
êîëè÷åñòâî ýêçåìïëяðîâ äaííîé êíèãè â áèáëèîòåêå. Ïðîãðaììa äîëæía îáåñïå÷èâaòü:
ía÷aëüíîå ôîðìèðîâaíèå äaííûõ î âñåõ êíèãaõ â áèáëèîòåêå â âèäå ñïèñêa;
äîáaâëåíèå äaííûõ î êíèãaõ, âíîâü ïîñòóïaþùèõ â áèáëèîòåêó;
óäaëåíèå äaííûõ î ñïèñûâaåìûõ êíèãaõ;
ïî çaïðîñó âûäaþòñя ñâåäåíèя î íaëè÷èè êíèã â áèáëèîòåêå, óïîðяäî÷åííûå ïî ãîäaì èçäaíèя.
Вариант 17
Ía ìåæäóãîðîäíîé òåëåôîííîé ñòaíöèè êaðòîòåêa aáîíåíòîâ, ñîäåðæaùaя ñâåäå- íèя î òåëåôîíaõ è èõ âëaäåëüöaõ, îðãaíèçîâaía êaê ëèíåéíûé ñïèñîê.
Cîñòaâèòü ïðîãðaììó, êîòîðaя:
îáåñïå÷èâaåò ía÷aëüíîå ôîðìèðîâaíèå êaðòîòåêè â âèäå ëèíåéíîãî ñïèñêa;
ïðîèçâîäèò âûâîä âñåé êaðòîòåêè;
ââîäèò íîìåð òåëåôîía è âðåìя ðaçãîâîða;
âûâîäèò èçâåùåíèå ía îïëaòó òåëåôîííîãî ðaçãîâîða.
Ïðîãðaììa äîëæía îáåñïå÷èâaòü äèaëîã ñ ïîìîùüþ ìåíþ è êîíòðîëü îøèáîê ïðè ââîäå.
Вариант 18
Ía ìåæäóãîðîäíîé òåëåôîííîé ñòaíöèè êaðòîòåêa aáîíåíòîâ, ñîäåðæaùaя ñâåäå- íèя î òåëåôîíaõ è èõ âëaäåëüöaõ, îðãaíèçîâaía êaê äâîè÷íîå äåðåâî.
Cîñòaâèòü ïðîãðaììó, êîòîðaя:
îáåñïå÷èâaåò ía÷aëüíîå ôîðìèðîâaíèå êaðòîòåêè â âèäå äâîè÷íîãî äåðåâa;
ïðîèçâîäèò âûâîä âñåé êaðòîòåêè;
ââîäèò íîìåð òåëåôîía è âðåìя ðaçãîâîða;
âûâîäèò èçâåùåíèå ía îïëaòó òåëåôîííîãî ðaçãîâîða.
Ïðîãðaììa äîëæía îáåñïå÷èâaòü äèaëîã ñ ïîìîùüþ ìåíþ è êîíòðîëü îøèáîê ïðè ââîäå.
Вариант 19
Àâòîìaòèçèðîâaííaя èíôîðìaöèîííaя ñèñòåìa ía æåëåçíîäîðîæíîì âîêçaëå ñî- äåðæèò ñâåäåíèя îá îòïðaâëåíèè ïîåçäîâ äaëüíåãî ñëåäîâaíèя. Äëя êaæäîãî ïî- åçäa óêaçûâaåòñя:
íîìåð ïîåçäa;
ñòaíöèя íaçía÷åíèя;
âðåìя îòïðaâëåíèя.
Äaííûå â èíôîðìaöèîííîé ñèñòåìå îðãaíèçîâaíû â âèäå ëèíåéíîãî ñïèñêa. Cîñòaâèòü ïðîãðaììó, êîòîðaя:
îáåñïå÷èâaåò ïåðâîía÷aëüíûé ââîä äaííûõ â èíôîðìaöèîííóþ ñèñòåìó è ôîðìèðîâaíèå ëèíåéíîãî ñïèñêa;
ïðîèçâîäèò âûâîä âñåãî ñïèñêa;
ââîäèò íîìåð ïîåçäa è âûâîäèò âñå äaííûå îá ýòîì ïîåçäå;
ââîäèò íaçâaíèå ñòaíöèè íaçía÷åíèя è âûâîäèò äaííûå îáî âñåõ ïîåçäaõ, ñëå- äóþùèõ äî ýòîé ñòaíöèè.
Ïðîãðaììa äîëæía îáåñïå÷èâaòü äèaëîã ñ ïîìîùüþ ìåíþ è êîíòðîëü îøèáîê ïðè ââîäå.
Вариант 20
Àâòîìaòèçèðîâaííaя èíôîðìaöèîííaя ñèñòåìa ía æåëåçíîäîðîæíîì âîêçaëå ñî- äåðæèò ñâåäåíèя îá îòïðaâëåíèè ïîåçäîâ äaëüíåãî ñëåäîâaíèя.
Äëя êaæäîãî ïîåçäa óêaçûâaåòñя:
íîìåð ïîåçäa;
ñòaíöèя íaçía÷åíèя;
âðåìя îòïðaâëåíèя.
Äaííûå â èíôîðìaöèîííîé ñèñòåìå îðãaíèçîâaíû â âèäå äâîè÷íîãî äåðåâa. Cîñòaâèòü ïðîãðaììó, êîòîðaя:
îáåñïå÷èâaåò ïåðâîía÷aëüíûé ââîä äaííûõ â èíôîðìaöèîííóþ ñèñòåìó è ôîð- ìèðîâaíèå äâîè÷íîãî äåðåâa;
ïðîèçâîäèò âûâîä âñåãî äåðåâa;
ââîäèò íîìåð ïîåçäa è âûâîäèò âñå äaííûå îá ýòîì ïîåçäå;
ââîäèò íaçâaíèå ñòaíöèè íaçía÷åíèя è âûâîäèò äaííûå î âñåõ ïîåçäaõ, ñëå- äóþùèõ äî ýòîé ñòaíöèè.
Ïðîãðaììa äîëæía îáåñïå÷èâaòü äèaëîã ñ ïîìîùüþ ìåíþ è êîíòðîëü îøèáîê ïðè ââîäå.
ЧАСТЬ II
Объектноdориентированное программирование
 îêîí÷aòåëüíîì âèäå ëþáaя ïðîãðaììa ïðåäñòaâëяåò ñîáîé íaáîð èíñòðóêöèé ïðîöåññîða. Âñå, ÷òî íaïèñaíî ía ëþáîì яçûêå ïðîãðaììèðîâaíèя, — áîëåå óäîá- íaя, óïðîùåííaя çaïèñü ýòîãî íaáîða èíñòðóêöèé, îáëåã÷aþùaя íaïèñaíèå, îò- ëaäêó è ïîñëåäóþùóþ ìîäèôèêaöèþ ïðîãðaììû. ×åì âûøå óðîâåíü яçûêa, òåì â áîëåå ïðîñòîé ôîðìå çaïèñûâaþòñя îäíè è òå æå äåéñòâèя. Íaïðèìåð, äëя ðåaëè- çaöèè öèêëa ía яçûêå aññåìáëåða òðåáóåòñя çaïèñaòü ïîñëåäîâaòåëüíîñòü èíñò- ðóêöèé, ïîçaáîòèâøèñü î ðaçìåùåíèè ïåðåìåííûõ â ðåãèñòðaõ, a â C èëè Ïañêa- ëå äëя ýòîãî äîñòaòî÷íî îäíîãî îïåðaòîða.
C ðîñòîì îáúåìa ïðîãðaììû ñòaíîâèòñя íåâîçìîæíûì óäåðæèâaòü â ïaìяòè âñå äåòaëè, è ñòaíîâèòñя íåîáõîäèìûì ñòðóêòóðèðîâaòü èíôîðìaöèþ, âûäåëяòü ãëaâíîå è îòáðañûâaòü íåñóùåñòâåííîå. Ýòîò ïðîöåññ íaçûâaåòñя ïîâûøåíèåì ñòåïåíè aáñòðaêöèè ïðîãðaììû.
Ïåðâûì øaãîì ê ïîâûøåíèþ aáñòðaêöèè яâëяåòñя èñïîëüçîâaíèå ôóínöèñ, ïî- çâîëяþùåå ïîñëå íaïèñaíèя è îòëaäêè ôóíêöèè îòâëå÷üñя îò äåòaëåé åå ðåaëèça- öèè, ïîñêîëüêó äëя âûçîâa ôóíêöèè òðåáóåòñя çíaòü òîëüêî åå èíòåðôåéñ. Åñëè ãëîáaëüíûå ïåðåìåííûå íå èñïîëüçóþòñя, èíòåðôåéñ ïîëíîñòüþ îïðåäåëяåòñя çaãîëîâêîì ôóíêöèè.
Cëåäóþùèé øaã — îïèñaíèå ñîáñòâåííûõ òèïîâ äaííûõ, ïîçâîëяþùèõ ñòðóêòó- ðèðîâaòü è ãðóïïèðîâaòü èíôîðìaöèþ, ïðåäñòaâëяя åå â áîëåå åñòåñòâåííîì âèäå. Íaïðèìåð, ìîæíî ïðåäñòaâèòü ñ ïîìîùüþ îäíîé ñòðóêòóðû âñå ðaçíîðîä- íûå ñâåäåíèя, îòíîñяùèåñя ê îäíîìó âèäó òîâaða ía ñêëaäå.
Äëя ðaáîòû ñ ñîáñòâåííûìè òèïaìè äaííûõ òðåáóþòñя ñïåöèaëüíûå ôóíêöèè. Åñòåñòâåííî ñãðóïïèðîâaòü èõ ñ îïèñaíèåì ýòèõ òèïîâ äaííûõ â îäíîì ìåñòå ïðîãðaììû, a òaêæå ïî âîçìîæíîñòè îòäåëèòü îò åå îñòaëüíûõ ÷añòåé. Ïðè ýòîì äëя èñïîëüçîâaíèя ýòèõ òèïîâ è ôóíêöèé íå òðåáóåòñя ïîëíîãî çíaíèя òîãî, êaê èìåííî îíè íaïèñaíû — íåîáõîäèìû òîëüêî îïèñaíèя èíòåðôåéñîâ. Îáúåäèíå- íèå â ìîäóëè îïèñaíèé òèïîâ äaííûõ è ôóíêöèé, ïðåäíaçía÷åííûõ äëя ðaáîòû
ñ íèìè, ñî ñêðûòèåì îò ïîëüçîâaòåëя ìîäóëя íåñóùåñòâåííûõ äåòaëåé, яâëяåòñя äaëüíåéøèì ðaçâèòèåì ñòðóêòóðèçaöèè ïðîãðaììû.
Âñå òðè îïèñaííûõ âûøå ìåòîäa ïîâûøåíèя aáñòðaêöèè ïðåñëåäóþò öåëü óïðî- ñòèòü ñòðóêòóðó ïðîãðaììû, òî åñòü ïðåäñòaâèòü åå â âèäå ìåíüøåãî nîëè÷åñòâa áîëåå nðóïíûõ áëînîâ è ìèíèìèçèðîâaòü ñâяçè ìåxäó íèìè. Ýòî ïîçâîëяåò óïðaâ- ëяòü áîëüøèì îáúåìîì èíôîðìaöèè è, ñëåäîâaòåëüíî, óñïåøíî îòëaæèâaòü áî- ëåå ñëîæíûå ïðîãðaììû.
Ââåäåíèå ïîíяòèя nëañña яâëяåòñя åñòåñòâåííûì ðaçâèòèåì èäåé ìîäóëüíîñòè.  êëaññå ñòðóêòóðû äaííûõ è ôóíêöèè èõ îáðaáîòêè îáúåäèíяþòñя. Êëaññ èñ- ïîëüçóåòñя òîëüêî ÷åðåç åãî èíòåðôåéñ — äåòaëè ðåaëèçaöèè äëя ïîëüçîâaòåëя êëañña íåñóùåñòâåííû. Èäåя êëaññîâ îòðaæaåò ñòðîåíèå îáúåêòîâ ðåaëüíîãî ìèða — âåäü êaæäûé ïðåäìåò èëè ïðîöåññ îáëaäaåò íaáîðîì õaðaêòåðèñòèê èëè îòëè÷èòåëüíûõ ÷åðò, èíûìè ñëîâaìè, ñâîéñòâaìè è ïîâåäåíèåì. Ïðîãðaììû ÷añ- òî ïðåäíaçía÷åíû äëя ìîäåëèðîâaíèя ïðåäìåòîâ, ïðîöåññîâ è яâëåíèé ðåaëüíîãî ìèða1, ïîýòîìó â яçûêå ïðîãðaììèðîâaíèя óäîáíî èìåòü aäåêâaòíûé èíñòðóìåíò äëя ïðåäñòaâëåíèя ìîäåëåé.
Êëaññ яâëяåòñя òèïîì äaííûõ, îïðåäåëяåìûì ïîëüçîâaòåëåì.  êëaññå çaäaþòñя ñâîéñòâa è ïîâåäåíèå êaêîãî-ëèáî ïðåäìåòa èëè ïðîöåñña â âèäå ïîëåé äaííûõ (aíaëîãè÷íî ñòðóêòóðå) è ôóíêöèé äëя ðaáîòû ñ íèìè. Cîçäaâaåìûé òèï äaííûõ îáëaäaåò ïðaêòè÷åñêè òåìè æå ñâîéñòâaìè, ÷òî è ñòaíäaðòíûå òèïû. Íaïîìíþ,
÷òî òèï çaäaåò âíóòðåííåå ïðåäñòaâëåíèå äaííûõ â ïaìяòè êîìïüþòåða, ìíîæå- ñòâî çía÷åíèé, êîòîðîå ìîãóò ïðèíèìaòü âåëè÷èíû ýòîãî òèïa, a òaêæå îïåðaöèè è ôóíêöèè, ïðèìåíяåìûå ê ýòèì âåëè÷èíaì. Âñå ýòî ìîæíî çaäaòü è â êëaññå.
Cóùåñòâåííûì ñâîéñòâîì êëañña яâëяåòñя òî, ÷òî äåòaëè åãî ðåaëèçaöèè ñêðûòû îò ïîëüçîâaòåëåé êëañña ça èíòåðôåéñîì (âåäü è â ðåaëüíîì ìèðå ìîæíî, íaïðè- ìåð, óïðaâëяòü aâòîìîáèëåì, íå èìåя ïðåäñòaâëåíèя î ïðèíöèïå âíóòðåííåãî ñãîðaíèя è óñòðîéñòâå äâèãaòåëя, a ïîëüçîâaòüñя òåëåôîíîì — íå çíaя, «êaê èäåò ñèãíaë, ïðèíöèïîâ ñâяçè è êòî êëaë êaáåëü»2). Èíòåðôåéñîì êëañña яâëяþòñя ça- ãîëîâêè åãî ìåòîäîâ. Òaêèì îáðaçîì, êëaññ êaê ìîäåëü îáúåêòa ðåaëüíîãî ìèða яâëяåòñя ÷åðíûì яùèêîì, çaìêíóòûì ïî îòíîøåíèþ ê âíåøíåìó ìèðó.
Èäåя êëaññîâ яâëяåòñя îñíîâîé îáúåêòíî-îðèåíòèðîâaííîãî ïðîãðaììèðîâaíèя (ÎÎÏ). Îñíîâíûå ïðèíöèïû ÎÎÏ áûëè ðaçðaáîòaíû åùå â яçûêaõ Simula-673 è Smalltalk, íî â òî âðåìя íå ïîëó÷èëè øèðîêîãî ïðèìåíåíèя èç-ça òðóäíîñòåé îñâîåíèя è íèçêîé ýôôåêòèâíîñòè ðåaëèçaöèè.  C++ ýòè êîíöåïöèè ðåaëèçîâa- íû ýôôåêòèâíî, êðañèâî è íåïðîòèâîðå÷èâî, ÷òî è яâèëîñü îñíîâîé óñïåøíîãî ðañïðîñòðaíåíèя ýòîãî яçûêa è âíåäðåíèя ïîäîáíûõ ñðåäñòâ â äðóãèå яçûêè ïðî- ãðaììèðîâaíèя.
ÎÎÏ — ýòî íå ïðîñòî íaáîð íîâûõ ñðåäñòâ, äîáaâëåííûõ â яçûê (ía C++ ìîæíî óñïåøíî ïèñaòü è áåç èñïîëüçîâaíèя ÎÎÏ, è íaîáîðîò, âîçìîæíî íaïèñaòü îáú-
1 Íaïðèìåð, Á. Còðaóñòðóï ðaçðaáîòaë C++ äëя ìîäåëèðîâaíèя òåëåôîííûõ êîììóòaöè- îííûõ ñèñòåì.
2 © ÁÃ
3 Îáðaòèòå âíèìaíèå ía ãîä: íå òaê ÷añòî ïîяâëяþòñя íîâûå èäåè â ïðîãðaììèðîâaíèè…
åêòíóþ ïî ñóòè ïðîãðaììó ía яçûêå, íå ñîäåðæaùèì ñïåöèaëüíûõ ñðåäñòâ ïîä- äåðæêè îáúåêòîâ). ÎÎÏ ÷añòî íaçûâaþò íîâîé ïaðaäèãìîé ïðîãðaììèðîâaíèя.
Êðañèâûé òåðìèí «ïaðaäèãìa» îçía÷aåò íaáîð òåîðèé, ñòaíäaðòîâ è ìåòîäîâ, êî- òîðûå ñîâìåñòíî ïðåäñòaâëяþò ñîáîé ñïîñîá îðãaíèçaöèè çíaíèé — èíûìè ñëî- âaìè, ñïîñîá âèäåíèя ìèða.  ïðîãðaììèðîâaíèè ýòîò òåðìèí èñïîëüçóåòñя äëя îïðåäåëåíèя ìîäåëè âû÷èñëåíèé, òî åñòü ñïîñîáa ñòðóêòóðèðîâaíèя èíôîðìa- öèè, îðãaíèçaöèè âû÷èñëåíèé è äaííûõ. Îáúåêòíî-îðèåíòèðîâaííaя ïðîãðaììa ñòðîèòñя â òåðìèíaõ îáúåêòîâ è èõ âçaèìîñâяçåé.
Âûáîð ñòåïåíè aáñòðaêöèè îïðåäåëяåòñя òèïîì çaäa÷è, êîòîðóþ òðåáóåòñя ðå- øèòü. Íå èìååò ñìûñëa èñïîëüçîâaòü ñëîæíûå òåõíîëîãèè äëя ðåøåíèя ïðîñòûõ çaäa÷, a ïîïûòêa «âðóêîïaøíóþ» ñïðaâèòüñя ñî ñëîæíûìè ïðîáëåìaìè îáðå÷åía ía ïðîâaë. C äðóãîé ñòîðîíû, ñëîæíûå òåõíîëîãèè òðåáóþò áîëüøèõ çaòðaò âðå- ìåíè ía èõ îñâîåíèå.
Íaïðèìåð, åñëè òðåáóåòñя íaïå÷aòaòü ïèñüìî, äëя ýòîé öåëè ïîäîéäåò ïðîñòåé- øèé òåêñòîâûé ðåäaêòîð, èìåþùèé ìèíèìóì âîçìîæíîñòåé, êîòîðûì ìîæíî ça 10 ìèíóò îáó÷èòü äaæå ñîáñòâåííóþ áaáóøêó; ïîäãîòîâêa ñòaòüè ñ ôîðìóëaìè ïîòðåáóåò îñâîåíèя áîëåå ñëîæíîãî òåêñòîâîãî ïðîöåññîða òèïa Microsoft Word, a äëя ñîçäaíèя ðåêëaìíîé áðîøþðû ñ èëëþñòðaöèяìè ëó÷øå âñåãî ïîäîéäåò îäèí èç èçäaòåëüñêèõ ïaêåòîâ, äëя îâëaäåíèя êîòîðûì ïîòðåáóåòñя íå îäía íåäå- ëя. Òaê è â ïðîãðaììèðîâaíèè: èäåè ÎÎÏ íå î÷åíü ïðîñòû äëя ïîíèìaíèя è, â îñîáåííîñòè, äëя ïðaêòè÷åñêîãî èñïîëüçîâaíèя (èõ íåãðaìîòíîå ïðèìåíåíèå ïðèíîñèò ãîðaçäî áîëüøå âðåäa, ÷åì ïîëüçû), a îñâîåíèå ñóùåñòâóþùèõ ñòaí- äaðòíûõ áèáëèîòåê òðåáóåò âðåìåíè è äîñòaòî÷íî âûñîêîãî óðîâíя ïåðâîía÷aëü- íîé ïîäãîòîâêè.
Êîíêðåòíûå âåëè÷èíû òèïa äaííûõ «êëaññ» íaçûâaþòñя ýnçåìïëяðaìè nëañña, èëè îáúånòaìè. Îáúåêòû âçaèìîäåéñòâóþò ìåæäó ñîáîé, ïîñûëaя è ïîëó÷aя ñî- îáùåíèя. Ñîîáùåíèå — ýòî çaïðîñ ía âûïîëíåíèå äåéñòâèя, ñîäåðæaùèé íaáîð íåîáõîäèìûõ ïaðaìåòðîâ. Ìåõaíèçì ñîîáùåíèé ðåaëèçóåòñя ñ ïîìîùüþ âûçîâa ñîîòâåòñòâóþùèõ ôóíêöèé. Òaêèì îáðaçîì, ñ ïîìîùüþ ÎÎÏ ëåãêî ðåaëèçóåòñя òaê íaçûâaåìaя «ñîáûòèéíî-óïðaâëяåìaя ìîäåëü», êîãäa äaííûå aêòèâíû è óïðaâëяþò âûçîâîì òîãî èëè èíîãî ôðaãìåíòa ïðîãðaììíîãî êîäa1.
Do'stlaringiz bilan baham: |