- •Қазақстан республикасы білім және ғылым министрлігі қ. Жұбанов атындағы ақтөбе мемлекеттік университеті
- •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. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
- •Келісу парағы
Бүтін сандармен жұмыс жасайтын объект-калькулятор.
class TInt{
int EndState;
public
int x;
Int(int x1);
virtual ~Int();
virtual void GetEvent (TEvent &event);
virtual int Exicute();
virtual void HandleEvent (TEvent& event);
virtual void ClearEvent (TEvent& event);
int Valid();
void EndExec();
int GetX();
void SetX (int newX);
void AddY (int Y);
…
};
Негізгі әдістердің жүзеге асу мүмкіндіктерін қарастырамыз.
void TInit::GetEvent(TEvent &event)
{char* OpInt = “+-*/=?q”; // жолда операциялар коды бар
char s[20];
char code;
cout<<‘>’;
cin>>s; code = s[1];
if(Test(char code,char*OpInt) // Test функциясы code символы OpInt жолына //кіретіндігін тексереді
{event.what = evMessage;
swith(code)
{case ‘+’: event.command=cmAdd;
break;
…
case‘q’: event.command = cmQuit;
break;
}
//екінші параметрді белгілеу, оны int типіне айналдыру және А өрісіне меншіктеу
};
else event.what= evNothing
};
int TMyApp::Execute()
{do{endState=0;
GetEvent(event); //оқиғаны алу
HandleEvent(event); //оқиғаны өңдеу
if(event.what!=evNothing) //оқиға өңделмей қалды
while(!Valid());
return endState;
}
void TInt::HandleEvent(TEvent& event)
{
if( event.what == evMessage)
{
switch( event.message.command )
{
case cmAdd:AddY(event.A);
СlearEvent( event );
break;
…
case cmQuit:EndExec();
СlearEvent( event );
break;
};
};
}
int TInt::Valid();
{ if (EndState == 0) return 0;
else return 1;
}
void TInt::ClearEvent(TEvent& event)
{
Event. what:= evNothing;
}
void TInt::EndExec()
{
EndState= 1;
}
void TInt::AddY(int Y)
{
x+=Y;
и т.д.
void main()
{
TInt MyApp;
MyApp.Execute();
}
Жұмысты орындау реті.
1. Қосымшада келтірілген мысалды талдау. Келесі срақтарға жауап беру:
а) мұндағы кластардың иерархиясы қандай?
б) мұндағы объектілердің иерархиясы қандай?
в) операцияның аргументтері КАЛЬКУЛЯТОРҒА қалай беріледі? Олар қайда сақталады? ҚОСУ, АЗАЙТУ және т.б. амалдар оған қалай қолжетімді?
г) оқиға топпен қалай өңделеді?
д) TEvent оқиғасының барлық маршруттары қандай?
е) барлық класстардың HandleEvent қалай орындалады?
2. Оқиғаны өңдейтін объектілер тобын таңдау (бұл қосымшада келтірілген объектілер болуы мүмкін емес).
3. Таңдалған объектілер үшін қолданушының командасы бойынша орындалатын операциялар тізімін анықтау.
4. Командалық жолдың түрін анықтау<операция коды><параметрлер>. Сұрақтарды шешу:
Операциялар қалай кодталады? Қандай параметрлер беріледі?
5. Объектілердің иерархиясын анықтау, егер жаңа объектілер (объектілер тобын) қосу қажет болса.
6. егер жаңа класс қосу қажет болса, класстар иерархиясын анықтау.
7. Программада қандай объект қосымша қызметін атқаратынын анықтау. Қажет болған жағдайда класстар иерархиясына TApp класын қосу. Оқиғаны өңдеудің негізгі циклын ұйымдастыратын Execute әдісі қай класта болатынын анықтау.
8. Оқиғаны өңдеуге қажет әдістерді анықтау және жүзеге асыру.
9. (main) негізгі функциясын жазу.