1611689773-ffb5d5bc447dbad1eb4161de9c157454 (Правила сдачи)
Описание файла
PDF-файл из архива "Правила сдачи", который расположен в категории "". Всё это находится в предмете "программирование" из 3 семестр, которые можно найти в файловом архиве НГУ. Не смотря на прямую связь этого архива с НГУ, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Ñïèñîê çàäàíèé ïî êóðñó¾ÎÎÏ íà C++¿À. Ã. Ôåíñòåð31 àâãóñòà 2010 ã.Äëÿ ïîëó÷åíèÿ çà÷¼òà ïî ïðàêòèêå íåîáõîäèìî ñäàòü âñå ëèáî íåêîòîðûå èç ïåðå÷èñëåííûõ íèæå çàäàíèé. Îöåíêà çà ïðàêòèêó áóäåò âûâåäåíà ñëåäóþùèì îáðàçîì:- çà íåñäàííûå çàäàíèÿ ñòóäåíò ïîëó÷èò 0 áàëëîâ;- çà êàæäîå èç ïåðâûõ òð¼õ çàäàíèé 3, 4 èëè 5 áàëëîâ;- çà ÷åòâ¼ðòîå çàäàíèå 1 èëè 2 áàëëà, ïðè ýòîì ÷åòâ¼ðòîå çàäàíèåíåîáõîäèìî ñäàòü âñåì;- èòîãîâàÿ îöåíêà áóäåò îïðåäåëåíà ïî ñëåäóþùåé òàáëèöå:êîë-âî áàëëîâ067 1112 14 15 17îöåíêàíåóäîâë. óäîâëåòâ. õîðîøî îòëè÷íîÑóùåñòâóþò òàêæå íåêîòîðûå ïðàâèëà, êîòîðûå íåîáõîäèìî âûïîëíÿòü, à èìåííî:1. Íåëüçÿ ñäàâàòü ÷óæîé êîä. Ñàíêöèè çà íàðóøåíèå ìîãóò áûòü ëþáûìè, âïëîòü äî çàìåíû çàäà÷è èëè 0 áàëëîâ çà ýòó çàäà÷ó.
Ïëàãèàòîòñëåæèâàåòñÿ àâòîìàòè÷åñêîé ñèñòåìîé!2. Ñòóäåíò ìîæåò äîñäàâàòü ÷àñòè çàäà÷è äëÿ ïîâûøåíèÿ îöåíêè (íàïðèìåð, ñíà÷àëà ñäàòü âñå çàäàíèÿ íà ¾òðîéêè¿, à ïîòîì äîïèñûâàòü êîä äëÿ ïîëó÷åíèÿ áîëåå âûñîêèõ îöåíîê). Ïðè ýòîì, åñëèçàäà÷à áûëà ñäàíà íà êàêóþ-ëèáî îöåíêó, øòðàôíûå ñàíêöèè çàîïîçäàíèå ê ýòîé çàäà÷å óæå íå áóäóò ïðèìåíÿòüñÿ.Çà îïîçäàíèå ñíèìàþòñÿáàëëû: ïî 1 áàëëó çà êàæäûå äâå íåäåëè îïîçäàíèÿ (äîäîñòèæåíèÿ ìèíèìàëüíî âîçìîæíîé îöåíêè çà çàäàíèå).Ñðîê ñäà÷è êàæäîé çàäà÷è êîíåö î÷åðåäíîãî ìåñÿöà.3. Çàäàíèÿ íåîáõîäèìî ñäàâàòü âîâðåìÿ!Ñïèñîê çàäàíèé ïî êóðñó ÎÎÏ íà C++Çàäàíèå 1. ÑòðîêèÐåàëèçóéòå êëàññ äëÿ õðàíåíèÿ ñòðîê è áåçîïàñíîé ðàáîòû ñ íèìè (àíàëîã std::string).
Êàæäûé îáúåêò êëàññà äîëæåí õðàíèòü çíà÷åíèå òèïàchar * è ñàìîñòîÿòåëüíî îòñëåæèâàòü, êàêîå êîëè÷åñòâî ïàìÿòè íåîáõîäèìî äëÿ õðàíåíèÿ ñòðîêè.Ïðèìåð òàêîãî êëàññà:class String{private:char *data;...};Âîçìîæíî, âàì çàõî÷åòñÿ òàêæå çàâåñòè ïðèâàòíîå ïîëå äëÿ õðàíåíèÿäëèíû ñòðîêè èëè óêàçàòåëÿ íà ïîñëåäíèé ýëåìåíò.Íåîáõîäèìî ðåàëèçîâàòü:-êîíñòðóêòîð ïî óìîë÷àíèþ (ñîçäà¼ò ïóñòóþ ñòðîêó);êîíñòðóêòîð ñ ïàðàìåòðîì char *;êîíñòðóêòîð êîïèðîâàíèÿ;äåñòðóêòîð (îñâîáîæäàåò âûäåëåííóþ ïàìÿòü);îïåðàòîð ïðèñâàèâàíèÿ;îïåðàòîð ïðèâåäåíèÿ ê const char *;òåñòîâóþ ïðîãðàììó (ôóíêöèþ main), ïðîâåðÿþùóþ âñ¼ ïåðå÷èñëåííîå;(òåîðèÿ ïî êëàññàì, êîíñòðóêòîðàì, äåñòðóêòîðàì è ò.
ï.)íà ¾òðîéêó¿- êîíêàòåíàöèþ äâóõ ñòðîê: îïåðàòîðû + è +=;- ïðîâåðêó ýòèõ îïåðàòîðîâ;(òåîðèÿ ïî îïåðàòîðàì)íà ¾÷åòâ¼ðêó¿- îáðàùåíèå ïî èíäåêñó äâà âàðèàíòà îïåðàòîðà []: êîíñòàíòíûé äëÿ÷òåíèÿ, âîçâðàùàþùèé char & äëÿ èçìåíåíèÿ;- âñòàâèòü â îáà îïåðàòîðà îòëàäî÷íûé âûâîä è ïðîäåìîíñòðèðîâàòü, âêàêèõ ñëó÷àÿõ âûçûâàåòñÿ êàæäûé èç íèõ.íà ¾ïÿò¼ðêó¿2Ñïèñîê çàäàíèé ïî êóðñó ÎÎÏ íà C++Çàäàíèå 2. ÑïèñîêÐåàëèçóéòå øàáëîí êëàññà äëÿ õðàíåíèÿ äèíàìè÷åñêîãî ñïèñêà ýëåìåíòîâ òèïà T (àíàëîã std::list).Ïðèìåð:template <typename T> class List{private:struct element{T data;element *next;};element *head;...};Íåîáõîäèìî ðåàëèçîâàòü:-îïåðàöèè âñòàâêè ýëåìåíòà â íà÷àëî ñïèñêà;îïåðàöèþ óäàëåíèÿ ïåðâîãî ýëåìåíòà;äåñòðóêòîð, îñâîáîæäàþùèé âñþ âûäåëåííóþ ïàìÿòü;òåñòîâóþ ïðîãðàììó, ïðîâåðÿþùóþ âñ¼ âûøåïåðå÷èñëåííîå;(òåîðèÿ ïî øàáëîíàì)íà ¾òðîéêó¿- îïåðàöèè âñòàâêè ýëåìåíòà â êîíåö ñïèñêà;- îïåðàöèþ óäàëåíèÿ ïîñëåäíåãî ýëåìåíòà;- çàïðåò èñïîëüçîâàíèÿ êîíñòðóêòîðà êîïèðîâàíèÿ è îïåðàòîðà ïðèñâàèâàíèÿ;- òåñòîâóþ ïðîãðàììó äëÿ âñåõ ýòèõ îïåðàöèé;íà ¾÷åòâ¼ðêó¿- êëàññ-èòåðàòîð, ïåðåáèðàþùèé ýëåìåíòû ñïèñêà ïðè âûçîâå îïåðàòîðà++, äëÿ êîòîðîãî îïðåäåëåíû îïåðàòîðû * è ->;- òåñòîâóþ ïðîãðàììó, èñïîëüçóþùóþ ýòîò êëàññ.(òåîðèÿ ïî îïåðàòîðàì * è ->)íà ¾ïÿò¼ðêó¿3Ñïèñîê çàäàíèé ïî êóðñó ÎÎÏ íà C++Çàäàíèå 3.
Ñèìâîëüíîå äèôôåðåíöèðîâàíèåÐåàëèçóéòå àáñòðàêòíûé êëàññ Expression ñ ÷èñòî âèðòóàëüíûìè ìåòîäàìè Expression *diff(); è void print(); è îòíàñëåäóéòå îò íåãîêëàññû Number, Variable, Add è Sub ÷èñëî, ïåðåìåííàÿ, ñóììà äâóõâûðàæåíèé è ðàçíîñòü äâóõ âûðàæåíèé, äëÿ êîòîðûõ íàïèøèòå ðåàëèçàöèþ ýòèõ äâóõ ìåòîäîâ.Ïðèìåð:Expression *e = new Add(new Number(1), new Variable('x'));std::cout << "\n";Expression *de = e->diff();de->print();std::cout << "\n";delete e;delete de;Ðåçóëüòàòîì âûïîëíåíèÿ ýòîãî êîäà äîëæíî áûòü0+1Åñòåñòâåííî, íå çàïðåùàåòñÿ ñäåëàòü óïðîùåíèå âûðàæåíèé è íàó÷èòüdiff() äèôôåðåíöèðîâàòü ïî çàäàííîé ïåðåìåííîé, à íå òîëüêî ïî x.Íåîáõîäèìî ðåàëèçîâàòü:- êëàññû Expression, Number, Variable, Add, Sub.(òåîðèÿ ïî íàñëåäîâàíèþ)íà ¾òðîéêó¿- êëàññû Mul (ïðîèçâåäåíèå), Div (÷àñòíîå), ïðè æåëàíèè ôóíêöèèòèïà Sin, Cos è ò.ï.íà ¾÷åòâ¼ðêó¿- ÷òåíèå âûðàæåíèÿ èç ñòðîêè èëè std::cin ñ àâòîìàòè÷åñêèì ñîçäàíèåì íåîáõîäèìûõ îáúåêòîâ.
Ïðèìåð:Expression *e = read_expression("((x+1)*x)");Äîïóñêàåòñÿ òðåáîâàòü íàëè÷èå ñêîáîê âîêðóã îïåðàíäîâ ëþáîé áèíàðíîé îïåðàöèè (ýòî ïîçâîëèò íàïèñàòü ðàçáîð âûðàæåíèÿ ïðè ïîìîùèî÷åíü ïðîñòîãî ðåêóðñèâíîãî ñïóñêà).íà ¾ïÿò¼ðêó¿4Ñïèñîê çàäàíèé ïî êóðñó ÎÎÏ íà C++Çàäàíèå 4. Ãðàôèê ôóíêöèèÖåëüþ çàäàíèÿ ÿâëÿåòñÿ îñâîåíèå êàêîé-ëèáî ãðàôè÷åñêîé áèáëèîòåêèè íàïèñàíèå ïðîãðàììû, îòðèñîâûâàþùåé ãðàôèê íåêîòîðîé ôóíêöèèf (x). Íà çàíÿòèÿõ áóäåò ïîêàçàíî, êàê ¾ðèñîâàòü¿ â îêíå ïðèëîæåíèÿWindows, èñïîëüçóÿ ìåòîäû êëàññà CPaintDC.Âû íå îãðàíè÷åíû â âûáîðå ãðàôè÷åñêîé áèáëèîòåêè äëÿ ðèñîâàíèÿ,íî ðèñîâàíèå íà CPaintDC ÿâëÿåòñÿ, ïîæàëóé, îäíèì èç ñàìûõ ïðîñòûõñïîñîáîâ.Îáùèå óñëîâèÿ:- ôóíêöèÿ äëÿ ðèñîâàíèÿ çàäà¼òñÿ ïðÿìî â òåêñòå ïðîãðàììû;- íå òðåáóåòñÿ íèêàêîãî êðàñèâîãî îôîðìëåíèÿ, äîñòàòî÷íî íàðèñîâàòü îñè êîîðäèíàò è ãðàôèê ôóíêöèè;- ãðàôèê ôóíêöèè ðèñóåòñÿ îòðåçêàìè (dc.MoveTo(x, y),dc.LineTo(x, y)), à íå òî÷êàìè;- ôóíêöèÿ ïðåäïîëàãàåòñÿ íåïðåðûâíîé è îãðàíè÷åííîé íà èíòåðåñóþùåì íàñ èíòåðâàëå.Çàäàíèå íåîáõîäèìî ñäåëàòü è ñäàòü âñåì!- ðèñîâàíèå ãðàôèêà çàäàííîé â êîäå ïðîãðàììû ôóíêöèè.- ïîçèöèîíèðîâàíèå ãðàôèêà ïî öåíòðó îêíà.
Óçíàòü ðàçìåðûîêíà ìîæíî, íàïðèìåð, òàê:RECT rect;dc.GetWindow()->GetWindowRect(&rect);íà 1 áàëë- èñïîëüçóÿ êëàññû èç çàäàíèÿ 3, íàðèñîâàòü ãðàôèê çàäàííîé ïðèïîìîùè êëàññîâ Add, Mul, . . . ôóíêöèè è ãðàôèê å¼ ïðîèçâîäíîé.Äëÿ ýòîãî ê êëàññàì çàäàíèÿ 3 íåîáõîäèìî äîáàâèòü âèðòóàëüíûé ìåòîä double evaluate(double x), âû÷èñëÿþùèé çíà÷åíèåôóíêöèè â òî÷êå x.íà 2 áàëëà5.