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

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

1. Аты-жөнін, телефонын, туған күнін және туған күніне дейінгі күндер санын есептейтін функцияны қосатын «жазба кітапшасы» класы;

2. Дисциплинаны, аудиторияны, басталу уақытын және сабақтың басталуына дейінгі уақытты есептейтін функцияны қосатын «сабақ кестесі» класы;

3. Жолды, құрылған уақытын, ағымдық уақытты және жолдың бар уақытын есептейтін функцияны қосатын «жол» класы;

4. Терезе координаты мен түсін, терезедегі тексті, текст түсін және терезеде тексті өзгерту функциясын қосатын «терезе» класы;

5. Стандартты және экспоненциалды түрдегі комплекстік санды және санның экспоненциалды түрін есептейтін функцияны қосатын «комплексті сан» класы.

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

  1. Студент, Оқытушы, Кафедра меңгерушісі кластар иерархиясын құру.

  2. Жұмысшы, Бөлім меңгерушісі, Директор кластар иерархиясын құру.

  3. Жануар, Жыртқыш, Сүтқоректі кластар иерархиясын құру.

БЛИЦ-ТЕСТ

1. Мұрагерліктің неше түрі бар?

a) 4 b) 3 c) 2 d) 1

2. Мұрагерлік түрі protected түрінде анықталып, базалық класста компонент public түрінде сипатталса, туынды класта компонент қандай түрде көрінеді?

a) public b) private c) protected d) мүмкін емес

3. Мұрагерлік түрі public түрінде анықталып, базалық класста компонент protected түрінде сипатталса, туынды класта компонент қандай түрде көрінеді?

a) public b) private c) protected d) мүмкін емес

4. Мұрагерлік түрі private түрінде анықталып, базалық класста компонент protected түрінде сипатталса, туынды класта компонент қандай түрде көрінеді?

a) public b) private c) protected d) мүмкін емес

5. Мұрагерлік түрлері

a) бір класты, екі класты b) жалғызданған, қосарланған

c) жалғызданған, көпше түрдегі d) жалғызданған, көбейтілген

ӘДЕБИЕТТЕР:

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

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

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

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

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

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

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

Практикалық жұмыс №5-6 полиморфизм. Амалдарды қайта анықтау

ЖҰМЫС МАҚСАТЫ: Ерте байланысу және кеш байланысу механизмдерімен таныстыру, амалдарды қайта анықтауды жүзеге асыра білуді үйрету.

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

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

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

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

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

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

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

    1. Полиморфизм дегеніміз не?

    2. Полиморфизмнің түрлері қандай?

    3. Амалды қайта анықтаудың мақсаты неде?

    4. Қандай амалдар достас функциялар, ал қандай амалдар мүшелер болуы қажет?

    5. Қайта анықталған амалдардың нәтижені қайтару әдістері.

    6. Қандай амалдарды қайта анықтауға болмайды?

ГЛОССАРИЙ

Полиморфизм – иерархияның әртүрлі деңгейіндегі кластар үшін қандай да бір аты бойынша бір әдістің әртүрлі аспектілерін анықтау мүмкіндігін қамтамасыз етеді.

Жай полиморфизм – ерте байланысу механизміне негізделеді.

Күрделі полиморфизм – кеш байланысу механизміне негізделеді.

Амалдарды қайта анықтау – бастапқы мәндерінің біреуін де жоғалтпай, жаңа класс объектілері үшін ұқсас мағыналы амалдарды енгізу.

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

Есептің қойылымы: Нақты сан класынан туынды бүтін сан класын сипаттау және амалдар орындау.

Программасы:

# include <stdio.h>

#include <stdlib.h>

#include <iostream.h>

#include <string.h>

#include <conio.h>

Typedef unsigned long dlong;

Class Tlong {

Public:dlong num;

Tlong() { cout<< “neiniciiru konstr classa”<< endl;}

Tlong(dlong an) {cout <<”Konstr classa Tolng”<< endl;

Setnum(an); }

~Tlong(){cout<<”destr classa Tlong”<< endl;}

Int Kolc();

Void showl(){print();}

Void print(void);

Void setnum(dlong an) {num=an;}};

Void Tlong::print(){cout<<” “<<num<<endl;}

Int Tlong::kolc()

{dlong t=num; int k=0;

While(t>0) {k=k+1; t=t/10;}

Return k; }//class 2

Class Treal: public Tlong

{Public:dlong drob;

Char* real;

Void print();

Void setnumv(char*st);

Treal() { real=NULL;

Cout<<”neinicializiru konstr classa”<<endl;}

Treal(char*st);

~Treal(){delete real; cout<<”destr classa Treal”<<endl;}

Int dkolc();};

Treal:: Treal(char*st):Tlong()

{cout<<”konstr classa Treal”<<endl; setnumv(st);}

Void Treal:: setnumv(char*st)

{int l; char*ptr, *tremp; l=strlen(st); real=new

Char[l+1];

Temp=new char[l+1];strcpy(rel,st); strcpy(temp,st);

Ptr=strchr(temp,’.’); drob=dlong(atoll(ptr+1)); *ptr=’/0’;

Num=dolg(atoll(temp)); delete temp;}

Int Treal:: dkolc()

{ dlong t=drob; int k=0;

While (t>0) {k=k+1; t=t/10;}

Return k;}

Void Treal:: print()

{cout<<”vesh chislo:”<<real<<endl;

Cout<<”celay chast:”<<end; Tlong::print();

Cout<<”drobnay chast:”<<drob<<endl;}

Void showv(Tlong &par){par.print();}

Char s[25];

Void main()

{clrscr();

Cout<<”vvedite chislo ccccc,dddddd”<<endl;cin>>s;

Treal a(s);

Cout<<”1 prostoi obekt proizvodnogo classa”<<endl;

Cout<<”yvnii vizov pereopredel-go metoda”<<endl;

a.print();

cout<<”2 vizov obekta proizvodnogo classa po

ukazatelu na proizvodnii class”

Trel *pr=new Treal(“98567.08765”);

Pr->print();

Delete pr;

Getch();

Cout<<”3 neyvnii vizov pereop metoda”<<endl;

Cout<<”vizov pereopredel metoda iz nasl metoda

Showl()”<< endl;

a.showl();

getch();

Cout<<”4 vizov obekta proiz classa po ukaz na bazovii”<<endl;

Tlong *pb=new Treal(“234567.34765”);

Pb->print();// oshibka!

Delete pb;

Getch();

Cout<<”5 peredacha parameter-peremennoi”<<endl;

Showv(a);

Getch(); }

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

  1. Арифметикалық амалдарды қайта анықтауды қолдана отырып «Полярлы координаталар» класын құру.

  2. «Кафедра» класын құру кезінде полиморфизм принципін қолдану.

  3. Қайта анықталған арифметикалық амалдарды «Таймер» бағдарламасын жүзеге асыру кезінде қолдану.