- •Қазақстан республикасы білім және ғылым министрлігі қ. Жұбанов атындағы ақтөбе мемлекеттік университеті
- •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. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
- •Келісу парағы
Іі. Жұмыстың орындалу реті
1. Теориялық бөліммен танысу.
2. 1 – 3 программалардың жұмысымен танысу.
3. Өзіндік жұмыс тапсырмаларын орындаңыз.
Ііі. Өзіндік жұмыс тапсырмалар
1. string класын анықтаңыз. Ол үшін "+" және "соңына жалғау" ("+=") достық функцияларын анықтаңыз.
2. DATA класын анықтаңыз, ол үшін "+", "-" амалдары орындалады. Достық функцияны қолданыңыз.
3. INT класын анықтаңыз. Ол үшін "+", "-" амалдары орындалады. Достық функцияны қолданыңыз.
4. TIME класын анықтаңыз. Ол үшін "+", "-" амалдары орындалады. Достық функцияны қолданыңыз.
5. FLOAT класын анықтаңыз. Ол үшін "+", "-" амалдары орындалады. Достық функцияны қолданыңыз.
6. VECTOR класын анықтаңыз. Ол үшін "+", "-" амалдары орындалады. Достық функцияны қолданыңыз.
7. MATRIX класын анықтаңыз. Ол үшін "+", "-" амалдары орындалады. Достық функцияны қолданыңыз.
Жұмыс есебі
- Жұмыс тақырыбы мен мақсаты;
- Жұмыстың орындалуы кезінде қойылған сұрақтарға жауап беру;
- Өзіндік жұмыс программасының листингі.
Лабораторялық жұмыс бойынша сұрақтар
Қандай функциялар достық деп аталады?
Достық класстар дегеніміз не?
Достық кластар қалай анықталады?
Достық функциялар қалай анықталады?
ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС № 9-11
ПОЛИМОРФИЗМ. ОПЕРАТОРЛАРДЫ ҚАЙТА ЖҮКТЕУ.
Жұмыс мақсаты: Операторларды қайта жүктеу механизмімен таныстыру.
Қысқаша теориялық мәліметтер
Операторларды қайта жүктеу.
Операторларды қайта жүктеу С++-тегі стандартты типтерге жаңа типтер қосуға мүмкіндік береді. Операторларды қайта жүктеу достық функциялар сияқты хабарланады.
class ZZ {
public:
friend ZZ operator+(ZZa, ZZb);
friend ZZ operator-(ZZa, ZZb);
friend ZZ operator*(ZZa, ZZb);
friend ZZ operator/(ZZa, ZZb);
};
Функция аттары – operator/, operator*, operator-, operator+ operator кілттік сөзінен және оператор символынан тұрады.
Қайта жүктеуге болатын операторлар тізімі:
* / + – % ^ & :
- ! , = < > <= >=
++ — << >> == != && ||
*= /* %= ^= &= |= += -=
<<= >>= -> ->* [] () new delete
Программа 1. Достық функциялар көмегімен операторларды қайта жүктеу мысалы.
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
class TStrOp {
private:
char val[12];
public:
TStrOp() { val[0]=0; }
TStrOp(const char* s);
long GetVal(void) { return atol(val);}
friend long operator+(TStrOp a, TStrOp b);
friend long operator-(TStrOp a, TStrOp b);
};
void main()
{
TStrOp a = "1234";
TStrOp b = "4321";
cout << endl << "value of a == " << a.GetVal();
cout << endl << "value of b == " << b.GetVal();
cout << endl << " a + b + 6 == " << ( a + b + 6 );
cout << endl << " a – b + 10 == " << ( a – b + 10 )
<< endl;
}
TStrOp::TStrOp(const char* s)
{
strncpy(val, s, 11);
val[11]=0;
}
long operator+(TStrOp a, TStrOp b)
{
return (atol(a.val) + atol(b.val));
}
long operator-(TStrOp a, TStrOp b)
{
return (atol(a.val) – atol(b.val));
}
class TStrOp {
private:
char val[12];
public:
TStrOp() { val[0]=0; }
TStrOp(const char* s);
long GetVal(void) { return atol(val);}
long operator+(TStrOp a, TStrOp b);
long operator-(TStrOp a, TStrOp b); };
long TStrOp::operator+(TStrOp b)
{ return (atol(val) + atol(b.val)); }
long TStrOp::operator-(TStrOp b)
{ return (atol(val) – atol(b.val)); }
Программа 2. Индекстеуді қайта жүктеу мысалы.
#include <iostream.h>
class Psevdoarray {
private:
int val0;
int val1;
int val2;
int val3;
public:
Psevdoarray( int v0, int v1, int v2, int v3)
{ val0 = v0; val1 = v1; val2 = v2; val3 = v3;}
int GetInt(unsigned i);
int operator[] (unsigned i);
};
void main()
{
Psevdoarray pa(10, 20, 30,40);
for( int i=0; i<=3; i++)
cout << "pa[" << i << "] ==" << pa[i] << endl;
}
int Psevdoarray::GetInt(unsigned i)
{
switch (i) {
case 0: return val0;
case 1: return val1;
case 2: return val2;
case 3: return val3;
default: return val0;
}
}
int Psevdoarray::operator[](unsigned i)
{
return GetInt(i);
}