- •Қазақстан республикасы білім және ғылым министрлігі қ. Жұбанов атындағы ақтөбе мемлекеттік университеті
- •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. Time класында уақытқа уақыт қосу, уақытты шегеру әдістерін анықтаңыз.
2. Жол класын сипаттаңыз. Жолға мән беру үшін параметрлі конструкторды пайдаланыңыз.
3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
«Электроэнергия» программасы. Программа санағыш көрсеткіштері бойынша электроэнергия үшін төленетін төлем сомасын есептеу қажет. Санағыштың бастапқы мәндерін беру үшін конструкторды қолданыңыз.
Қиық пирамида бетінің ауданын және көлемін есептеу мүмкіндігін беретін объект құрылымын сипаттау. Берілген объект көмегімен қиық пирамида бетінің ауданы мен көлемін есептейтін программа жазу. Қиық пирамида өлшемдері конструктор арқылы берілу қажет.
БЛИЦ-ТЕСТ
1. Құрылу кезінде объект инициализациясы үшін автоматты түрде шақырылады
a) деструктор b) функция c) конструктор d) мұрагерлік
2. Аргументсіз шақыруға болатын конструктор
a) көшіру конструкторы b) үнсіз жағдай конструкторы
c) параметрлі конструктор d) меншіктеу конструкторы
3. Объектілер жиынын және оларға қолданылатын амалдарды сипаттау - бұл
a) объект b) әдіс c) тұрақты d) класс
4.Объект жойылу кезінде автоматты түрде шақырылады
a) деструктор b) функция c) конструктор d) мұрагерлік
5. Конструктордың неше түрі бар?
a) 4 b) 3 c) 2 d) 1
ӘДЕБИЕТТЕР:
Г.С. Иванова и др. ООП: Учебник для вузов, М., Изд-во МГТУ им.Баумана, 2003.- 368 с.
Павловская Т.А. С и С++. Программирование на языке высокого уровня.
Р.Вайнер, Л.Пинсон. С++ ИЗНУТРИ.
Р. Лафоре. Объектно-ориентированное программирование в С++.4-е издание. Питер.2004
Г. Шилдт. Самоучитель C++. - Санкт-Петербург, Изд. BHV, 2004.
А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++)
Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебное пособие. – М.: Финансы и статистика, 2004
Практикалық жұмыс №3-4 мұрагерлік. Жалғызданған және көпше түрдегі мұрагерлік
ЖҰМЫС МАҚСАТЫ: ОБП-дың негізгі қасиеттерінің бірі – мұрагерлік ұғымымен, оның түрлерімен және жүзеге асу принципімен таныстыру. Туынды кластарды құрастыру тәсілдерін меңгеру, мұрагерлік түрлерін ажырата білу.
ПРАКТИКАЛЫҚ САБАҚ ЖОСПАРЫ:
Негізгі теориялық мәліметтерді қайталау.
Шығарылған мысал есептерді талқылау.
Тапсырма ретінде берілген есептерді шығару.
Өз бетімен орындауға үй тапсырмасын беру.
Сабақты қорытындылау. Блиц-тест.
БАҚЫЛАУ СҰРАҚТАРЫ:
Мұрагерлік дегеніміз не?
Мұрагерліктің қандай түрлерін ажыратуға болады?
Туынды класта және структурада public, private және protected мүмкіндікті компоненттер қалай мұра етіледі?
Мүрагерлік жиынында бірмәнділік еместікті қалай орнатуға болады?
Туынды класта конструкторларды мен деструкторларды шақыру реті және мұрагерлік.
ГЛОССАРИЙ
Мұрагерлік – класс алдындағы ұрпақтың барлық қасиеттерін және әдістерін сақтай отырып, бір кластың басқа кластан пайда болу мүмкіндігі.
Жалғызданған мұрагерлік – бір базалық кластан бір немесе бірнеше туынды кластың пайда болуы.
Көпше түрдегі мұрагерлік - туынды кластың құрамында бірден көп базалық кластың болуы.
Төменде келтірілген мысалдарды талқылаңыз:
1-мысал. Public мұрагерлік түрімен туынды класты сипаттау.
#include <iostream.h>
#include <conio.h>
class A
{private: //кластың қорғалған (жабық) компоненттері
int numza;
public: //кластың жалпы (ашық) компонеттері
int питоа;
void print (void)
{соut«"А қорғалған өрісі= "«numza«endl;
cout« "А ашық өрісі = "«numoa«endl;}
А() { numza=20; питоа=50;}
};
class В: public А /*ашық мұрагерлік – В класына А класының барлық жалпы компоненттері қол жетімді*/
{ private: int numzb;
public:
void print (void)
{соut«" В қорғалған өрісі = "«numzb«endl;
соut«" A жалпы өрісі =";
cout< <numoa< <endl;}
B(){numzb=100;}
};
void main()
{ clrscr();
A aa; В bb;
cout « "жұмыс нәтижесі: "«endl;
aa.print();
bb.print();
getch(); }
2-мысал. Private мұрагерлік түрімен туынды класты сипаттау.
#include <iostream.h>
#include <conio.h>
class A
{private: int numza;
protected: int numpra;
public:
int numoa;
void print(void)
{ cout «" A класының жабық өрісі = "«numza«endl;
соut«"A класының қорғалған өрісі= "«numpra«endl;
cout« " A класының ашық өрісі = "«numoa«endl;}
A(){numza=20; numpra=30; numoa=50;}};
class B: private A // кластың барлық компоненттері В класында қол жетімсіз
{private: int numzb;
protected:
A::numpra; /*А класының қорғалған өрісі В класында қол жетімді болып хабарланады*/
public:
А::питоа; /* А класының жалпы өрісі В класында қол жетімді болып хабарланады*/
void print(void)
{соut«"В класының жабық өрісі = "«numzb«endl;
соut«"В класында қол жетімді А класының ашық өрісі=";
соut<<питоа< <endl;
соut«''В класында қол жетімді А класының қорғалған өрісі= ";
cout< <numpra«endl;}
B(){numzb=100;}} :
void main()
{ clrscr();
A aa; В bb;
cout « "жұмыс нәтижесі: "«endl;
aa.print();bb.print();
getch();}
3-мысал. Базалық және туынды кластардағы конструкторлар жұмысы.
#include <iostream.h>
#include <conio.h>
class A
{ int a;
public:
int c1;
void print(void) { cout<<a<< " "<< c1<<endl;}
A(int v):a(v){c1=10;} //А базалық класының конструкторы
};
class В: public A
{ int b;
public:
void print(void) { cout«b« " "<<c1 <<endl;}
B(int va,int vb):A(va),b(vb) {} // В класының конструкторы
};
class С: public В
{ int с;
public:
void print(void) { cout< <c< < " "«c1 < <endl;}
C(int va,int vb,int vc):B(va,vb),c(vc){} // С класының конструкторы
};
Void main()
{clrscr();
A aa(10), *pa; // А класының конструкторы шақырылады
В bb(10,100); //А класының, содан соң В класының конструкторы шақырылады
С сс(10,100,1000); //А, В және С кластарының конструкторлары шақырылады
bb.c1=25;
сс.с1=35;
aa.print();
bb.print();
cc.print();
ра=&аа;
pa->print():
pa=&bb;
pa->print();
ра=&сс;
pa->print();
getch();}