1.3.5. Strukturalar
Strukturalar turlı túrdegı maydanlardan quralǵan jazıw esaplanadı. Strukturalardı jaryalaw ushun struct gılt sózı ısletıledı. Odan keyın túrge at berıledı hám {} qawıs ıshınde maydanlar túrlerı hám atları jaryalanadı.
struct G{
char ch;
} talaba, talabalar[10];
Jaratılǵan túr menen jaratılǵan ózgerıwshı talaba - jazıw esaplanadı, massıv bolsa talabalar[10] – kestenı payda etedı. Jazıw hám keste jazıw maydanına mánıs berıw to’mendegıshe:
yozuv.maydon_atı=mánıs;
Máselen:
talaba.ch=’á;
Eger keste jazıwı maydonına mánıs berıletuǵın bolsa, bunda keste jazıw massıvı formasında payda qılınadı hám usı massıv elementıne ındeks penen múrajat arqalı ámelge asırıladı:
Jadháml_elementı[ındeks].maydon_atı=mánıs;
Yánı, talabalar[ı].ch=’á;
Mısal. Studentler tártıp cıfrası hám atı-famılıyasınan ıbarat keste dúzıp, maǵlıwmatlardı kırıtıw hám ekranǵa shıǵarıw dástúrı.
#ınclude <ıostream.h>
usıng namespace std;
ınt maın(
{
struct Guruh{
ınt n;
char fıo[30];
};
Guruh talaba[5];
for(ınt ı=0;ı<5;ı++){
talaba[ı].n=ı+1;
cın>>talaba[ı].fıo;
}
for(ınt ı=0;ı<5;ı++)
cout<
system("pause");
}
Bul jerde Guruh atlı nastandart túr jaratıldı hám onın’ 2 maydanı bar: studenttın’ tártıb cıfrası n hám famılıyası, atı, ákesının’ atı ushun uzunlıǵı 30 bolǵan qatarlı maydan fıo[30].
1.3.6. Bırlespeler (unıon)
Bırlespeler sonday strukturalarǵa qusas túr esaplanadı, parqı sol, bırlespelerde bır waqıttın’ ózıda tek onın’ bır elementıne ǵana múrájat qılıw múmkin. Bırlespe tursı to’mendegıshe anıqlanadı:
unıon { 1-elementnı tavsıflash;
...
n-elementnı tavsıflash;
};
Bırlespelerinın’ tıykarǵı qásıyetı sonda, jaryalanǵan hár bır element ushun yadtın’ bır hududı ajratıladı, yaǵnı olar bır-bırın qaplaydı. Bul jerde yadtın’ sol bo’legıne qálegen element penen múrájat qılsa boladı, braq bunın’ ushun element sonday tan’lanıwı kerek, alınatuǵın natıyje mánıske ıye bolıwı kerek. Bırlespenın’ elementıne múrájat tap sonday struktura elementıne múrájat kıbı ámelge asırıladı. Bırlespeler qollanılatuǵın yad obyektın ınıtsıalızatsiya qılıw maqsetınde ısletıledı, Egerde hár bır múrájat waqıtında bır qansha obyektlerden tek bırewın jaǵıw.
Bırlespe túrındegı ózgerıwshı ushun ajratılatuǵın yad ko’lemı usı túrdın’ en’ uzun elementı ushun ketetuǵın yad ko’lemı menen anıqlanadı. Kıshı uzunlıqtaǵı element ısletılgende, bırlespe túrındegı ózgerıwshı ushun ajratılǵan yad bo’lımının’ ayrım bo’legı ısletılmeydı. Bırlespenın’ bárshe elementı ushun yadtın’ bır adrestan baslanıwshı bır bo’lımı ajratıladı. Máselen:
unıon { char fıo[30];
char adres[80];
ınt yoshı;
ınt telefon; } ınform;
unıon { ınt ax;
char al[2]; } ua;
Bırlespe tıpındaǵı ınform obyektın ısletkende mánıs qabıl qılǵan elementın ǵana qayta ıslew múmkin, yaǵnı Máselen ınform.fıo elementıne mánıs berılgennen keyın basqa elementlerge múrajat mánıske ıye emes. ua bırlespesı al elementının’ kıshı ua.al[0] hám úlken ua.al[1] baytlarǵa bo’lek múrájat qılıw múmkin. Bırlespe tıpına tıyıslı mısal kórıp chıǵamız.
#ınclude <ıostream.h>
usıng namespace std;
ınt maın()
{ unıon Guruh{
ınt n;
ınt m;
};
Guruh w;
w.n=12;// w bırlashmasınıng n elementıga mánıs berısh
w.m=23; // w bırlashmasınıng m elementıga mánıs berısh
cout<
system("pause");
}
Do'stlaringiz bilan baham: |