Зертханалы жмыс.

Зертханалы жмыс.

Программалауда азіргі олданылып жрген технологиялар. Объектіге бадарланан программалауды негізгі аидалары

дістемелік нсаулар


Объектіге бадарланан программалауды жзеге асыратын программалау орталарына Visual Basic, C++ Builder жне т.б. жатады. ОБП-ды маынасы мынада: программаны рамындаы кптеген элементтер (мысалы, терезелер, мзірлер, батырмалар жне т.б.), программаа ттастай ойылатын жне программисті басаруына ыайланан белгілі бір объектілер ретінде арастырылады. Бл объектілерді инкапсуляция, абылдаушылы жне полиморфизм принциптеріне негізделген ерекше асиеттері, дістері жне рекеттері болады. Объектіге бадарланан программалауды негізін райтын да осы инкапсуляция, абылдаушылы жне полиморфизм принциптері.

Класс.Инкапсуляция, абылдаушылы жне полиморфизм принциптеріне сйкес аныталатын объектілерді программада сипаттау жне олдану шін класс деп аталатын жаа рылымды тип арастырылады. Кез-келген объект белгілі бір класты кілі, бір данасы немесе айнымалысы болып есептеледі. Класты рамына рістер, дістер жне асиеттеркіреді.

Тума кластар здерінде тпкі класты барлы рістерін сатап калады жне оны згерте алмайды, алып тастауа да болмайды, тек жаа рістермен толытыруа болады. Тпкі классты программадаы сипатталуы немесе класты жаа данасын ру программа модулінде келесі трде жазылады.:

classкласты аты

{

private:

< жабы элементтер немесе мліметтер>

жабы конструкторлар>

< жабы функция-элементтер>

рrotected:

< оралан элементтер немесе мліметтер>

< оралан конструкторлар>

< оралан функция-элементтер>

рublic:

< ашы элементтер немесе мліметтер>

< ашы конструкторлар>

< ашы деструкторлар>

< ашы функция-элементтер>

};

Мысалы:rectangle деп аталатын класты анытау

classrectangle // класты аты

{

private:

double length; // зындыы жабы элемент

double width; // ені жабы элемент

public:

rectangle() // конструктор нсіздік бойынша

{assign(0,0);}

rectangle (doubleLen, double Wide) //конструктор

{assign(Len,Wide);}

double Length() // функция -элемент

{return length;}

double Width() // функция -элемент

{return width;}

double Area() // // функция -элемент

{return length*width;}

void assign(doubleLen, double Wide); // // функция -элемент

};

Мндаы, private, protected, publicблімдері класс рамындаы элементтерді пайдалануды ережелерін немесе приоритеттерін анытайды. Ол блімдерді райсысыны ызметі бар.

Классты функция-элементтерідегеніміз, бл – бірнеше операторлардан тратын, класстан тыс аныталатын функциялар. Бл функциялар сол класс аныталан файлда болуы да ммкін, бл функция мен оны прототипіні берілуі сияты болып келеді. детте, функция-элементтерз алдына блек *.h немесе *.сpp файлдарда жинаталады жне оны анытаанда уелі оны класыны атын жазып, сонан со «::» /екі рет ос нкте/ белгісін ойып, сонан со барып функцияны аты жазылады, мысалы:

classrectangle // класты аты

{

private:

... ... ...

public:

... ... ...

void assign(doubleLen, double Wide); // функция -элемент

}; // классты анытау бітті

voidrectangle :: assign(double Len, double Wide)

// функция-элементті зіні аныталуы

{ length=Len;

width=Wide;

}

Конструкторлар класса жататын объектілерді дрыс ру шін олданылады.Конструктордыаныталуы келесі трде болады:

classrectangle // класты аты

{

private:

... ... ...

public:

rectangle() // конструктор нсіздік бойынша

{assign(0,0);}

rectangle (doubleLen, double Wide) //конструктор

{assign(Len,Wide);}

... ... ...

};

Конструктор нсіздік бойынша боланда оны параметрлері берілмейді немесе оны мні наты крсетіліп беріледі, мысалы:

classrectangle // класты аты

{

private:

... ... ...

public:

rectangle() // конструктор нсіздік бойынша

{assign(0,0);}

rectangle (doubleLen, double Wide) //конструктор

{assign(Len,Wide);}

rectangle (doubleLen=10, double Wide=12) //конструктор нсіздік мні бойынша

... ... ...

};

