Kompyuter injeneringni fakulteti 216-19-guruh talabasi Hikmatov Shahzodning



Download 161.52 Kb.
bet19/19
Sana28.09.2021
Hajmi161.52 Kb.
1   ...   11   12   13   14   15   16   17   18   19
t1.fio=”Abdullayev Abdulla”;

Yozuvlar ustida turli amallarni bajarish mumkin.



  • Maydonlariga qiymat o’zlashtirish

  • Solishtirish

  • Maydonlarining toifasidan kelib chiqqan xolda maydonlar ustida amal bajarish mumkin.

Quyida ba’zi bir misollarni keltiramiz, unda myCar nomli yozuivning maydonlariga qiymatlar o’zlashtiriladi:

struct Car

{

    int x_coor;

    int y_coor;

    string name;



};

Car myCar;

 

myCar.x_coor = 40;



myCar.y_coor = 40;

myCar.name = "Porche";

Yozuvlar bilan ishlashga doir to’liq dastur matnini keltiramiz:



#include

using namespace std;

 

struct PlayerInfo {

    int skill_level;

    string name;



};

using namespace std;

 

int main() {

  PlayerInfo players[5];

    for (int i = 0; i < 5; i++) {

        cout << "Please enter the name for player : " << i << '\n';

        cin >> players[ i ].name;

        cout << "Please enter the skill level for " << players[ i ].name << '\n';

        cin >> players[ i ].skill_level;

    }

    for (int i = 0; i < 5; ++i) {

        cout << players[ i ].name << " is at skill level " << players[i].skill_level << '\n';

    }



}

Ko’pincha funksiyalar bilan ishlaganda strukturalarni funksiyalarning argument sifatida uzatishga to’g’ri keladi yoki strukturalarni funksiyada qaytarishga extiyoj tug’iladi. Bunday hollarda quyidagicha yondashish mumkin.



struct EnemySpaceShip

{

    int x_coordinate;

    int y_coordinate;

    int weapon_power;



};

EnemySpaceShip getNewEnemy()










{

    EnemySpaceShip ship;

    ship.x_coordinate = 0;

    ship.y_coordinate = 0;

    ship.weapon_power = 20;

    return ship;



}

Bu yerda funksiya ship nomli local yozuv nusxasini yaratadi va maydonlarga qiymatlar beriladi. Endi yangi o’zgaruvchini xosil qilish uchun quyidagini keltirish mumkin:



EnemySpaceShip ship = getNewEnemy();

Bu o’zgaruvchini funksiyaga uzatish mumkin:



EnemySpaceShip upgradeWeapons (EnemySpaceShip ship)

{

    ship.weapon_power += 10;

    return ship;

}

O’zgaruvchi maydonlariga o’zgartirish kiritilgach, uni albatta funksiyada qaytarish kerak, aks holda u qilingan o’zgarish yo’qolishi mumkin.

Quyida shu misolni to’liq dastur matnini keltiramiz;

struct EnemySpaceShip {

    int x_coordinate;

    int y_coordinate;

    int weapon_power;



};

 

EnemySpaceShip getNewEnemy() {

    EnemySpaceShip ship;

    ship.x_coordinate = 0;

    ship.y_coordinate = 0;

    ship.weapon_power = 20;

    return ship;

}

 

EnemySpaceShip upgradeWeapons(EnemySpaceShip ship) {

    ship.weapon_power += 10;

    return ship;



}

 

int main() {

    EnemySpaceShip enemy = getNewEnemy();

    enemy = upgradeWeapons(enemy);

}

Bundan tashqari strukturalarga ko’rsatkichlar xam yaratish mumkin:



#include

 

using namespace std;

 

struct xampl {

    int x;



};

 

int main()



{

    xampl structure;

    xampl *ptr;

 

    structure.x = 12;



    ptr = &structure;

    cout<< ptr->x;

    cin.get();

}

Jadvallar

Jadval - bu yozuvlarning chekli to’plamidir. Jadval ham statik tuzilma bo’lib, uning elementlari bir xil toifaga ega. Jadval yozuvlar massividan tashkil topadigan tuzilma hisoblanadi.

Uni yuqoridagi misoldan foydalanib dasturda quyidagicha idodalaymiz:

EnemySpaceShip name[20];

Bu yerda name nomli 20 ta elementdan iborat massiv yaratildi va uning elementlari EnemySpaceShip struktura ko’rinishida bo’ladi. Xar bir elementning



int x_coordinate;

     int y_coordinate;

     int weapon_power;

kabi maydonlari mavjud. Jadvalni bironta qatoriga murojaat massiv elementiga mos indeksi orqali va undan keyin aynan kerakli maydoniga (.) nuqta bilan murojaat amalga oshiriladi.






int x_coordinate

int y_coordinate

int weapon_power

