Apiwayı miyraslıq - Dástúriy injiniring tálim baǵdarı 1-kurs 3-gruppa studenti Boranbaeva Umidanıń

|
Dástúriy injiniring tálim baǵdarı 1-kurs 3-gruppa studenti Boranbaeva Umidanıń
|
bet | 10/10 | Sana | 20.05.2024 | Hajmi | 0,68 Mb. | | #245612 |
Bog'liq Kurs jumısı-Boranbaeva UmidaApiwayı miyraslıq
C++ tili klassqa bir yaki birneshe klasstıń ózgeriwshi-aǵzaları hám funkciya-aǵzaların miyraslıq penen alıwǵa imkan beredı. Bul jaǵdayda jańa klasstı tuwındı klass (awlad klass) delinedı. Elementlerin miyraslıq penen alatuǵın klassqa onıń miyrasına salıstırǵanda tayanısh klass (ata klass) delinedı.
Miyraslıq klasslardıń ulıwma qasiyetlerin tek bir tayanısh klassta abstrakciyalaw imkanın beredi. Miyras klasslar usı ulıwma qasiyetlerin miyraslıq penen alǵan jaǵdayda , ayırım funkciya-aǵzaların qayta anıqlaw yaki qosımsha ózgeriwshi-aǵzalar hám funkciya-aǵzaların kiritiw arqalı tayanısh klassqa málim bir ózgertiw kiritiwleri múmkin. Usı sebepli tuwındı klasslardı anıqlaw sezilerli dárejede kemeyedi, sebebi oǵan tek ǵana tayanısh klasstan parıqlı elementler qosıladı.
Tuwındı klasstı daǵaza qılıw sintaksisi tómendegishe boladı:
сlass :,
,
……………………………………
,
{
//tuwindi klass qurami
};
Bul jerde < Murajat qasiyeti> public, protected yaki private hám bolıwı shart emes. Eger < Murajat qasiyeti > bolmasa kelisiw boyınsha klasslar ushın private duzilis hám birlespesi ushın public esaplanadı. aldınnan anıqlangan tayanısh klasslardıń atları.
2. Klasslardıń miyraslıq variantları
Múrajáát qásiyeti Tayanish klass elementleriniń miyraslıq boyınsha alıw dárejesin anıqlaydı. Bul sxemada miyraslıq variantları keltirilgen.
Sxema menen tanısıw sonı kórsetedi, miyraslıqtıń múrajáát qásiyeti tayanısh klassta ornatılǵan múrajááttı qanday dárejede túskenligin kórsetedi (ashıq aǵzalarga salıstırǵanda)
Eger tayanısh klasstaǵı aǵzalarǵa tuwındı klasslarda múrajáát qılıw zárúr bolsa, olardı public dep daǵaza qılıw kerek boladı.
Mısalı:
class Tayanish
{
int x,y;
public:
Tayanish(int_x=5, int_y=10){x=_x; y=_y;}
int X_manis(){return x;}
int Y_manis(){return y;}
};
class tuwindi: private Tayanish
{
public:
int Tayanish::X_manis();};
int main()
{
int X,Y;
tuwindi ob;
x=ob.X_manis();
y=ob.Y_manis();
cout<<”X=”<return 0;}
Programmada tuwındı klası tayanısh klasstaǵı X_manisi() hám Y_manisi() funkciyalardı private dárejesindegi múrajáát penen miyraslıq boyınsha aladı hám ekranǵa
X=5, Y=10
ańlatpaların kórsetedı.
Sonı aytıp ótiw kerek, tuwındı klass tayanısh klasınıń tek public yaki protected aǵzalarına múrajáát qılıw mumkin. Tayanısh klasstiń jabıq aǵzalarına hár qanday miyraslıqta hám jabıqlıǵınsha qaladı.
Tayanısh klasstiń tómendegi elementleri miyraslıq penen ótpeydı.
-konstruktorlar;
-kopiyalaw konstruktorları;
-destruktorlar;
-programmist tárepinen anıqlanǵan mánis beriw operatorı;
-klasstiń dosları;
Tuwındı klass bir tayanısh klassqa iye bolsa, bunday miyraslıq apiwayı (jeke) miyraslıq delinedi.
Tómendegı mısalda apıwayı miyraslıq ámelge asırılǵan.
#include
class Toshka
{
int x,y;
public:
Toshka(int_x, int_y){x=_x; y=_y;}
Toshka(){x=0; y=0;}
int X_manis(){return x;}
int Y_manis(){return y;}
void manis_X(int_x){x=_x;}
void manis_Y(int_y){y=_y;}
};
class Dekart: public Toshka{
public:
Dekart (int_x, int_y): Toshka(2*_x, 2*_y){};
void manis_XX(){cout<void manis_YY(){cout<};
int main()
{
Dekart *dkt;
dkt=new Dekart(10,15); //obiektti uyimda jaratiw
dkt->manis_XX();
dkt->manis_YY();
delete dkt; //obiektti o’shiriw
return 0;
}
Virtual tayanısh klasslar
Kóplikli miyraslıqta klasslardıń salıstırmalı quramalı shejiresinde tuwındı klass quralı tárizde bir klasstan eki klassqa yaki onnan artıq kopiyasın miyraslıq arqalı alıwı mumkin. Tómende keltirilgen mısal bul jaǵdaydı ashıp beredı.
#include
class Tayanish
{
int x,y;
public:
int X_manis(){return x;}
void manis_X(int _x) {x=_x;}
double y;
};
class Tuwindi1 public Tayanish
{
//…
};
class Tuwindi12 public Tuwindi1, public Tuwindi2;
{//…};
main()
{
Tuwindi12 ob;
ob.y=5.0;
ob.manis_X(10);
int z=ob.X_manis();
return 0;
}
Bul mısalda Tuwındı12 klassı ózınıń tayanısh klasslar_Tuwındı1 hám Tuwındı2 klasslar arqalı quralı tárizde Tayanısh klassdı miyraslıq boyınsha aladı. Bul jaǵdaydıń grafik kórinisi tómendegi súwrette keltirilgen.
Miyraslıqtıń bunday kórinisinde Tuwındı12 klassta Tayanısh klasstıń eki kopiyası payda boladı hám Tayanısh klasstıń y hám mánis_X aǵzalarına
ob.y=5.0;
ob.mánis_X(10);
int z=ob.X_manis();
kórinisindegi múrajatlarǵa kompilyaciya qátesi júzege keledi. Sebebi kompilayator bul áwlad klasslardıń funkciya-aǵzalarınıń qaysı kopiyasına múrajáát bolıp atırǵanlıǵın anıqlay almaydı. Bul orında “kóriniw oblastına ruxsat beriw” ámeli járdeminde qaysı tayanısh klass arqalı áwlad klassqa múrajáát bolıp atırǵanlıǵın kórsetiw mumkin.
ob.Tuwındı1::y=5.0;
ob.Tuwındı1::mánis_X(10);
int z=ob. Tuwındı1::mánis_X();
Kóplikli miyraslıq
Eger tuwındı klass bir neshe tayanısh klasslarǵa iye bolsa,bunday miyraslıq kóplikli miyraslıq delinedı. Kóplikli miyraslıq bir klassta bir neshe klass qasiyetlerin hám ámellerın jámlew imkanın beredi.
Tómendegi mısal kóplikli miyraslıqtı payda etedi:
#include
#include
#include
class Toshka{
int x,y;
public:
Toshka(int_x, int_y){x=_x; y=_y;}
Toshka(){x=0; y=0;}
int X_manis(){return x;}
int Y_manis(){return y;}
void manis_X(int_x){x=_x;}
void manis_Y(int_y){y=_y;}
};
class Xabar _qabil_qiliw
{
char Xabar[80];
public:
Xabar_qabil_qiliw(char* xbr){Xabardi_saqlaw(xbr);}
void Xabardi_saqlaw(char* xabar) {strcpy(Xabar, xabar);}
void Xabar_beriw (){cout<};
class Xabardi_dag’aza_qiliw: public Toshka,
public Xabardi_ dag’aza_qiliw
{
public:
Xabardi_dag’aza_qiliw(int_x, int_y, char *xbr): Toshka(_x,_y),Xabar_qabil_qiliw(xbr){}
void dag’aza_qiliw();
};
void Xabardi_dag’aza_qiliw()::dag’aza_qiliw();
{
gotoxy(X_manis(), Y_manis()); //Kursor xabar shig’ariw toshkasina
Xabar_beriw();
}
Xabardi_ dag’aza_qiliw() *xbr_adress;
xbr_adress=new Xabardi_dag’aza_qiliw(10,5, “ko’plikli”);
xbr_adress->dag’aza_qiliw();
xbr_adress->manis_X(10);
xbr_adress->manis_Y(6);
xbr_adress->Xabardi_saqlaw(“miyrasliq!”);
xbr_adress->dag’aza_qiliw();
delete xbr_adress;
return 0;
}
Programmadan mısallar
Juwmaqlaw
Mámleketimizde social, ekonomikalıq hám siyasiy tarawlardaǵı ózgerisler bilimlendiriw tarawın jańa usıllarda úyreniwge alıp keldi. Tálim alıw procesin jetilistiriwde innovciyalıq tálim texnologiyalarınan nátiyjeli paydalanıw-búgingi kúnniń talabına aylanbaqta. Tálimde innovciyalıq processlerdi ámelge asırıw tálim sapasın rawajlandırıwdıń zárúrli shártlerinen biri esaplanadı. Áne sonday innovciyalıq pedagogikalıq texnologiyalardan biri «proekt metodi» bolıp tabıladı.
Studentlerge tek ǵana teoriyalıq bilimler berilip qoymastan, onı ózbetinshe oqıwǵa da baǵdarlaydı. Studentlerge bilimler tayın halda berilmeydi, bilimlerdi tiykarǵı dereklerden, internetten ózbetinshe úyreniwi, toplaw, qayta islew hám kúndelik xızmetlerinde paydalana alıwǵa uyretiledi. Studentlerdi óz pikirin bildire alıwǵa, onı qorǵawǵa, tastıyıqlawǵa úyretiw kerek.
Hár bir oqıtıwshı ózi ótip atırǵan temaǵa studentlerdi tolıq qızıqtira alıwı kerek. 1. Sabaqlarda oqıtıwdıń zamanagóy forma hám metodlarınan paydalanıwda studentler tárepinen úyrenilgen bilimler olarǵa qanday tásir kórsetiwin anıqlaw, zárúr bolsa ózgertiwler kirgiziw, tolıqtırıw hám bayıtıwǵa erisiw kerek.
2. Sabaqlarda oqıtıwdıń zamanagóy forma hám metodlarınan paydalanıwdı úlken pedagogikalıq sheberlik penen ámelge asırıw maqsetinde oqıtıwshılar puqta tayarlanıwların usınıs etemen.
3. Oqıwdan tısqarı sabaqlarda pándi úyreniwdiń mazmunın anıqlawshı, olardıń tártibiniń jazba hám elektron versiyaların tayarlaw kerek dep oylayman.
Pitkeriw qániygelik jumısında “C++programmalastırıw tili temasın proekt metodı tiykarında oqıtıw metodikası” máselesi kórsetilgen. Tema házirgi kún talabınan kelip shıqqan halda aktual bolıp tabıladı.
Pitkeriw qánigelik jumısın orınlawda men tómendegi tiykarǵı jumıslardı orınladım:
C++ programmalastırıw ortalıǵı úyrenildi;
C++ programmalastırıw tiliniń programmalıq quralları hám imkaniyatları úyrenildi.
C++ programmalastırıw tiliniń tákrarlaw operatorları járdeminde mısallar sheshiw texnologiyası úyrenildi.
C++ programmalastırıw tilinde matematikalıq mısallardı sheshiw ushın ápiwayı mısallar keltirildi.
Paydalanılǵan ádebiyatlar dizimi
O.M.Shukurov, F.Q.Qorayev, E.A.Eshboyev, B.H.Shovaliyev – “Dastúrlashdan masalalar to’plami”-T-2008 y., 160 s.
O.M.Shukurov, E.A.Eshboyev, B.H.Shovaliyev – “Delphi va C++ algoritmik tillarida dastúrlash” – Qarshi-2012 y., 228 s.
Bjarne Stroustrup. Programming: Principles and Practice Using C++ (2nd Edition). Person Education, Inc. 2014. second printing, January 2015.
Harry Hariom Choudhary, Bjarne M Stroustrup. C++ Programming Professional.: Sixth Best Selling Edition for Beginner's & Expert's 2014.
Harry Hariom Choudhary, Bjarne M Stroustrup. C++ Programming Professional.: Sixth Best Selling Edition for Beginner's & Expert's 2014.
Internet resurslar
https://metanit.com/cpp/tutorial/2.2.php
https://asadbek.hashnode.dev/c-da-ozgaruvchilar-konstantalar-va-literallar-2-dars
https://arxiv.uz/uz/documents/referatlar/informatika-va-at/identifikatorlar-literallar-o-zgaruvchilar-va-berilganlar-túrlari
https://arxiv.uz/uz/documents/referatlar/informatika-va-at/dasturlashning-yangi-tehnologiyalari-sifatida-obektga-y-naltirilgan-dasturlash-tehnologiyalaridan-foydalanish
https://uzbekdevs.uz/darsliklar/csharp/csharp-da-o-zgarmaslar
|
| |