Деструкторларкласса жататын объектілерді автоматты трде жою шін олданылады.Деструкторды аныталуы келесі трде болады, мысалы:

class rectangle // класты аты

{

private:

... ... ...

public:

rectangle(); // конструктор

... ... ...

~rectangle (); //деструктор

... ... ...

};


Жаттыу жмыстары


Тртбрышты берілген зындыы мен енін жне ауданын баспаа шыара алатындай ммкіндіктер арастырылан rectangleкласын анытаыз жне сол класа жататын rectобъектісіне сол класта арастырылан ммкіндіктерді олданатын программа жазыыз:

#include

#include

class rectangle // классты анытауды басталуы

{

private:

double length;

double width;

public:

rectangle()

{assign(0,0);}

rectangle (double Len, double Wide)

{assign(Len,Wide);}

double Length()

{return length;}

double Width()

{returnwidth;}

double Area()

{return length*width;}

void assign(double Len, double Wide);

}; // классты анытауды соы

void rectangle :: assign(double Len, double Wide)

{ length=Len;

width=Wide;

}

intmain()

{

rectangle rect; // rectangle класына жататын rect объектісін анытау

double uzin, eni;

cout<<"uzindigi men enin beriniz-";

cin>>uzin>>eni;

rect.assign(uzin,eni);

cout<<"\n"<<"Tortbyrishtin uzindigi - "<<rect.length();

cout<<"\n"<<"Tortbyrishtin eni - "<<rect.width();

cout<<"\n"<<"Tortbyrishtin audani - "<<rect.area();

getch();

//return 0;

}

Программаны нтижесі:

uzindigi men enin beriniz-10 12

Tortbyrishtin uzindigi - 10

Tortbyrishtin eni - 12

Tortbyrishtin audani - 120

дістер.Класты немесе объектіні дістерін осы класа енетін, процедуралар мен функциялар райды. Олар кдімгі процедуралар мен функциялар сияты жазылады. Класты дістеріні немесе процедура мен функцияларды таырыбы /мысалы, procedure Button1Click (Sender: TObject);/ программа модуліні interfase - секциясындаы класты сипаттау блімінде жазылады да, ал денесі дісті айсы класа тиесілі екендігін крсететін рама атпен /мысалы, TForm1.Button1Click(Sender: TObject);/ implementation –секцияда жазылады.

С++ -те кез-келген класс шін аныталан, класты жаа данасын ратын конструктор жне рылан дананы жоятын деструктор деп аталатын екі діс арастырылан. TОbject класы жне одан тарайтын тума кластарды басым блігі шін бл дістер сйкесінше Createжне Destroyдеп аталады.

асиеттер.Класты асиеттері немесе сол класа жататын объектіні асиеттері - бл рістерді пайдалануа арналан арнайы механизм. Класты сипаттауда асиеттерді жазу шін property, read, write ызметші сздері олданылады. Программа модулінде асиеттерді мнін крсету келесі трде жазылады:

класты_аты->асиеті:= мні;

Оиалар.Процедура боландытан бл программалы кодтарды «діс» деп арастырады да, «оиа»- абылдайтын мндері осы процедуралы типтер болатын «асиет» болады. Оиа болан кезде, шаырылатын процедураны немесе дісті оиа деуші / Event Handler- обработчик событий/ деп атайды, С++Builder- де рбір класты зіне тн оиаларына сйкес, программа модуліне, визуальды компонентті белгісіне екі рет шерту арылы, автоматты трде ойылатын стандарт оиа деушілеріболады,

Стандарт оиалардан баса, кез-келген оиаларды деушілерді шаблон процедураларын Object Inspector терезесіні Events жапсырмасындаы оианы атына сйкес жола екі рет шерту арылы ояды.


зіндік жмыс тапсымалары


