Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 7 лет назад пользователемDetsillion Ford
1 NAMANGAN MUHANDISLIK- TEXNOLOGIYA INSTITUTI Oliy matematika kafedrasi KIMYO INGINIRING UCHUN INFORMATSION TEXNOLOGIYALARI FANI Maruza: Fotima Mullajonova Tuychiboevna (NamMTI Oliy matematika kafedrasi katta oqituvchisi)
2 Mavzu. MASSIVLAR VA VEKTОRLAR. Reja 1. Massivlar, Оddiy massiv algоritmlari. 2. Massivlar va funktsiyalar, Muammо yechimi: algоritmlarni mоslashtirish 3. Muammо yechimi: Algоritmlarni fizik jismlarni bоshqarish оrqali aniqlash, 4. Ikki olchamli massivlar. 5. Vektоrlar.
3 Massiv- bu bir xil toifali, chekli qiymatlarning tartiblangan to`plamidir.
4 Massiv turlari Massiv Statik Dinamik
5 Statik massivning uzunligi oldindan malum boladi va uning elementlari xotirada aniq bir adresdan boshlab ketma-ket joylashadi. Statik massiv Dinamik massivning uzunligi dastur bajarilishi jarayonida aniqlanadi va uning elementlari dinamik xotirada ayni paytda bosh bolgan adreslarga joylashadi. Dinamik massiv
6 Bir o`lchamli massiv - agar uning elementiga bir indeks orqali murojaat qilish mumkin bo`lsa. Bir o`lchamli massivni e`lon qilish quyidagicha bo`ladi: [ elementlar_soni ] = { boshlang'ich qiymatlar }; Quyida massivlarni e`lon qilishga bir necha misollar keltirilgan: 1) float a[5]; 2) int m[6]; 3) bool b[10];
7 Massiv elementiga murojaat qilish uning indeksi orqali bo`ladi. a[1] = 10; Bunda a massivining 1– elementi 10 qiymat ozlashtirsin; cin >> a[2]; a massivining 2 – elementi kirtilsin; cout << a[3]; a massivining 3 – elementi ekranga chiqarilsin;
8 Massivni e'lon qilishda uning elementlariga boshlang'ich qiymat berish mumkin va buning bir nechta usuli mavjud. 1) O'lchami ko'rsatilgan massivni to'liq shakli. int k[5] = { 2, 3, 7, 8, 6}; Bu yerda 5 ta elementdan iborat bo'lgan k massivi e'lon qilingan va massivning barcha elemantlariga boshlang'ich qiymat berilgan. 2) O'lchami ko'rsatilgan massivni to'liqmas shakli int k[5] = { 2, 3, 7 }; Bu yerda 5 ta elementdan iborat bo'lgan k massivi e'lon qilingan va massivning dastlabki 3 ta elemantlariga boshlang'ich qiymat berilgan.
9 Misol: n ta elementdan tashkil topgan massiv berilgan. Shu massiv elementlari yig'indisini chiqaruvchi dastur tuzilsin. (n<= 10) # include using namespace std; int main() { int a[10] = { 0 }; // a massivini e'lon qilish int n; // massiv elamentlari soni int s = 0; // massiv elementlari yig'indisini hisoblash uchun cout > n; for (int i = 0; i < n; i++) { cout > a[i]; s += a[i]; } cout << "Massiv elementlari yig`indisi = " << s << endl; return 0; }
10 Misol: n ta elementdan tashkil topgan massiv berilgan. Shu massiv musbat elementlari kopaytmasini chiqaruvchi dastur tuzilsin. (n<= 10)
11 #include using namespace std; int main() { int a[10] = { 0 }; // a massivini e'lon qilish int n; // massiv musbat elamentlari soni int s=1; // massiv musbat elementlari ko'paytmasi cout > n; for (int i = 0; i < n; i++) { cout > a[i]; if (a[i]>0 ) s=s*a[i]; } cout << "Massiv musbat elementlari ko'paytmasi = " << s << endl; return 0; }
12 Ikki o`lchamli massivlarni e`lon qilish. toifa massiv_nomi [massiv_satrlari_soni][massiv_ustunlari_soni]; Ikki o`lchamli massivlarning e`lon qilinishida, bir o`lchamlidan farqi, massiv nomidan keyin qirrali qavs ichida ikkita qiymat yozilganligidadir. Bulardan birinchisi, satrlar sonini, ikkinchisi esa ustunlar sonini bildiradi.
13 Ikki o'lchamli massiv e'loniga misol: int a[3][3], b[2][4]; A matritsa 3 ta satr, 3 ta ustunga ega; B matritsa 2 ta satr, 4 ta ustunga ega; Ikki o'lchamli massivlarda 1 - indeks satrni, 2 - indeks ustunni bildiradi.
> m; cout << "Ustunlar sonini kiriting \nn="; cin >> n; cout <<"Massiv elementlarini kiriting \n"; for(int satr = 0; satr < m ; satr++) for(i" title="#include using namespace std; int main() { int m, n, a[10][10]; cout << "Satrlar sonini kiriting \nm="; cin >> m; cout << "Ustunlar sonini kiriting \nn="; cin >> n; cout <<"Massiv elementlarini kiriting \n"; for(int satr = 0; satr < m ; satr++) for(i" class="link_thumb"> 14 #include using namespace std; int main() { int m, n, a[10][10]; cout << "Satrlar sonini kiriting \nm="; cin >> m; cout << "Ustunlar sonini kiriting \nn="; cin >> n; cout <<"Massiv elementlarini kiriting \n"; for(int satr = 0; satr < m ; satr++) for(int ustun = 0; ustun < n; ustun++) { cout << "a[" << satr << "][" << ustun << "]="; cin >> a[satr][ustun]; } // matritsani jadval shaklida chiqarish for(int satr = 0; satr < m; satr++) { for(int ustun = 0; ustun < n; ustun++) cout << a[satr][ustun] << "\t"; cout<<"\n"; } return 0; } 1 - Masala. A(mxn) matritsa berilgan. Shu matritsa elementlarini kirituvchi va ekranga jadval ko`rinishida chiqaruvchi programma tuzilsin. > m; cout << "Ustunlar sonini kiriting \nn="; cin >> n; cout <<"Massiv elementlarini kiriting \n"; for(int satr = 0; satr < m ; satr++) for(i"> > m; cout << "Ustunlar sonini kiriting \nn="; cin >> n; cout <<"Massiv elementlarini kiriting \n"; for(int satr = 0; satr < m ; satr++) for(int ustun = 0; ustun < n; ustun++) { cout << "a[" << satr << "][" << ustun << "]="; cin >> a[satr][ustun]; } // matritsani jadval shaklida chiqarish for(int satr = 0; satr < m; satr++) { for(int ustun = 0; ustun < n; ustun++) cout << a[satr][ustun] << "\t"; cout<<"\n"; } return 0; } 1 - Masala. A(mxn) matritsa berilgan. Shu matritsa elementlarini kirituvchi va ekranga jadval ko`rinishida chiqaruvchi programma tuzilsin."> > m; cout << "Ustunlar sonini kiriting \nn="; cin >> n; cout <<"Massiv elementlarini kiriting \n"; for(int satr = 0; satr < m ; satr++) for(i" title="#include using namespace std; int main() { int m, n, a[10][10]; cout << "Satrlar sonini kiriting \nm="; cin >> m; cout << "Ustunlar sonini kiriting \nn="; cin >> n; cout <<"Massiv elementlarini kiriting \n"; for(int satr = 0; satr < m ; satr++) for(i">
15 Оddiy massiv algоritmlari. Quyidagi bolimlarda biz, qiymatlar ketma- ketligini qayta ishlash uchun bazi eng keng tarqalgan algoritmlarni muhokama qilamiz.Biz algoritmlarni shunday taqdim etamizki, siz ularni toliq va qisman toldirilagan massivlar hamda vektorlar yordamida foydalanishingiz mumkin.Qiymatlar miqdori (size of values) ifodasini ishlatganimizda, siz uni massivda elementlar miqdorini anglatuvchi doimiy yoki ozgaruvchan bilan almashtirishingiz kerak. ( yoki values.size() if values is a vector ifodasi.)
16 1 Toldirish Bu sikl massivni nollar bilan toldiradi: for (int i = 0; i < size of values; i++) { values[i] = 0; } Songra, keling kvadratlar massivini 0, 1, 4, 9, 16, va h.z sonlar bilan toldiramiz. Etibor bering, 0 indeksli element 02 ni, 1 indeksli element 12 va h.z ni oz ichiga oladi. for (int i = 0; i < size of squares; i++) { squares[i] = i * i; }
17 2. Nusxa kochirish Ikkita massivni korib chiqamiz: int squares[5] = { 0, 1, 4, 9, 16 }; int lucky_numbers[5]; Hozir aytaylik, siz birinchi massivdagi barcha qiymatlarni ikkinchisiga kochirmoqchisiz. Quyidagi ifoda xato hisoblanadi: lucky_numbers = squares; // Error C++da siz bir massivni ikkinchisiga otkaza olmaysiz.Uning orniga siz barcha elementlarni kochirish uchun sikldan foydalanishingiz kerak: for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; }
19 3. Yigindi va Ortacha Qiymat Siz allaqachon bu algoritm bilan bolimda duch kelgansiz.Quyida massivning barcha elementlarining yigindisini hisoblash kodi berilgan. double total = 0; for (int i = 0; i < size of values; i++) { total = total + values[i]; } Ortacha qiymatni topish uchun elementlar miqdorini boling: double average = total / size of values; miqdor nol emasligini tekshirishni unutmang.
20 4. Maksimum va minimum Ozida eng katta element uchun ozgaruvchini saqlovchi va massivlarni joriy etishda uchratgan. double largest = values[0]; for (int i = 1; i < size of values; i++) { if (values[i] > largest) { largest = values[i]; }
21 5 Element ajratuvchilari Siz element toplamlarini namoyish etganingizda, siz odatda ularni vergul yoki quyidagicha vertikal chiziqlar bilan bolishni hohlaysiz: 1 | 4 | 9 | 16 | 25 Etibor bering, ajratuvchi sonlarga qaraganda bittaga kam. dastlabki( 0 indeksli) dan tashqari har qaysi elementdan oldin ajratuvchini yozing. for (int i = 0; i < size of values; i++) { if (i > 0) { cout << " | "; } cout << values[i]; }
22 6. Bir chiziqli qidiruv Uni ornini almashtirish yoki olib tashlash uchunn siz tez- tez element ornini topishingiz kerak boladi. Massivning oxiriga kelmaguncha yoki oxshashlik topmaguningizcha, barcha elementlarni korib chiqing. Quyida biz 100ga teng bolgan birinchi element ornini qidiramiz. bool found = false; while (pos < size of values && !found) { if (values[pos] == 100) { found = true; } else { pos++; } Agar topilma togri bolsa, joy birinchi moslikning orni hisoblanadi.
23 7. Elementni olib tashlash. Joriy miqdori ozgaruvchan joriy miqdorda saqlanovchi qisman toldirilgan mas siv miqdorini korib chiqamiz. Deylik, siz pos indeksli elementni qiymatdan olib tashlamoqchisiz.Agar elementlar hyech qanday aniq tartibda bolmasa, bu vazifani amalag oshirish yengil kechadi.Shunchaki, oxirgi elementdan olib tashlangan elementni qaytadan yozing.Song, miqdorni kuzatuvchi ozgaruvchini kamaytiring. (6 - shaklga qarang). values[pos] = values[current_size - 1]; current_size--; agar elementlar tartibi muhim bolsa vaziyat yanada murakkablashadi. Bunday holda siz barcha elementlarni keyingi indeksi pastroq elementga almashtirishingiz kerak.Song massivni miqdorini saqlagan holda ozgaruvchini kamaytirishingiz kerak. (7 - shaklga qarang). for (int i = pos + 1; i < current_size; i++) { values[i - 1] = values[i]; } current_size--;
25 8. Element kiritish Agar element tartibi muhim bolmasa, siz oddiygina miqdorni kuzatuvchi ozgaruvchini kopaytirib yangi elementni oxiriga kiritishingiz mumkin. Qisman toldirilgan massiv uchun: if (current_size < CAPACITY) { current_size++; values[current_size - 1] = new_element; } Ketma - ketlikning ortasida muayan holatda element kiritish koproq ishni talab qiladi. Birinchidan, joriy miqdorni ozida ushlab turgan ozgaruvchini kopaytiring.Keyin, barcha elementlarni qoshish ornidan yuqoriroq indeksga kochiring. Nihoyat, yangi elementni joylashtiring.Quyida qisman toldirilgan massiv uchun kod berilgan: if (current_size < CAPACITY) { current_size++; for (int i = current_size - 1; i > pos; i--) { values[i] = values[i - 1]; } values[pos] = new_element; }
26
Massivlar va funktsiyalar Funksiyalar massivni parametr sifatida ishlatishi va uni funksiyaning natijasi sifatida qaytarishi mumkin. Agar massiv parametr orqali funksiyaga uzatilsa, elementlar sonini aniqlash muammosi tugiladi, chunki massiv nomidan uning uzunligini aniqlashning iloji yoq. Ayrim hollarda, masalan, belgilar massivi sifatida aniqlangan satr (ASCIIZ satrlar) bilan ishlaganda massiv uzunligini aniqlash mumkin, chunki satrlar \0 belgisi bilan tugaydi. Misol uchun: #include int len(char s[])//massivni parametr sifatida ishlatish { int m=0; while(s[m++]); return m-1; } void main () { char z[]=Ushbu satr uzunligi = ; cout<
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.