logo

Vektorlar va ko’p o’lchovli massivlar bilan ishlash

Yuklangan vaqt:

01.11.2023

Ko'chirishlar soni:

0

Hajmi:

41.390625 KB
Vektorlar va ko’p o’lchovli massivlar bilan ishlash Reja: 1. Vektor tushunchasi 2. Ko’p o’lchovli massivlar 3 . Ko’p o’lchamli statik massivlar 1. Vektor tushunchasi Foydalanuvchi kiritmasidan qiymatlarni yig’uvchi dasturni yozganingizda nechta qiymatlar bo’lishini bilmaysiz. Afsuski, dastur tuzilganda jadval hajmi aniq bo’lishi kerak. Bo’limda bu muammoni qisman to’ldirilgan jadvallar qanday yo’naltirishni ko’rdingiz. biz quyidagi bo’limlarda muhokama qiladigan bu vektor tuzilishi qulayroq echimni taklif etadi. Vektor qiymatlar ketma ketligini xuddi jadval qilgandek yig’adi lekin uning hajmi o’zgarishi mumkin. Vektorni aniqlaganingizda burchak kronshteyndagi elementlar turini aniqlashtirasiz. Quyidagicha:vector<double> values; Boshlang’ich hajmni erkin aniqlashingiz mumkin. Masalan, Bu erda boshlang’ich hajmi 10 ga teng bo’lgan vektorning ta’rifi: vector<double> values(10); agar vektorni boshlang’ich hajmsiz aniqlasangiz uning hajmi 0 ga teng. Jadvalning 0 hajmini aniqlashda hech qanday nuqta bo’lmaganda boshlang’ich hajmi 0 ga teng vektorlarga ega bo’lish foydali va keyin ular keraklicha o’stiriladi. Dasturingizda vektorlardan foydalanish uchun siz vektor sarlavhasini ham kiritishingiz zarur defining Vectors vector<int> numbers(10); 10 butun vektor vector<string> names(3); 3 trosli vektor vector<double> values; 0 hajmli vektor vector<double> values(); Xato : Vektorni aniqlamadi. Agar qo’shimcha elementlar kerak bo’lsa elementni vektorning oxiriga qo’shish uchun push_back funksiyasini qo’llaysiz. bunda uning hajmi 1 ga ortadi. Push_back funksiyas i quyidagi nuqtali notatsiya bilan chaqirishingiz shart bo’lgan a’zo funksiyasidir: values.push_back(37.5); Bu chaqiruvdan so’ng 14 shakldagi vektor qiymati 3 hajmga teng va qiymatlarvalues[2] qiymat 37.5 ga teng. Bo’sh vektor bilan boshlash va push_back funksiyasi bilan uni to’ldirish ommalashgan. Masalan, vector<double> values; // Dastlabki bo’sh values.push_back(32); // endi qiymatla 1 hajmga va element esa 32 hajmga ega values.push_back(54); // endi qiymatla 2 hajmga va element esa 32,54 hajmga ega values.push_back(37.5); // endi qiymatla 3 hajmga va element esa 32,54,37.5 hajmga ega push_back a’zo funksiyasi uchun boshqa bir foydalanish bu vektorni kiritma qiymatlari bilan to’ldirish. vector<double> values; // Dastlabki bo’sh double input; while (cin >> input) { values.push_back(input); } Bu kiritmassikl 6.2.10 bo’limdagidan osonroq va oddiyroq ekanini qayd eting. Boshqa a’zo funksiyasi, pop_back , vektorning oxirgi elementini olib tashlash, uning xajmini bittaga kichiklashtirish. (15 shaklga qarang): values.pop_back (); Vektorlar va funksiyalar Siz boshqa qiymatlar kabi vektorlarni funksiya parametri sifatida ishlatishingiz mumkin. Masalan, quyida funksiya flouting member nuqtasi sonlari vektorining umumiy sonini hisoblaydi: double sum( vector<double> values ) { double total = 0; for (int i = 0; i < values.size(); i++)  { total = total + values[i]; } return total; }Bu funksiya vektor elementlarini aylanib o’tadi, lekin ularni o’zgartirmaydi. void multiply( vector<double>& values , double factor) // Note the & { for (int i = 0; i < values.size(); i++) { values[i] = values[i] * factor; } } Ba’zi programmistlar o’zgartirilmaydigan vektor parametrlari uchun turg’un yo’nalishdan foydalanadilar. (Maxsus mavzu 5.2) masalan: double sum( const vector<double>& values ) // const & added for efficiency funksiya vektorni qaytarishi mumkin. YAna vektorlar qolgan qiymatlardan boshqacha emas. funksiyada natijani o’rnating va uni qaytaring. bu misolda, squares funksiyasi vektorni 0 2 up to ( n – 1) 2 qaytaradi : vector<int> squares(int n) { vector<int> result; for (int i = 0; i < n; i++) { result.push_back(i * i); } return result ; } 3. Ko’p o’lchamli statik massivlar S++ tilida massivlar elementining turiga cheklovlar qo’yil-maydi, lekin bu turlar chekli o’lchamdagi ob’ektlarning turi bo’lishi kerak. CHunki kompilyator massivning xotiradan qancha joy (bayt) egallashini hisoblay olishi kerak. Xususan, massiv komponentasi massiv bo’lishi mumkin («vektorlar-vektori»), natijada matritsa deb nomlanuvchi ikki o’lchamli massiv hosil bo’ladi. Agar matritsaning elementi ham vektor bo’lsa , uch o’lchamli mas sivlar - kub hosil bo’ladi. SHu yo’l bilan echilayotgan masalaga bog’liq ravishda ixtiyoriy o’lchamdagi massivlarni yaratish mumkin . Ikki o’lchamli massivning sintaksisi quyidagi ko’rinishda bo’ladi: <tur><nom> [<uzunlik >] [<uzunlik>] Masalan, 20 10  o’lchamli haqiqiy sonlar massivining e’loni: float a [10][20]; E’lon qilingan A matritsani ko’rinishi 7.2-rasmda kelti ril gan . 7.2-rasm. Ikki o’lchamli massivning xotiradagi joylash uv i Endi adres nuqtai - nazaridan ko’p o’lchamli massiv element-lariga murojaat qilishni ko’raylik. Quyidagi e’lonlar berilgan bo’lsin: int a[3][2]; float b[2][2][2]; Birinchi e’londa ikki o’lchamli massiv, ya’ni 2 satr va 3 ustundan iborat matritsa e’lon qilingan, ikkinchisida uch o’lchamli - 3 ta 2x2 matritsadan iborat bo’lgan massiv e’lon qilingan. Uning elementlariga murojaat sxemasi: 7.3-rasm. Ikki o’lchamli massiv elementlariga murojaat Bu erda a[i] ko’rsatkichda i-chi satrning boshlang’ich adresi joyla-shadi, massiv elementiga a[i][j] ko’rinishidagi asosiy murojaatdan tashqari vositali murojaat qilish mumkin: *(*(a+i)+j) yoki *(a[i]+j). 7.3-rasm. Uch o’lchamli massivning xotirada tashkil bo’lishi Massiv elementlariga murojaat qilish uchun nomdan keyin kvadrat qavsda har bir o’lcham uchun indeks yozilishi kerak, masalan b[i][j][k]. B u elementga vositali murojaat ham qilish mumkin va uning variantlari: Adabiyotlar: 1. K.P.Abduraxmanov, O’.Egamov “Fizika kursi” darsligi, Toshkent.: Aloqachi 2013 y. 2. K.P.Abduraxmanov, O’.Egamov “Fizika kursi” darslik, Toshkent, “O’quv ta’lim metodikasi” 2015 y. 3. Савельев И. В. Курс физики. М.: Наука 1989 т. 1 4. Савельев И. В. Курс физики. М.: Наука 1989 т. 2 5. Савельев И. В. Курс физики. М.: Наука 1989 т. 3 6. Савельев И. В. Сборник вопросов и задач по общей физик е . М.: АСТ. Астрель. 2005. С.320. 7. К.П.Абдурахманов, Ў.Эгамов “ Физика курси” дарслиги, Тошкент, 2010 й. 8. П.А.Типлер, Р.А.Ллуэллин Современная физика (Лучший зарубежный учебник в двух томах) М. Мир.2007.С.496 (1том) 9. П.А.Типлер, Р.А.Ллуэллин Современная физика (Лучший зарубежный учебник в двух томах) М. Мир.2007.С.416 (2том) 10. Трофимова Т.И. Курс физики.М.Высшая щкола 1999.С.543 Интернет сайтлар: 1. www.ziyonet.uz ; 2. www.estudy.uz ; 3. www.fizika.uz ; 4. www.elearning.uz ; 5. www.bilim.uz ; 6. www.edx.uz ; 7. www.my.estudy.uz ; 8. www.conrsera.org.uz ;