Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКД_ОБП_Урдабаева.doc
Скачиваний:
113
Добавлен:
01.03.2016
Размер:
1.29 Mб
Скачать

3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):

  1. Амалдарды қайта анықтауды матрицаларға, массивтерге, жиындарға арифметикалық амалдар қолдану кезінде қолдану.

  2. Полиморфизм принципіне сүйене отырып «Отбасы» класын құру.

  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 >

ӘДЕБИЕТТЕР:

  1. Г.С. Иванова и др. ООП: Учебник для вузов, М., Изд-во МГТУ им.Баумана, 2003.- 368 с.

  2. Павловская Т.А. С и С++. Программирование на языке высокого уровня.

  3. Р.Вайнер, Л.Пинсон. С++ ИЗНУТРИ.

  4. Р. Лафоре. Объектно-ориентированное программирование в С++.4-е издание. Питер.2004

  5. Г. Шилдт. Самоучитель C++. - Санкт-Петербург, Изд. BHV, 2004.

  6. А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++)

  7. Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебное пособие. – М.: Финансы и статистика, 2004

Практикалық жұмыс №7-8 функциялардың және операторларды қайта жүктеудің бірге қолданылуы

ЖҰМЫС МАҚСАТЫ: операторды қайта жүктеу түсінігімен танысу, функцияларды және операторларды қайта жүктеудің бірге қолданылуын мысалдарды талқылау арқылы меңгеру.

ПРАКТИКАЛЫҚ САБАҚ ЖОСПАРЫ:

  1. Негізгі теориялық мәліметтерді қайталау.

  2. Шығарылған мысал есептерді талқылау.

  3. Тапсырма ретінде берілген есептерді шығару.

  4. Өз бетімен орындауға үй тапсырмасын беру.

  5. Сабақты қорытындылау. Блиц-тест.

БАҚЫЛАУ СҰРАҚТАРЫ:

  1. Оператор дегеніміз не?

  2. Функция түсінігі.

  3. Функция түрлері.

  4. Функцияны қайта жүктеу кезінде қандай ережелер сақталуы қажет?

  5. Функция параметрлері.

ГЛОССАРИЙ

Рекурсия – функцияның өзін өзі шақыруы.

Функцияны қайта жүктеу – функцияның әртүрлі версияларын хабарлау және анықтау үшін функцияның бір ғана атын қолдану мүмкіндігі.

Функция сигнатурасы – функция параметрлерінің санымен және олардың мәліметтер типімен анықталады.

  1. Төменде келтірілген мысалдарды талқылаңыз:

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;}

  1. Орындауға арналған тапсырмалар:

  1. Нақты сандар үшін +, -, * операторларын қайта жүктеңіз.

  2. Жолдар үшін жол ұзындығын есептеу, жолды жолға жалғау амалдарын қайта анықтаңыз.

  3. Нақты сандар үшін сандығы цифрлар санын есептеу, санды дәрежелеу, санды дөңгелектеу функцияларын қайта жүктеңіз.