![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
ФункциялардыҢ жӘне операторларды Қайта жҮктеудіҢ бірге Қолданылуы
ЖҰ МЫС МАҚ САТЫ: операторды қ айта жү ктеу тү сінігімен танысу, функцияларды жә не операторларды қ айта жү ктеудің бірге қ олданылуын мысалдарды талқ ылау арқ ылы мең геру. ПРАКТИКАЛЫҚ САБАҚ ЖОСПАРЫ: 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
|