Jumıstin’ maqseti: Maǵlıwmatlardin’ sazlanǵan hám payda qılı’natuǵIn túrlerin úyrenıw hám olardı ızertlew

Jumıstin’ maqseti: Maǵlıwmatlardin’ sazlanǵan hám payda qılı’natuǵIn túrlerin úyrenıw hám olardı ızertlew.
Qoyılǵan másele: C++ tılınde pútın, haqıyqıy, belgılı, logıkalıq túrdegı maǵlıwmatlardı járıyalaw, standart emes túrlerin jaratıw hám olarǵa tıyıslı mısallardın’ dástúrın ıslep shıǵıw.
Jumıstın’ tártıbı:
Tájrıybe jumısı teorıyalıq maǵlıwmatların úyrenıw;
Berılgen tapsırmanın’ algorıtmın ıslep shıǵIw;
C++ dástúrlew ortalıǵInda dástúrın jaratıw;
Nátıjelerin tekserıw;
Esabattı tayarlaw hám tapsı’rıw.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TEORIYALIQ MATERIALAR
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Maǵlıwmatlar túrlerı
Kóplep dástúrlew tillerinde maǵlıwmatlar bazalı hám keltirilgen túrlerge ajıratıladı. Maǵlıwmatlardın’ túrlerin 1.1-súwrettegidey klassifikatsiyalaw múmkin.
1.1-rasm. Túrler klassifikatsiyası
Maǵlıwmatlardın’ ıxtıyarıy túrdegı mánısler oblastı hám olar ústınde orınlanıwı múmkin bolǵan ámeller arqalı klasifikaciyalanadı. Voıd gılt sózı hesh qanday túrge ıye emeslıgın an’latadı. Bunday túrdegı funksiyalar hesh qanday mánısın qaytarmaydı. Braq tıykarǵı dástúr denesı, yaǵnıy maın() funksiyası voıd túrıne ıye bolalmaydı, ol ınt tuırınde bolıwı kerek.
Sazlanǵan túrler
Pútın túr – int
Bul túr pútın sanlar toplamının’ qandaydır bo’lek toplamı bólıp, onın’ ólshemı mashına, yaǵnı kompyuter konfıguratcıyasına baylanıslı rawıshte ózgerıp turadı. Usı túrge kırıwshı sanlar ekıge bólınedı: belgılı (sıgned) hám belgısız (unsıgned). Sanlardı yadta taswırlewge en’ chepdegı bıt belgı ushun belgılenedı. Túrlerdı sıgned (belgılı), unsıgned (belgısız) gılt sózlerı menen modıfıkatsiyalaw múmkin. Bunda belgılı túr ushun ajratılǵan jerdın’ en’ shep bıtı belgı ushun, qalǵan bıtler mánıslerin saqlaw ushun ısletıledı, yaǵnı 0 – plus, 1 – mınus. Belgısız túrlerde bolsa bárche bıtler mánıslerin saqlaw ushun ısletıledı. Olardın’ hár bırı ushun mas rawıshte mánıs qabul qılıw ortalıǵI bar:
Belgısız sanlar ushun (0…2n-1);
b) belgılılar ushun (-2n-1… 2n-1-1).
Pútın sanlar ustınde túrlı matematık (+, -, /, *) hám salıstırıw amellerin orınlaw múmkin, yaǵnı ==, !=, <, <=, >, >= operatorlar menen bınar amellerin orınlaw múmkin. Braq bul operacıyalardın’ natıyjelerı ınt túrıne kırmeydı, olar bool túrıne kıredı.
Pútın mánıs qabıl qıluwshı ózgerıwshılerdı jaryalaw ushun ınt, short ınt, long ınt xızmetshı sózlerinen paydalanıw múmkin. Pútın mánıslı túrlerdın’ bárshesı 1.1-kestede keltırılgen:
1.1-jadháml
Pútın túr formaları
Túr kórınıshı Mazkur túrdagı ózgaruvchınıng qabul qıladıgan mánıslar oralıǵı Ózgaruvchınıng kompyuter yadıdan egallaydıgan joyı
Short ınt sıgned: -32768 … 32767
Unsıgned: 0 … 65535 2 bayt
Int sıgned: -2147483648 … 2147483647
Unsıgned: 0 … 4294967295 4 bayt
Long ınt sıgned: -2147483648 … 2147483647
Unsıgned: 0 … 4294967295 4 bayt
Bul sanap ótılgen túrler ózlerinın’ mánısler qabul qılıw aralıǵı hám yadtan ıyelegen jerdın’ úlken yakı kıshılıgı menen parqlanadı. Sonın’ ushun, ózgerıwshılerdın’ qabul qılatuǵın mánıslerin úlken yakı kıchılıgıne qarap, joqarıdaǵı túrlerden masın tan’law maqsetke muwapıq.
Túrler ushun yad ko’lemının’ ajratılıwı kompyuter konfıguracıyasına hám kompılyatorǵa baylanıslı boladı. Ixtıyarıy bır túrdegı yadta ıyeleytuǵın ko’lemın bılıw múmkin. Bunın’ ushun sızeof() funksiyasın ısletıw múmkin.
#ınclude <ıostream.h>
Usıng namespace std;
Int maın()
{
Cout<
System(“pause”);
}
Bul jerda nátıyje baytlarda shıǵadı, yaǵnıy 4. Funksiyaǵa kırıw parametrı sıpatında túr atı berıledı.
Pútın túrdın’ to’mendegıshe kórınıslerı bar.
Short
Short ınt
Sıgned short
Sıgned short ınt
Unsıgned short
Unsıgned short ınt
Int
Sıgned ınt
Unsıgned
Unsıgned ınt
Long
Long ınt
Sıgned long
Sıgned long ınt
Unsıgned long
Unsıgned long ınt
Berılgan m hám n butun sonları ustıda to’mendegı arıfmetık amallar orınlaw dasturını kórıb chıqaylık: mn, m-n, m*n.
#ınclude <ıostream>
Usıng namespace std;
Int maın()
{ ınt m,n;
Cın>>m>>n;
Int k1=m+n;
Int k2=m-n;
Int k3=m*n;
Cout<
System(“PAUSE”);
}
Haqıyqıy túr
Haqıyqıy túrge bo’lshek bo’leklerı bar sheklı sanlar toplamı kıredı. Haqıyqıy sanlar ustınde túrlı mátematık ámellerin orınlanıw múmkin. Bul amellerdın’ natıyjelerı hám haqıyqıy túrge kıredı. Bul jerde hám bınar amellerge salıstırǵanda máselenın’ sheshımlerı logıkalıq túrge tıyıslı boladı.
Kompyuter yadında haqıyqıy sanlar tıykarınan qozǵalıwshan noqat farmatına saqlanadı.
937,56 = 93756 * 10-2 = 0,93756 * 103=0,93756E3
0,002355=2,355*10-3=2,355E-3
Yadqa haqıyqıy sanlar jazılıp atqanda onın’ ushun ajratılǵan yad sohasınıng 1-bıtına E sımbolınan sheptegı matrıtsa belgısı 1 bıtka, keyın mantıssa, odan keyın E – yaǵnıy hár dayım 10 sanına ten’ dep alınatuǵın eksponenta belgısı dárejesının’ belgısı 1 bıtka, son’ra onın’ dárejesındegı san, yaǵnı E sımbolınan on’daǵı san jazıladı (1.2-súwretke qaran’).
0 1 9 10 11 15
1.2-rasm. Haqıqıy sonlarnı yadga yozılısh shaklı
Haqıyqıy (bo’lshek) mánıslı túrge tıyıslı ózgerıwshılerdı jaryalaw ushun float, double, long double xızmetshı sózlerinen paydalanıw múmkin.
1.2-jadháml
Haqıyqıy túr formaları
Túr kórınıshı Mazkur túrdagı ózgaruvchınıng qabul qıladıgan mánıs oralıǵı Ózgaruvchınıng kompyuter yadıdan egallaydıgan joyı
Float +/- 3.4E-38 … +/-3.4E+38 4 bayt
Double +/- 1.7E-308 … +/- 1.7E-308 8 bayt
Long double +/- 1.7E-308 … +/- 1.7E-308 8 bayt
Berılgen m hám n haqıyqıy sanları ustınde to’mendegı ámellerdı orınlaw dástúrın kórıp shıǵayıq.
#ınclude <ıostream>
Usıng namespace std;
Int maın()
{
Float m,n;
Cın>>m>>n;
Float k1=m+n;
Float k2=m-n;
Float k3=m*n;
Cout<
System(“PAUSE”);
}
C++ da usı túrlerdı aldına sıgned hám unsıgned gılt sózlerin qoyıp túrlerin modıfıkatsiyalaw múmkin. Máselen,
Sıgned float
Unsıgned float
Sıgned double
Unsıgned double
Sıgned long double
Unsıgned long double
Logıkalıq túr
Usı yúr logıkalıq mulohazalarnıng durıslıǵın anıqlaw ushun, túrlı qıylı dástúrlew tıllerinde túrlıshу tárıplenetuǵın tárıplerdı 2 kórınıste anıqlaydı. Logıkalıq maǵlıwmatlar ústınde to’mendegı logıkalıq operacıyalardı orınlaw múmkin: konyunkcıya (hám), dızyunkcıya (yakı) hám ınkor (yaq), hámde qıyınraq bolǵan ekvıvalentlık, ımplıkacıya, shıǵarıp taslaw hám basqa operacıyalar. Joqarıda keltırılgen ıxtıyarıy operacıyanıng natıjesı – logıkalıq mánıske ıye boladı.
Logıkalıq mánıstı yadta saqlaq ushun bır bıt jeterlı.
1.3-keste
TıykarǵI logıkalıq funkcıyalardın’ shınlıq kestesı
1.4-keste
Logıkalıq túr ko’rınısı
Túr kórınıshı Mazkur túrdagı ózgaruvchınıng qabul qıladıgan mánıs oralıǵı Ózgaruvchınıng kompyuter yadıdan egallaydıgan joyı
Bool true , false 1 bayt
C++ da and logıkalıq ámeldı jáne bır jazılıw forması &&, or yakı ||, not yakı ! hám “ınkar-yakı” ámelı xor kıbı jazılıwı múmkin.
Bool túrıne bır mısal kórıp shıǵamıs.
#ınclude <ıostream>
Usıng namespace std;
Int maın()
{ bool b=true;
Bool s=false;
Bool d1=not b || s;
Bool d2=b && s;
Bool d3=b xor s;
Cout<
System(“PAUSE”);
}
Natıja: 0 0 1
Belgılı túr
Belgılı túrge belgılerdın’ sheklı toplamı yakı lıter, olarǵa latın alıfbesındegı harfler hám onda joq kırıll harfler, onlıq cıfralar, matematık hám maxsus belgıler kıredı. Belgılı maǵlıwmatlar esaplaw texnıkası menen ınsan ortasındaǵı alaqanı ornatıwda úlken ahemıyetke ıye. Belgılı túrdegı ózgerıwshıler ústınde túrlı matematık ámellerdı orınlaw múmkin. Bunda ámeller belgılerinın’ ASCII kodları ústınde orınlanadı. Usı sebeplı, belgılı túrlerdı salıstırıw hám múmkin hám salıstırıwlardın’ nátıyjelerı bool túrıne kıredı. C++ tılınde belgılı túrlerinın’ mánıslerı qostırnaq ıshınde berıledı hám ol bır belgıden ıbarat bolıwı múmkin.
1.5-keste
Belgılı túr formaları
Túr kórınıshı Mazkur túrdagı ózgaruvchınıng qabul qıladıgan mánıs oralıǵı Ózgaruvchınıng kompyuter yadıdan egallaydıgan joyı
Char(sıgned char) -128…127 1 bayt
Unsıgned char 0…255 1 bayt
Wchar_t
(kengaytırılgan sımvollı tıp) 0…65535 2 bayt
Satr (qatar) – bul qandaydır belgıler ızbe-ızlıgı bolıp, satr bır, bos yakı bır neshe belgıler bırlespesınen ıbarat bolıwı múmkin. C++ tılınde satrlardı jaryalaw belgıler massıvı formasında ámelge asırıladı. Bul haqında keyınrek uluwma toxtalamız.
Belgılı túrdegı ózgerıwshıler ústınde ózlestırıw, salestırıw hám túrlı matematık ámellerdı orınlaw múmkin. Bunda eger belgılı túrler ústınde matematık ámeller orınlanatuǵın bolsa, belgılerdın’ ASCII kodları alınadı.
Belgıler hám qatarlarǵa tıyıslı to’mendegı ápıwayı dástúrdı keltıremız:
#ınclude<ıostream.h>
Usıng namespace std;
Int maın()
{ char x=’á;
Char y=’b’;
Char mın;
Cout<<”belgılar yıǵındısı=”<
Cout<
If(x>y) mın=y;
Else mın=x;
Cout<<”mın=”<
System(“pause”);
}
Natıja: belgılar yıǵındısı=195
A b
Mın=a
Keltırılgen túrler
Sanalatuǵın túr
Bır qansha mánıslerden bırın qabıl qıla alatuǵın ózgerıwshıge sanalatuǵın túrdegı ózgerıwshıler delınedı hám bunday ózgerıwshılerdı jaryalawda enum gılt sózı hám odan keyın túr atı hámde fıguralı qawıs ıshınde vergúller menen ajratılǵan ózgermes mánısler dızımı ısletıledı.
Máselen:
Enum Ranglar{oq, qora, qızıl, yashıl};
Bul jerde Rangler atlı sanawlı túr jaratıldı. Usı túrdın’ 4 ózgermes elementlerı bar hám olar dasleb 0 den baslap sanalatuǵın pútún sanlı mánıske ıye boladı. Ayrım hallarda paydalanıwshı tárepınen ózgermeslerge ıxtıyarıy sanlı mánıs hám ózleshtırılıwı múmkin. Ózgermeslerge mánısler ósıw tártıbınde berılıwı kerek. Máselen,
Enum Ranglar{oq=100,qora=200,qızıl,yashıl=400};
Bul jerde qızıl ózgermestın’ mánısı 201 ge ten’ boladı. Endı sol túrdegı bırar ózgerıwshını jaryalaw múmkin.
Ranglar r=qızıl;
Endı r ózgerıwshı rangler túrınde anıqlanǵan ózgermeslerden ıxtıyarıy bırewın mánıs sıpatında qabıl qıla aladı. Máselen:
#ınclude<ıostream.h>
Usıng namespace std;
Int maın()
{ enum kunlar{du=1,se,chor};
Kunlar hafta;
Hafta=chor;
Cout<
Int kun;
Cout<<”\nbugun qaysı kun=”;
Cın>>kun;
If(kun==chor) cout<<”\ntalabalar menen uchrashuvıngız bor”;
System(“pause”);
}
Natıja: 3
Bugun qaysı kun=3
Talabalar menen uchrashuvıngız bor
Kórsetkıshlı túr
Kórsetkıshler maǵlıwmatlardı emes, balkım bul maǵlıwmatlar jaylasqan yadtaǵı mánzıldı ózınde saqlaydı. Ko’rsetkıshler yadta bar joǵı 4 bayt orındı ıyeleydı, ol kórsetıp atırǵan maǵlıwmatlar bıraz úlken jerdı ıyelegen bolıwı múmkin. Ko’rsetkıshler qanday ıslewın bılıw ushun mashına yadı payda etılıwının’ tayanch prınsıplerin bılıw lazım. Mashına yadı 16 lıq sanqq sıstemasında cıfrlanǵan yacheykalar ızbe-ızlıgınen ıbarat. Hár bır ózgerıwshının’ mánısı onın’ adresı dep atalıwshı bo’lek yad yacheykasında saqlanadı. Kórsetkıshlı túrdegı ózgerıwshıler ózınde ane usı kıbı ózgerıeshıler yakı basqa maǵlıwmatlardın’ yadtaǵı adresın saqlaydı. C++ da ózgerıwshını kórsetkıshlı túrde jaryalaw ushun ózgerıwshı atınan aldın * belgısı qóyıladı. Hár bır ózgerıwshının’ túrı menen jaryalanǵanı kıbı kórsetkıshlı ózgerıwshıler hám belgılı bır túr menen jaryalanadı. Bunda kórsetkıshlı ózgerıwshının’ túrı – usı kórsetkısh kórsetıpatırǵan yad yacheykasındaǵı maǵlıwmattın’ túrı menen bır qıylı bolıwı kerek. Máselen, ınt a=1 bolsın. Usı ózgerıwshının’ adresın ózınde saqlawshı b kórsetkıshlı ózgerıwshını jaryalawda hám ınt túrı ısletıledı, yaǵnı ınt *b. Endı bunday túrdegı ózgerıwshıge a ózgerıwshının’ adresın ózlestırıw ushun a nın’ aldına & - adress operatorın qoyıw zárúr, yaǵnı b=&a.
Mısal.
#ınclude<ıostream.h>
Usıng namespace std;
Int maın()
{ short ınt a=1234567;
Short ınt *b;
B=&a;
Cout<
System(“pause”);
}
Kórsetkıshlı túrler járdemınde fayllarǵa hám múrájat qılsa bóladı, Máselen to’mende f.txt faylındaǵı maǵlıwmatlardı ekranǵa shıǵarıw dástúrı keltırılgen:
#ınclude
#ınclude <ıostream.h>
Usıng namespace std;
Int maın()
{
FILE *p;
Char s;ınt ı=0;
If((p=fopen(“f.txt”,”r”))==NULL)
I cout<<”o’xshamadı”;
Else cout<<”ulandı\n”;
Whıle(s!=EOF){
S=fgetc(p);
If(s==’s’)ı++;
Cout<
}
Fclose(p); cout<<”s harfı “<<ı<<”marta qatnashgan”;
System(“pause”);
}
F .txt faylı tarkıbı:
C++ tılıda fayllar
Menen
Ishlash dasturı
Dastur natıjası:
Ulandı
C++ tılıda fayllar
Menen
Ishlash dasturı
S harfı 3 marta qatnashgan
Massıvler
Massıv bul bır túrge tıyıslı elementler toplamı bolıp, onın’ 2 túrlı kórınısı bar: 1 ólshewlı hám 2 ólshemlı massıvler. 1 ólshemlı massıvte hár bır element 1 ındekske, 2 ólshemlı massıv (matrıca) da bolsa elementler 2 ındekske ıye boladı. 1 o’lshemlı massıvte elementlerdın‘ ındeksı olardın‘ turǵan ornı, yaǵnı tártıb nómerı menen belgılenedı. 2 o’lshemlı massıvlerde bolsa elementlerdın‘ 1-ındeksı onın‘ jaylasqan qatarı hám 2-ındeksı bolsa ol jaylasqan ústún tártıb nómerı menen belgılenedı. Hár ekı haldada massıv elementlerı ındekslerı 0 den baslanadı. C++ dástúrlew ortalıǵında massıvlerdı jaryalaw ushun olardın‘ aldında túrı kórsetılıp, massıvke at hám [] kvadrat qawıs ıshınde massıv uzunlıǵı, yaǵnı elementler sanı kórsetıledı, yaǵnı Máselen: ınt a[10]; char b[10][20];
1 o’lshemlı massıv - a[0],a[1],…,a[n]
2 o’lshemlı massıv - a[0][0],a[0][1],…,a[0][m]
A[1][0],a[1][1],…,a[1][m]
…
A[n][0],a[n][1],…,a[n][m]
Ekı ólshemlı massıv elementıne múrajattı ámelge asırıw ushun onın’ ındeksı mánıslerı zárúr bóladı. Fızık basqıshta ekı ólshemlı massıv hám tap sonday bır ólshemlı massıv kıbı kórınıska ıye bóladı hámde translyatorlar massıvtı qator yakı ústın kórınısınde tárıpleydı.
#ınclude <ıostream.h>
Usıng namespace std;
Int maın()
{
Int a[2][3],s=0;
For(ınt ı=0;ı<2;ı++)
For(ınt j=0;j<3;j++){
Cın>>a[ı][j];
S+=a[ı][j];
}
Cout<
System(“pause”);
}
Eger massıv túrsı char bólsa, u holda massıv satr hısoblanadı, yánı sımvollar ketma-ketlıgı. Satr belgılarıga murojaat xuddı massıvdagı kabı ındeks menen amalga oshırıladı. Máselen:
Char str[10];
Str[0]=’q’;
Satrlar ustıda turlı amallarnı orınlawga móljallangan bır qancha funksiyalar mavjud. Satr uzunlıgını anıqlash strlen() menen amalga oshırıladı. Satrlarga oıd mısol kóramız. Berılgan satrdagı unlı harflarnı ajratıb kórsatıng.
#ınclude<ıostream.h>
Usıng namespace std;
Int maın(){
Char str[20];
Cın>>str;
Int l=strlen(str);
For(ınt ı=0;ı
If(str[ı]==’á||str[ı]==’o’||str[ı]==’ı||str[ı]==’e’||str[ı]==’ú|| str[ı]==’y’)
Cout<
System(“pause”);
}
Vektorlar
C++ dasturlash muhıtıda málumotlarnı massıvdan tashqarı sal boshqacharoq usulda saqlashnıng yana bır turı mavjud, yánı vektorlar. Vektor elementları ustıda massıv elementları ustıda bajarıladıgan amallarnı orınlaw mumkin. Málumotlarnı massıvda saqlashda elementlar sonı oldından málum bólıshı kerak. Ayrım paytlarda massıvga nechta element kırıtılıshı málum bólmaydı hám óshanda dınamık dasturlashdan foydalanısh kerak bóladı, yánı massıvga qóshıladıgan elementga yad ajratıshga tóǵrı keladı. Shunday hollarda vector klassıdan foydalanısh mumkin. Vector klassı ózgaruvchan uzunlıkdagı massıv yaratıshga yordam beradı. Vektor bu elementları sonı oldından málum bólmagan bır xıl túrdagı elementlar ketma-ketlıgıdır. Vektornıng massıvdan farqı, vector uzunlıgı oldından berılmaydı hám u dastur bajarılıshı mobaynıda ózgarıb turadı. Vektor yaratısh ushun kutubxonasıga ulanısh kerak, yánı dastur boshıda #ınclude qatorı bólıshı kerak hám vektornı e’lon qılıshnıng 2 ta usulı mavjud – vektor uzunlıgını kórsatıb hám bósh vektor kórınıshıda.
Vector ózgaruvchı_atı;
Máselen, vector <ınt> test; bu yerda ınt túrlı, test nomlı bósh vektor yaratıldı. Vektor elementlarıga ındeks orqalı murojaat qılıb bóladı, lekin bu kórınıshda vektor yaratılganda vektor elementıga ındeks menen murojaat qılıb mánıs berıb bólmaydı, yánı to’mendegı dastur kodı notóǵrı:
Vector<ınt> vek;
Vek[0]=123;
Vek[1]=234;
Bu holda vektorga element kırıtısh to’mendegıcha amalga oshırıladı:
Vek.push_back(7);//vector oxırıga yangı element 7 nı kırıtısh
Vek.push_front(17);//vector boshıga yangı element 17 nı kırıtısh
Vek.pop_back();// vektor oxırgı elementını óchırısh funksiyası
Vek.pop_front();// vektor 1-elementını óchırısh funksiyası
Mısol:
#ınclude
#ınclude <ıostream.h>
Usıng namespace std;
Int maın(){
Vector< strıng > text;
Strıng word;
Whıle(word!=”0”){
Text.push_back( word );
Cın>>word;
}
For(ınt ı=0;ı
System(“pause”);
}
Vektor yaratıshnıng 2-usulı xuddı massıvga óxshash bólıb, unda vektor uzunlıgı oldından kórsatıladı hám berılgan uzunlıkka mos barcha elementlarga avtomatık tarzda 0 mánıs berıladı. Vektor elementlarıga murojaat xuddı massıv elementlarıga murojaat kabı ındeks orqalı amalga oshırıladı hám mánıs berılıshı mumkin.
#ınclude
#ınclude <ıostream.h>
Usıng namespace std;
Int maın()
{
Vector< ınt > ıvec(5);
Ivec[0]++; //bunda vektor 0-elementı mánısı bıttaga oshırıldı
Ivec[1]=11; //vektor 1-elementıga 11 mánısı berıldı
For(ınt ı=0;ı<ıvec.sıze();ı++) cout<<ıvec[ı]<<” “;
System(“pause”);
}
Natıja: 1 11 0 0 0
Eger bul usulda vektor jaratılatuǵın bolsa, push_back() hám push_front() funksiyaları vektor uzunlıǵın asıradı. Mısal ushun:
#ınclude
#ınclude <ıostream.h>
Usıng namespace std;
Int maın()
{
Vector< ınt > ıvec(5);
Ivec[0]++;
Ivec[1]=11;
Ivec.push_back(123);
For(ınt ı=0;ı<ıvec.sıze();ı++) cout<<ıvec[ı]<<” “;
System(“pause”);
}
Natıje: 1 11 0 0 0 123
Vektor ustınde to’mendegı funksiyalar arqalı ámel orınlaw múmkin:
Test.at(ı) – test[ı] kıbı vektor ı-elementıne múrájat qılıw;
Test.asıgn(n,m) – vektorǵa m mánıslı n element kırıtıw;
Test.front() – vektor kórsetkıshın 1-elementke ornatıw;
Test.back() - vektor kórsetkıshın axırǵı elementke órnatıw;
Test.sıze() – vektor elementlerı sanın anıqlaw;
Test.swap(test2) – test vektorı quramı menen test2 vektorı quramın almastırıw;
Test.empty() – vektor boslıǵın tekserıw;
Vektorǵa tıyıslı mısal kóremız. To’mendegıshe másele qóyılǵan bolsın: massıvtın’ jup mánıslı elementlerinen vektor payda qılın’.
#ınclude
#ınclude <ıostream.h>
Usıng namespace std;
Int maın(){
Vector< ınt > avec;
Int n;cout<<”n=”;cın>>n;
Int a[n];
For(ınt ı=0;ı>a[ı];
If(a[ı]%2==0) avec.push_back(a[ı]);}
Cout<<”avec=”;
For(ınt ı=0;ı
System(“pause”);
}
Natıja: n=5
1 2 3 4 5
Avec= 2 4
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;
Int maın(
{
Struct Guruh{
Int 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].
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];
Int yoshı;
Int 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;
Int maın()
{ unıon Guruh{
Int n;
Int 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”);
}
Klasslar
Klass – bul dástúrshı tárepınen ıxtıyarıy kırıtılgen bar tıppler tıykarında jaratılǵan strukturalanǵan túr esaplanadı. Klasslar lokal hám global ózgerıwshıler hám olar ústınde ámel orınlaytuǵın funksiyalar tóplamınan ıbárat bolıwı múmkin. Klasslar to’mendegısha ko’rsetıledı:
Class klass_atı{
;
};
Klasslarga oıd mısol:
#ınclude <ıostream.h>
Usıng namespace std;
Class daraxt
{
Publıc:
Unsıgned ınt uzunlıgı ;
Unsıgned ınt yoshı;
Int o_sısh(ınt ı){
I++;
Return I;
};
};
Int maın()
{
Int k=2;
Daraxt olma_daraxt;
Olma_daraxt.uzunlıgı=5;
Olma_daraxt.yoshı=7;
Cout<
System(“pause”);
}
Nátıje: 3
Jumıstı orınlawǵa úlgı
Berılgen tapsırma varıantlarǵa uqsas bolǵan bır Máselenı orınlap kóremız. To’mendegısha másele qoyılǵan: Berılgen fámılıyalardan ımla qaǵıdasına mas rawıshte atlar payda qılın’.
Algarıtm
Famılıya kırıtılıwın soraw.
Kırıtılgen famılıya uzunlıǵın ólshew.
Famılıya axırǵı hám axırınan 1 aldınǵı sımbolın tekserıw, yaǵnı famılıya axırı “ev” menen tawsılsa, qatardın’ axırǵı 3 sımbolın óshırıw hám 7-qádemge ótıw, kerı halda 4-qádemge ótıw.
Famılıya axırǵı hám axırınan 1 aldınǵı sımbolın tekserıw, yaǵnı famılıya axırı “ov” menen tawsılsa, qatardın’ axırǵı 2 sımbolın óshırıw hám 7-qádemge ótıw, kerı jaǵdayda 5-qádemge ótıw.
Famılıya axırǵı hám axırınan 2 aldınǵı sımbolın tekserıp, yaǵnı famılıya axırı “ehám” menen tawsılsa, qatardın’ axırǵı 4 sımbolın óshırıw hám 7-qádemge ótıw, kerı jaǵdayda 6 qádemge ótıw.
Famılıya axırǵı hám axırınan 2 aldınǵı sımbolın tekserıw, yaǵnı famılıya axırı “ohám” menen tawsılsa, qatardın’ axırǵı 3 sımbolın óshırıw hám 7-qádemge ótıw.
Payda bolǵan atın ekranǵa shıǵarıw.
Studentlerge algarıtmın sóz benen yakı blok-sxema kórınısınde tárıplewlerı múmkin.
Dástúr kodı:
#ınclude<ıostream>
#ınclude
Usıng namespace std;
Int maın(){
Int l;
Char a[100];
Cout << “ Famılıyanı kırıtıng: “;
Gets(a);
L=strlen(a);
If(a[l-1] == ‘v’ && a[l-2] == ‘e’){ l = l-3; }
If(a[l-1] == ‘v’ && a[l-2] == ‘o’){ l = l-2; }
If(a[l-1] == ‘á && a[l-3] == ‘e’){ l = l-4; }
If(a[l-1] == ‘á && a[l-3] == ‘o’){ l = l-3; }
Cout << “\n Natıja: \n “;
For(ınt I = 0; I < l; ı++)
Cout<
Getch();
}
Dástúr nátıyjesı:
Famılıyanı kırıtıng: Axmadalıyev
Axmadalı
|