Есепті уелі рылымды /struct/ пайдаланып, сонан со class – ты пайдаланып орындаыз:


  1. “те жасы“, “те жасы жне жасы“, “жасы жне анааттанарлы“, ”тек анааттанарлы“ баалармен оитын студенттерді тізімін ру программасын жазу.

  2. Фамилиялары бірдей студенттер оитын топты анытау программасын жазу.

  3. Фамилиясы “A”-дан басталатын ызметкерлер тізімін жне оларды орташа ебекаысын крсететін программа жазу.

  4. Ая киім дкеніні ассортименті жазба трінде берілген, ен ымбат йел адамынын ая киімін жне ер адамдар ая киімін, оларды нымен крсететін программаны жазу.

  5. “Телефонды анытаманы моделдейтін“ программаны ру, йел адамдарды телефон нмерін жне мекен жайын шыару.

  6. Автомашинаны жндеу шеберханасында машина жніндегі мліметтер жазба трінде берілген, ызыл тсті машиналарды маркасын жне нмерін аытайын программаны жазу.

  7. Мекемені ызметтері туралы мліметтер жазба трінде берілген. Ер адамдарды мамандыы мен жасып крсетіп, экрана тізім шыарыыз.

  8. Кітаптарды аты, авторы, шыан жылы, баасы жне тиражы аныталан каталог рыыз. Экрана алфавитімен тиражы бойынша срыпталан кітаптар тізімін шыарыыз.

  9. Теміржол кассісіндегі тмендегідей мліметтер белгілі. Поезды нмері,баратын жері,билетті бар жоы анытау. Бос билеттердегі саны 125-ке те поездарды нмерін, баратын жерін экрана шыарыыз.

  10. зініз оитын топты тізімін алфавитімен студенттерді туан жылы бойынша реттеу программасын жазыыз, нтижесін экрана шыарыныз.

 


2 - зертханалы жмыс.

С++ Buildеr 6 ортасыны рылымы. С++ Buildеr 6 ортасында осымша ру. Жоба, форма, модуль, ресурс файлдары


дістемелік нсаулар


С++Builder программмалау ортасы іске осыланнан кейінгі терезелерді орналасуы келесі трде болады /4.1-сурет/:


  • Негізгі терезе (С++Builder Project1);

  • Объектілер инспекторыны терезесі ( Object Inspector);

  • Форма редакторыны терезесі (Form1);

  • Код жазы;

  • Латын редакторды терезесі (Unit1).


Ескерту. Кееймелері : *.cpp, *.h, *.dfm, *.bpr, *.res. болатын файлдар маызды болып есептеледі, себебі олар барлы жобаа атысады.


Жаттыу жмыстары


Жобамен жмыс жасау:


  • Жоба ру шін негізгі терезеде Fileà New à Application командалары орындалады.

  • Жаа рылан жобаны толыымен сатау шін Filеà Save All командасы орындалады. Жоба рамына кіретін файлдарды жиынтыы бір бумада саталуы ажет.

 

4.1- сурет. С++Builder программмалау ортасыны негізгі терезесі


  • Жобаны орындау бірнеше тсілдермен жргізіледі.

  • Жобаны жабу шінFilеà Close Allкомандалары орындалады.

  • Брыннан бар жобаны ашу шін Filеà Openкомандасы орындалады да, пайда болан диалогты терезеде жоба файлыны (* .bpr) аты крсетіледі.

  • Жоба файлыны (*.bpr- файл) мтінін арау шін бас мзірден Projectà View Source (Проект->Просмотр) командасы орындалады;

  • Жоба файлыны терезесін жабу шін терезе контекстік мзірінен Close Page командасы орындалады;

  • Жоба файлын С++Builder ортасы автоматты трде зі рады;

  • Жоба файлы С++Builderортасыны жобалар тобына (группа проектов, ProjectGroup1) кіреді. Жоба тобы - бл зі амтитын бір немесе бірнеше жобалар туралы апараттар, сипаттаулар саталатын *.bpgкееймелі файл.

  • Project Manager программасы жоба тобымен жмыс жасауда олданылады.

  • Жоба параметрлерін беру шін ProjectàOptions командасы орындалады.

 

зіндік жмыс тапсымалары


  1. Жай жоба рыыз, оны з бумаызда сатаыз.

  2. з жобаызды рамына кіретін файлдарды, оларды атын, ызметін крсететін кесте жасаыз.

  3. С++Builder ортасыны негізгі терезесіндегі (С++Builder Project1) бас мзірді опцияларындаы жиі олданылатын командаларын жне оларды ызметін жазып алыыз.

 

зертханалы жмыс.