- •Қазақстан республикасы білім және ғылым министрлігі қ. Жұбанов атындағы ақтөбе мемлекеттік университеті
- •050602 - «Информатика» мамандығы күндізгі бөлімінің
- •«Obp 4301 Объектіге бағытталған программалау» пәнінен
- •II кафедраның әдістемелік секциясы отырысында талқыланды
- •Пән мазмұны
- •Лабораториялық сабақтардың тақырыптарының үлгілі тізімі
- •Өзіндік жұмыстардың тақырыптарының үлгілі тізімі
- •Ұсынылған әдебиеттер тізімі
- •Оқу пәнінің жұмыс бағдарламасы
- •I жұмыс бағдарламасы дайындалып енгізілді
- •II кафедра отырысында талқыланды
- •IV факультеттің оқу-әдістемелік комиссиясына бекітуге ұсынылды
- •V алғашқы тексеру мерзімі 2011 ж. Тексеру мерзімділігі 1 жыл
- •Дәрістер
- •Практика сабақтары
- •Лаборатория сабақтары
- •Негізгі әдебиеттер
- •Оқу пәнінің жұмыс бағдарламасы
- •Пәннің тақырыптық жоспары
- •Өзіндік жұмыс тапсырмалары
- •1. Жұмыс түрлері:
- •2. Жұмыс түрлерін бағалау критериилері:
- •Курстық жұмыстың тақырыптары
- •Пән бойынша тапсырмаларды орындау және тапсыру графигі
- •Пәннің оқу-әдістемемен қамтамасыз ету картасы
- •Қр білім және ғылым министрлігі
- •2. Көпше түрдегі мұрагерлік
- •2. Операторларды қайта анықтаудың түрлері.
- •3. Унарлы операторларды қайта анықтау
- •4. Бинарлы операторларды қайта анықтау
- •5. Меншіктеу операторларын қайта анықтау
- •6. New және delete операторларын қайта анықтау
- •Жәй және күрделі полиморфизм
- •Виртуальді функциялар
- •Иерархия схемасы
- •Қр білім және ғылым министрлігі
- •2. Орындауға арналған тапсырмалар:
- •Практикалық жұмыс №2 конструкторларды және деструкторларды құру
- •2. Орындауға арналған тапсырмалар:
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Практикалық жұмыс №3-4 мұрагерлік. Жалғызданған және көпше түрдегі мұрагерлік
- •2. Орындауға арналған тапсырмалар:
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Практикалық жұмыс №5-6 полиморфизм. Амалдарды қайта анықтау
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •5. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
- •Практикалық жұмыс №7-8 функциялардың және операторларды қайта жүктеудің бірге қолданылуы
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Практикалық жұмыс №9-10 енгізу-шығару ағындары
- •2. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Қр білім және ғылым министрлігі
- •Жұмысты орындау тәртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •Жұмысты орындау тіртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •Жұмысты орындау тіртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •Лабораторялық жұмыс бойынша сұрақтар
- •Лабораториялық жұмыс № 6-7 объектілер иерархиясы. Топтар. Итераторлар.
- •Қысқаша теориялық мәліметтер
- •Объектілер иерархиясы.
- •Мұндағы gr топ-объект.
- •Жұмысты орындау тәртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •2.Достық функциялар
- •Іі. Жұмыстың орындалу реті
- •Ііі. Өзіндік жұмыс тапсырмалар
- •Жұмыс есебі
- •Іі. Жұмыстың орындалу реті
- •Бүтін сандармен жұмыс жасайтын объект-калькулятор.
- •Жұмысты орындау реті.
- •Әдістемелік нұсқау.
- •Есеп берудің мазмұны.
- •Калькулятор
- •Қр білім және ғылым министрлігі
- •3. Практикалық және лабораториялық сабақтарды орындау
- •Қр білім және ғылым министрлігі
- •Тақырыбы: Конструкторлар және деструкторлар
- •Тақырыбы: Мұрагерлік
- •Тақырыбы: Операторларды қайта жүктеу
- •Тақырыбы: Ағындық кластар
- •Бақылау-өлшеу материалдары
- •21. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
- •Келісу парағы
2. Орындауға арналған тапсырмалар:
1. Аты-жөнін, телефонын, туған күнін және туған күніне дейінгі күндер санын есептейтін функцияны қосатын «жазба кітапшасы» класы;
2. Дисциплинаны, аудиторияны, басталу уақытын және сабақтың басталуына дейінгі уақытты есептейтін функцияны қосатын «сабақ кестесі» класы;
3. Жолды, құрылған уақытын, ағымдық уақытты және жолдың бар уақытын есептейтін функцияны қосатын «жол» класы;
4. Терезе координаты мен түсін, терезедегі тексті, текст түсін және терезеде тексті өзгерту функциясын қосатын «терезе» класы;
5. Стандартты және экспоненциалды түрдегі комплекстік санды және санның экспоненциалды түрін есептейтін функцияны қосатын «комплексті сан» класы.
3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
Студент, Оқытушы, Кафедра меңгерушісі кластар иерархиясын құру.
Жұмысшы, Бөлім меңгерушісі, Директор кластар иерархиясын құру.
Жануар, Жыртқыш, Сүтқоректі кластар иерархиясын құру.
БЛИЦ-ТЕСТ
1. Мұрагерліктің неше түрі бар?
a) 4 b) 3 c) 2 d) 1
2. Мұрагерлік түрі protected түрінде анықталып, базалық класста компонент public түрінде сипатталса, туынды класта компонент қандай түрде көрінеді?
a) public b) private c) protected d) мүмкін емес
3. Мұрагерлік түрі public түрінде анықталып, базалық класста компонент protected түрінде сипатталса, туынды класта компонент қандай түрде көрінеді?
a) public b) private c) protected d) мүмкін емес
4. Мұрагерлік түрі private түрінде анықталып, базалық класста компонент protected түрінде сипатталса, туынды класта компонент қандай түрде көрінеді?
a) public b) private c) protected d) мүмкін емес
5. Мұрагерлік түрлері
a) бір класты, екі класты b) жалғызданған, қосарланған
c) жалғызданған, көпше түрдегі d) жалғызданған, көбейтілген
ӘДЕБИЕТТЕР:
Г.С. Иванова и др. ООП: Учебник для вузов, М., Изд-во МГТУ им.Баумана, 2003.- 368 с.
Павловская Т.А. С и С++. Программирование на языке высокого уровня.
Р.Вайнер, Л.Пинсон. С++ ИЗНУТРИ.
Р. Лафоре. Объектно-ориентированное программирование в С++.4-е издание. Питер.2004
Г. Шилдт. Самоучитель C++. - Санкт-Петербург, Изд. BHV, 2004.
А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++)
Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебное пособие. – М.: Финансы и статистика, 2004
Практикалық жұмыс №5-6 полиморфизм. Амалдарды қайта анықтау
ЖҰМЫС МАҚСАТЫ: Ерте байланысу және кеш байланысу механизмдерімен таныстыру, амалдарды қайта анықтауды жүзеге асыра білуді үйрету.
ПРАКТИКАЛЫҚ САБАҚ ЖОСПАРЫ:
Негізгі теориялық мәліметтерді қайталау.
Шығарылған мысал есепті талқылау.
Тапсырма ретінде берілген есептерді шығару.
Өз бетімен орындауға үй тапсырмасын беру.
Сабақты қорытындылау. Блиц-тест.
БАҚЫЛАУ СҰРАҚТАРЫ:
Полиморфизм дегеніміз не?
Полиморфизмнің түрлері қандай?
Амалды қайта анықтаудың мақсаты неде?
Қандай амалдар достас функциялар, ал қандай амалдар мүшелер болуы қажет?
Қайта анықталған амалдардың нәтижені қайтару әдістері.
Қандай амалдарды қайта анықтауға болмайды?
ГЛОССАРИЙ
Полиморфизм – иерархияның әртүрлі деңгейіндегі кластар үшін қандай да бір аты бойынша бір әдістің әртүрлі аспектілерін анықтау мүмкіндігін қамтамасыз етеді.
Жай полиморфизм – ерте байланысу механизміне негізделеді.
Күрделі полиморфизм – кеш байланысу механизміне негізделеді.
Амалдарды қайта анықтау – бастапқы мәндерінің біреуін де жоғалтпай, жаңа класс объектілері үшін ұқсас мағыналы амалдарды енгізу.
Төменде келтірілген мысалды талқылаңыз:
Есептің қойылымы: Нақты сан класынан туынды бүтін сан класын сипаттау және амалдар орындау.
Программасы:
# include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>
Typedef unsigned long dlong;
Class Tlong {
Public:dlong num;
Tlong() { cout<< “neiniciiru konstr classa”<< endl;}
Tlong(dlong an) {cout <<”Konstr classa Tolng”<< endl;
Setnum(an); }
~Tlong(){cout<<”destr classa Tlong”<< endl;}
Int Kolc();
Void showl(){print();}
Void print(void);
Void setnum(dlong an) {num=an;}};
Void Tlong::print(){cout<<” “<<num<<endl;}
Int Tlong::kolc()
{dlong t=num; int k=0;
While(t>0) {k=k+1; t=t/10;}
Return k; }//class 2
Class Treal: public Tlong
{Public:dlong drob;
Char* real;
Void print();
Void setnumv(char*st);
Treal() { real=NULL;
Cout<<”neinicializiru konstr classa”<<endl;}
Treal(char*st);
~Treal(){delete real; cout<<”destr classa Treal”<<endl;}
Int dkolc();};
Treal:: Treal(char*st):Tlong()
{cout<<”konstr classa Treal”<<endl; setnumv(st);}
Void Treal:: setnumv(char*st)
{int l; char*ptr, *tremp; l=strlen(st); real=new
Char[l+1];
Temp=new char[l+1];strcpy(rel,st); strcpy(temp,st);
Ptr=strchr(temp,’.’); drob=dlong(atoll(ptr+1)); *ptr=’/0’;
Num=dolg(atoll(temp)); delete temp;}
Int Treal:: dkolc()
{ dlong t=drob; int k=0;
While (t>0) {k=k+1; t=t/10;}
Return k;}
Void Treal:: print()
{cout<<”vesh chislo:”<<real<<endl;
Cout<<”celay chast:”<<end; Tlong::print();
Cout<<”drobnay chast:”<<drob<<endl;}
Void showv(Tlong &par){par.print();}
Char s[25];
Void main()
{clrscr();
Cout<<”vvedite chislo ccccc,dddddd”<<endl;cin>>s;
Treal a(s);
Cout<<”1 prostoi obekt proizvodnogo classa”<<endl;
Cout<<”yvnii vizov pereopredel-go metoda”<<endl;
a.print();
cout<<”2 vizov obekta proizvodnogo classa po
ukazatelu na proizvodnii class”
Trel *pr=new Treal(“98567.08765”);
Pr->print();
Delete pr;
Getch();
Cout<<”3 neyvnii vizov pereop metoda”<<endl;
Cout<<”vizov pereopredel metoda iz nasl metoda
Showl()”<< endl;
a.showl();
getch();
Cout<<”4 vizov obekta proiz classa po ukaz na bazovii”<<endl;
Tlong *pb=new Treal(“234567.34765”);
Pb->print();// oshibka!
Delete pb;
Getch();
Cout<<”5 peredacha parameter-peremennoi”<<endl;
Showv(a);
Getch(); }
Орындауға арналған тапсырмалар:
Арифметикалық амалдарды қайта анықтауды қолдана отырып «Полярлы координаталар» класын құру.
«Кафедра» класын құру кезінде полиморфизм принципін қолдану.
Қайта анықталған арифметикалық амалдарды «Таймер» бағдарламасын жүзеге асыру кезінде қолдану.