Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






ФункциялардыҢ жӘне операторларды Қайта жҮктеудіҢ бірге Қолданылуы






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

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

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

 

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

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

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

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

 

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

1. Операторларды қ айта жү ктеу арқ ылы қ арапайым калькулятор қ ұ ру.

2. Бү тін сандар ү шін анық талғ ан функцияларды нақ ты сандар ү шін қ айта жү ктеу.

3. Жол ү шін анық талғ ан функцияны символ ү шін қ айта жү ктеу.

 

БЛИЦ-ТЕСТ:

1. Функция-оператор тү рлері

a) жай жә не кү рделі b) жай жә не компонентті c) бір орынды жә не екі орынды d) жай жә не екі орынды

2. Функция-операторды шақ ыру формалары

a) стандартты жә не стандартты емес b) стандартты жә не виртуальді

c) стандартты жә не операторлы d) операторлы жә не операторсыз

3. Егер функция-оператор кластың кез келген компоненттеріне қ атынауы қ ажет болса, онда оны қ андай спецификатормен сипаттау керек?

a) public b) friend c) fixed d) operator

4. Функцияның қ айтаратын мә нінің жоқ тығ ын қ андай сө з білдіреді:

a) Main. b) Void. c) Function. d) Procedure.

5. Функция мә нін қ айтару инструкциясын таң даң ыз:

a) return b) end c) define d) typedef

 

Ә ДЕБИЕТТЕР:

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

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

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

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

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

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

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

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.