Практикалық жұмыс №1 Тақырыбы: Айнымалылармен жұмыс. Енгізу және шығару. Өрнектер. Сызықтық алгоритмдер



бет17/25
Дата09.06.2022
өлшемі1.03 Mb.
#267232
1   ...   13   14   15   16   17   18   19   20   ...   25
Байланысты:
Практикалық жұмыс С тен
кітап тізім, переплёт, ~$ҚМЖ, биологияотв, биологияотв, Сақталу заңдары, Сақталу заңдары, Тұлғаны дамыту, қалыптастыру, тəрбиелеу факторларының өзара байланысы, Мат лекция 6 (1), Мат лекция 6 (1), 3 лекция, ДИФФЕРЕНЦИАЛДЫҚ ТЕҢДЕУЛЕР

Практикалық жұмыс №8



Тақырыбы: Полиморфизм


Жұмыстың мақсаты: Студенттерге полиморфизм жайында түсінік беріп, алған білімдерін зертханалық есептер шығару барысында қолдану дағдыларын қалыптастыру.


Жұмыс барысы:


Полиморфизм – форманың көптүрлілігі. Бұл бір атауды бір немесе бірнеше кластың түрлі әрекеттеріне қолданатын қасиет.
С++ тіліндегі полиморфизм формалары:

  • функция мен операцияларды қайта жүктеу;

  • виртуальді функциялар;

  • шаблондар – функцияларды жалпылау.

Функция мен операцияларды қайта жүктеу бұл статикалық полиморфизм, себебі функциялар арасындағы байланыс жүктеу кезінде бапталады.


Операцияларды қайта жүктеу

С++ тілі нақты объектілер класын қолданған кезде, олар сол тапсырманы орындауға мүмкіндік береді. Бұл берілгендердің жеке типтерін стандартты түрде қолдану білдіреді.


Қайта жүктеуде операнды шақырылатын класс ретінде қолданылады.
Бинарлы операцияда бірінші операнд ретінде шақырылатын класс қолданылады, екінші операнд аргумент ретінде беріледі.
Синтаксисі:
нәтиже_типі operator операциясы(формальді_параметрлер);
Мысалы,
Massiv operator +(int k);
Мысал 1. р негізбен сандарға санау жүйесін қолданатын класс құрыңыз (1
Есепті шешу: Санау жүйесінде р-нші негізде массив элементтері берілген. Осы сандардың ЕҮОБ табу.
Программа листингісі
// программа == Мысал 1 ==
#include
#include
#include
#include
#include
#include

class syst_sch


{
int p;
char *s;
long s10;
public:
syst_sch()
{
s=(char*) malloc (256);
}
~syst_sch()
{
free(s);
}

void printp()


{
cout<
нші санау жүйесінде: "<< s<<"сан "<< endl;
}
void print10()
{
cout<<"Ондық санау жүйесіндегі сан: "<}
void vvodp();
void vvod10();
void perevodpto10 ();
void perevod10top ();
// операциялар
syst_sch operator +(syst_sch b);
syst_sch operator -(syst_sch b);
syst_sch operator *(syst_sch b);
syst_sch operator /(syst_sch b);
syst_sch operator %(syst_sch b);
syst_sch operator =(syst_sch b);
int operator !=(syst_sch b);
int operator >(syst_sch b);

};
void main ()


{
int nArr, i;
syst_sch x, b, c, arr[50], nod;
cout << "Массив элементтер санын енгіз " ;
cin >> nArr;
cout << endl;
for ( i=0; i{
arr[i].vvodp();
}
// ЕҮОБ табу
nod = arr[0];
for (i=1; i{
x=arr[i];
while (x !=nod)
if (x>nod)
x -= nod;
else nod=nod-x;
}
cout << "Массив сандарының ЕҮОБ " <nod.printp();
nod.print10();
getch();
}

void syst_sch :: vvodp()


{
cout<<" p енгіз (санау жүйесінің негізі): ";
cin>>p;
cout<<" р-нші негіздегі санау жүйесі: ";
cin >>s;
perevodpto10 ();
}
void syst_sch :: vvod10()
{
cout<<" p енгіз (санау жүйесінің негізі): ";
cin>>p;
cout<<"ондық санау жүйесіндегі санды енгіз: ";
cin >>s10;
perevod10top ();
}
void syst_sch :: perevodpto10 ()
{
int i=0;
s10=0;
while (s[i] != '\0')
{
s10 = s10*p+s[i]-'0';
i++;
}
}

void syst_sch :: perevod10top ()


{
int i=0;
long vsp = s10;
int st=1;
while (st < s10)
{
st *= p;
i++;
}
s[i]='\0';
i--;
while (vsp)
{
s[i] = vsp%p+'0';
vsp /= p;
i--;
}
}

syst_sch syst_sch :: operator = (syst_sch b)


{
p = b.p;
s10 = b.s10;
int i=0;
while (b.s[i] != '\0')
{s[i] = b.s[i]; i++; }
s[i] = b.s[i];
return *this;
}

syst_sch syst_sch :: operator +(syst_sch b)


{
int n, q, vsp;
syst_sch c; c.p=p;
c.s10=s10+b.s10;
c.perevod10top();
return c;
}

syst_sch syst_sch :: operator -(syst_sch b)


{ int n, q, vsp;
syst_sch c;
c.p=p;
c.s10=s10-b.s10;
c.perevod10top();
return c;
}

syst_sch syst_sch :: operator *(syst_sch b)


{
int n, q, vsp;
syst_sch c;
c.p=p;
c.s10=s10*b.s10;
c.perevod10top();
return c;
}

syst_sch syst_sch :: operator /(syst_sch b)


{
int n, q, vsp;
syst_sch c;
c.p=p;
c.s10=s10/b.s10;
c.perevod10top();
return c;
}

syst_sch syst_sch :: operator %(syst_sch b)


{
int n, q, vsp;
syst_sch c;
c.p=p;
c.s10=s10%b.s10;
c.perevod10top();
return c;
}

int syst_sch :: operator !=(syst_sch b)


{
return s10!=b.s10;
}

int syst_sch :: operator >(syst_sch b)


{
return s10>b.s10;
}




Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   ...   25




©melimde.com 2022
әкімшілігінің қараңыз

    Басты бет
Сабақтың тақырыбы
бойынша жиынтық
жиынтық бағалау
Сабақ тақырыбы
Сабақтың мақсаты
ғылым министрлігі
тоқсан бойынша
бағдарламасына сәйкес
бағалауға арналған
Сабақ жоспары
Реферат тақырыбы
жиынтық бағалауға
сәйкес оқыту
арналған тапсырмалар
Қазақстан республикасы
білім беретін
оқыту мақсаттары
бағалау тапсырмалары
рсетілетін қызмет
Жалпы ережелер
жиынтық бағалаудың
республикасы білім
бекіту туралы
тоқсанға арналған
Қазақстан тарихы
Қазақстан республикасының
мерзімді жоспар
арналған жиынтық
қызмет стандарты
болып табылады
жалпы білім
арналған әдістемелік
бағалаудың тапсырмалары
Мектепке дейінгі
оқыту әдістемесі
Қазақ әдебиеті
нтізбелік тақырыптық
пәнінен тоқсанға
Зертханалық жұмыс
Инклюзивті білім
Әдістемелік кешені
республикасының білім
білім берудің
туралы жалпы
Қазақстанның қазіргі
Қысқа мерзімді
Жұмыс бағдарламасы
қазақ тілінде
қазіргі заман
туралы хабарландыру
атындағы жалпы