- •Қазақстан республикасы білім және ғылым министрлігі қ. Жұбанов атындағы ақтөбе мемлекеттік университеті
- •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. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
- •Келісу парағы
3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
Амалдарды қайта анықтауды матрицаларға, массивтерге, жиындарға арифметикалық амалдар қолдану кезінде қолдану.
Полиморфизм принципіне сүйене отырып «Отбасы» класын құру.
Авиабилет сұраныстарын есепке алу бағдарламасын құру кезінде амалдарды қайта анықтау.
БЛИЦ-ТЕСТ
1. Функцияның қайтаратын мәнінің жоқтығын қандай сөз білдіреді:
a) Main. b) Void. c) Function. d) Procedure.
2. Функция мәнін қайтару инструкциясын таңдаңыз:
a) return b) end c) define d) typedef
3. Қайта анықтауға болмайтын оператор
a) = b) <> c) : d) ;
4. Егер функция-оператор кластың кез келген компоненттеріне қатынауы қажет болса, онда оны қандай спецификатормен сипаттау керек?
a) public b) friend c) fixed d) operator
5. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
a) < iostream. h > b) < stdio. h > c) < string . h > d) < ctype. h >
ӘДЕБИЕТТЕР:
Г.С. Иванова и др. ООП: Учебник для вузов, М., Изд-во МГТУ им.Баумана, 2003.- 368 с.
Павловская Т.А. С и С++. Программирование на языке высокого уровня.
Р.Вайнер, Л.Пинсон. С++ ИЗНУТРИ.
Р. Лафоре. Объектно-ориентированное программирование в С++.4-е издание. Питер.2004
Г. Шилдт. Самоучитель C++. - Санкт-Петербург, Изд. BHV, 2004.
А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++)
Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебное пособие. – М.: Финансы и статистика, 2004
Практикалық жұмыс №7-8 функциялардың және операторларды қайта жүктеудің бірге қолданылуы
ЖҰМЫС МАҚСАТЫ: операторды қайта жүктеу түсінігімен танысу, функцияларды және операторларды қайта жүктеудің бірге қолданылуын мысалдарды талқылау арқылы меңгеру.
ПРАКТИКАЛЫҚ САБАҚ ЖОСПАРЫ:
Негізгі теориялық мәліметтерді қайталау.
Шығарылған мысал есептерді талқылау.
Тапсырма ретінде берілген есептерді шығару.
Өз бетімен орындауға үй тапсырмасын беру.
Сабақты қорытындылау. Блиц-тест.
БАҚЫЛАУ СҰРАҚТАРЫ:
Оператор дегеніміз не?
Функция түсінігі.
Функция түрлері.
Функцияны қайта жүктеу кезінде қандай ережелер сақталуы қажет?
Функция параметрлері.
ГЛОССАРИЙ
Рекурсия – функцияның өзін өзі шақыруы.
Функцияны қайта жүктеу – функцияның әртүрлі версияларын хабарлау және анықтау үшін функцияның бір ғана атын қолдану мүмкіндігі.
Функция сигнатурасы – функция параметрлерінің санымен және олардың мәліметтер типімен анықталады.
Төменде келтірілген мысалдарды талқылаңыз:
1-мысал. Келесі программа қайта анықталатын қосу және азайту операторларын қолдануды суреттейді:
#include <iostream.h>
#include <string.h>
class string
{ public:
string(char *); // Конструктор
void operator +(char *);
void operator -(char);
void show_string(void);
private;
char data[256] ;};
string::string(char *str)
{ strcpy(data, str);}
void string::operator +(char *str)
{ strcat(data, str);}
void string::operator -(char letter)
{ char temp[256] ;
int i, j;
for (i = 0, j = 0; data[i]; i++) if (data[i] != letter) temp[j++] = data[i];
temp[j] = NULL;
strcpy(data, temp);}
void string::show_string(void)
{ cout << data << endl;}
void main(void)
{ string title( "C++-те программалау");
string lesson("Амалдарды қайта анықтау");
title.show_string();
title + " мен оқимын!";
title.show_string() ;
lesson.show_string();
lesson - 'P';
lesson.show_string();}
2-мысал. Қайта жүктеуді қолдана отырып, программа тең (!=), тең емес (==) немесе басқада салыстыру операторларын қайта анықтай алады. Келесі программа string класына екі объектінің тең тең емес екенін салыстыратын жаңа объектіні қосады. Программа операторларды қайта жүктеуді қолдана отырып, жолдық объектіде бірдей жолдар бар ма екенін келесі түрде тексере алады:
#include <iostream.h>
#include <string.h>
class string
{public:
string(char *); // конструктор
char * operator +(char *);
char * operator -(char);
int operator ==(string);
void show_string(void);
private:
char data[256];};
string::string(char *str)
{ strcpy(data, str);}
char * string::operator +(char *str)
{ return(strcat(data, str));}
char * string::operator -(char letter)
{ char temp[256];
int i, j;
for (i = 0, j = 0; data[i]; i++) if (data[i] 1= letter) temp[j++] = data[i];
temp[j] = NULL;
return(strcpy(data, temp));}
int string::operator ==(string str)
{ int i;
for (i = 0; data[i] == str.data[i]; i++)
if ((data[i] == NULL) && (str.data[i] == NULL)) return(1); // ТЕҢ
return (0); //ТЕҢ ЕМЕС }
void string::show_string(void)
{ cout << data << endl;}
void main(void)
{ string title( " C++-те программалау");
string lesson("Амалдарды қайта анықтау");
string str( " C++-те программалау");
if (title == lesson) cout << "title және lesson тең" << endl;
if (str == lesson) cout << "str және lesson тең" << endl;
if (title == str) cout << "title және str тең" << endl;}
Орындауға арналған тапсырмалар:
Нақты сандар үшін +, -, * операторларын қайта жүктеңіз.
Жолдар үшін жол ұзындығын есептеу, жолды жолға жалғау амалдарын қайта анықтаңыз.
Нақты сандар үшін сандығы цифрлар санын есептеу, санды дәрежелеу, санды дөңгелектеу функцияларын қайта жүктеңіз.