1611689773-ffb5d5bc447dbad1eb4161de9c157454 (826877)
Текст из файла
Ñïèñîê çàäàíèé ïî êóðñó¾ÎÎÏ íà 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.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.