Name[0]

Name[o]. x_coordinate=35

Name[o]. y_coordinate=15

Name[o].weapon_power =12

Name[1]

Name[1]. x_coordinate=45

Name[1]. y_coordinate=42

Name[1].weapon_power =3












Misol. Funksiyalar bilan ishlashda jadvallarni kirish argument sifatida ishlatishga to’g’ri keladi. Quyida ana shunday holatga misol keltiramiz.

#include

using namespace std;

 

struct Size



{

int breast;

int waist;  

int hips;  

};

 

struct WonderfulWoman



{

char name[64];

int age;

int height;

int weight;

Size volume;  

bool engKnowledge;

};

 

void showData(const WonderfulWoman Obj[], int amount);

 

int main(){

const int amountOfGirl = 7;

WonderfulWoman Woman[amountOfGirl] = {};

  for (int i = 0; i < amountOfGirl; i++){



cin.getline(Woman[i].name, 32);

cin >> Woman[i].age;

cin >> Woman[i].height;

cin >> Woman[i].weight;

cout << "english(1 - yes, 0 - no): ";

cin >> Woman[i].engKnowledge;

cin >> Woman[i].volume.breast;

cin >> Woman[i].volume.waist;

cin >> Woman[i].volume.hips;

cin.get();

cout << endl;

}

  showData(Woman, amountOfGirl);

  return 0;

}

 

void showData(const WonderfulWoman Obj[], int amount){



for (int i = 0; i < amount; i++){

cout << i + 1 << '\t' << Obj[i].name << '\t' << Obj[i].age<< '\t' << Obj[i].height << '\t' << Obj[i].weight << '\t'<< Obj[i].volume.breast << '/' << Obj[i].volume.waist << '/' << Obj[i].volume.hips<< '\t' << Obj[i].engKnowledge << endl;

}

}

Bu yerda bitta strukturaning ichidagi maydon o’z navbatida boshqa strukturaga tegishli o’zgaruvchi olingan. Bunday yozuvlarga murakkab yozuvlar deyiladi, ya’ni yozuvning elementlarini o’zi ham yozuv hisoblanadi. Bu holatda murakkab ierarxik MT vujudga keladi.




Jadval ustida massiv ustida bajariladigan amallar o’rinli, lekin jadval elementiga emas, elementi maydoniga qiymat beriladi.



  • Element kiritish, o’chirish

  • Element maydoni qiymatlarini o’zgartirish

  • Jadval elementlarini solishtirish, bunda 2 ta yozuvning mos maydonlari qiymatlari solishtiriladi.


Nazorat savollar.

1. Qanday tuzilmalar statik tuzilma hisoblanadi?

2. Massiv nima?

3. Yozuv nima va uning xususiyatlari?

4. Murakkab yozuv nima?

5. Jadval nima va uning dasturda ifodalanishi qanday?


Asosiy internet manbalar

  1. SKYLINE UNIVERSITY COLLEGE.

http://www.teach-ict.com/as_as_computing/ocr/H447/F453/3_3_5/data_structures/miniweb/pg3.htm

  1. Osnovы programmirovaniye na S++ dlya nachinayuщix http://purecodecpp.com/archives/category/strukturi_c. 2015 yil.


Tavsiya etiladigan internet manbalar:

  1. http://cppstudio.com/post/5377/

  2. http://easy-code.ru/lesson/structures-in-cpp

  3. http://www.cprogramming.com/tutorial/lesson7.html

Download 161.52 Kb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   19




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2020
ma'muriyatiga murojaat qiling

    Bosh sahifa
davlat universiteti
ta’lim vazirligi
maxsus ta’lim
O’zbekiston respublikasi
zbekiston respublikasi
axborot texnologiyalari
o’rta maxsus
guruh talabasi
nomidagi toshkent
davlat pedagogika
texnologiyalari universiteti
xorazmiy nomidagi
toshkent axborot
pedagogika instituti
haqida tushuncha
rivojlantirish vazirligi
toshkent davlat
Toshkent davlat
vazirligi toshkent
tashkil etish
matematika fakulteti
ta’limi vazirligi
samarqand davlat
kommunikatsiyalarini rivojlantirish
bilan ishlash
pedagogika universiteti
vazirligi muhammad
fanining predmeti
Darsning maqsadi
o’rta ta’lim
navoiy nomidagi
haqida umumiy
Ishdan maqsad
moliya instituti
fizika matematika
nomidagi samarqand
sinflar uchun
fanlar fakulteti
Nizomiy nomidagi
maxsus ta'lim
Ўзбекистон республикаси
ta'lim vazirligi
universiteti fizika
umumiy o’rta
Referat mavzu
respublikasi axborot
таълим вазирлиги
махсус таълим
Alisher navoiy
Toshkent axborot
Buxoro davlat