1. 1-laboratoriya ishi. Mavzu: Algoritmlarni loyihalash. Algoritm korrekt va samaradorligini baholash. Kvadrat tenglama ildizlarini aniqlash algoritmi. Uchburchak yuzasi uchun Geron formulasi
Download 1.14 Mb.
|
1.1algoritm
- Bu sahifa navigatsiya:
- Kubning hajmi va to’la sirtini toppish dasturi
- 1.2 laboratoriya mashg’uloti Mavzu: Massiv elementlarini tartiblashtirish. Matrisa maksimal, minimal elementnlarini aniqlash algoritmi masala.
- Quick sort – tez saralash usuli Bu usulning g‘oyasi
- 1-qadam.
- Natija 1.3-LABORATORIYA ISHI MAVZU: Matritsalarni ko’paytirish dasturi. Amallar tartibini baholash.
- 1-misol.
Topshiriq:
A) x2-8x+12=0 tenglamani ildizlari topish dasturiy kodi va blok-sxemasi tuzilsin. B) Kubning yon tomoni a berilgan. Uning hajmini V = a*a*a; va to’la sirti S = 6*a*a; D = b2 – 4*a*c X1,2=( −b±sqrt(D))/2*a V = a*a*a S = 6*a*a Tenglama ildizini toppish dasturi #include #include #include using namespace std; int main() { int a,b,c; cout<<"a ni kiriting "; cin>> a; cout<<"b ni kiriting "; cin>> b; cout<<"c ni kiriting "; cin>> c; float d = b * b -4*a*c; if ( d < 0 ) { cout << "Yechimga ega emas"; } else { if (d == 0) { float x = -b/ (2 * a); cout << x; } else { float x1 = (-b + sqrt(d))/(2*a); float x2 = (-b - sqrt(d))/(2*a); cout <<"X1 = "<< x1 < } system("pause"); return 0; } Kubning hajmi va to’la sirtini toppish dasturi #include #include using namespace std; int main() { float a; cout << "a ni kiriting "; cin>> a; cout<<"Kubning hajimi topilsin V=a*a*a "< cout< cout< } 1.2 laboratoriya mashg’uloti Mavzu: Massiv elementlarini tartiblashtirish. Matrisa maksimal, minimal elementnlarini aniqlash algoritmi masala. Butun sonlardan iborat n ta son berilgan. Shu sonlarni elementlar miqdori kamayish tartibida chiqarish algoritmi va dasturini tuzing.
Dastur kodi #include using namespace std; int main() { int n,t; cin>>n; int a[n]; for(int i=0; i for(int i=0; i t=a[i]; a[i]=a[j]; a[j]=t; } //swap(a[i], a[j]); for(int i=0; i 5 23 25 45 57 39 57 45 39 25 23 Quick sort – tez saralash usuli Bu usulning g‘oyasi to‘g‘ridan–to‘g‘ri almashtirish algoritmidagi saralashga tegishli bo‘lib, uning asosini kalitlarni tanlangan tayanch kalitga nisbatan ikkiga ajratish tashkil qiladi. Mazkur algoritmning ishlash tamoyili quyidagicha: 1-qadam. massivdan tayanch elementni tanlash. 2-qadam. Massivni belgilangan tayanch kalitga nisbatan ikkiga ajratish, ya’ni, tayanch kalitga nisbatan kichik yoki teng elementlar chap qismga, katta yoki teng elementlar o‘ng qism massivga joylashtiradi. 3-qadam. Massivda ikkita qism massivlar hosil qilindi. 4-qadam. Ikkita qism massivlar orasida qiyosiy saralash va qism massivlarning tarkibi elementlari orasida saralash rekursiv holda amalga oshiriladi. 5 dan chap tomonda kalitlari kichik, o‘ng tomonda esa kalitlari 5 dan katta bo‘lgan elementlar joylashadi (yuqoridagi chizma). 2-masala. N ta butun sonlardan iborat bir o’lchovli massiv berilga. Shu massiv elementlarini o’sish tartibida saralash dasturini tuzing. Dastur kodi. #include #include #include using namespace std; const int n=7; int first, last; //saralash funksiyasi void quicksort(int *mas, int first, int last) { int mid, count; int f=first, l=last; mid=mas[(f+l) / 2]; //mos elementni hisoblash do { while (mas[f] if (f<=l) //elementlarni almashtirish { count=mas[f]; mas[f]=mas[l]; mas[l]=count; f++; l--; } } while (f if (f //bosh funksiya int main() { int *A=new int[n]; srand(time(NULL)); cout<<"Massivni kiritish: "; for (int i=0; i A[i]=rand()%10; cout<} first=0; last=n-1; quicksort(A, first, last); cout< } masala. Butun sonlardan iborat 2 o’lchovli matritsa berilgan. Matritsaning eng katta va eng kichik elementlarini aniqlash dasturini tuzing. matritsa o'lchami n= 4 4 5 8 6 7 2 1 0 4 3 5 9 0 1 4 0 matritsaning eng katta elementi 9 indekslari 3 4 matritsaning eng kichik elementi 0 indekslari 2 4 Dastur kodi #include using namespace std; int main() { int n,t; cout<<"matritsa o'lchamini kiriting n= "; cin>>n; int a[n][n]; cout<<"matritsa qiymatlarini kiriting "< int min_a=a[0][0]; int max_a=a[0][0]; int max_in_i, min_in_i, max_in_j, min_in_j; for(int i=0; i if (a[i][j] min_a=a[i][j]; min_in_i=i; min_in_j=j; } if (a[i][j]>max_a) { max_a=a[i][j]; max_in_i=i; max_in_j=j; } } cout<<"matritsaning eng katta elementi "< Natija 1.3-LABORATORIYA ISHI MAVZU: Matritsalarni ko’paytirish dasturi. Amallar tartibini baholash. Ushbu laboratoriya ishida matritsalarni ko’paytirish algoritmlarini ko’rib chiqamiz va uning C dasturlash tilidagi kodini keltiramiz. To’g’ri burchakli matritsalarni ko’paytirishda birinchi matritsaning ustunlari soni ikkinchi matritsaning satrlari soniga teng bo’lishi lozim (bunday matritsalar haqida ularning formasi mos tushadi deyiladi), ya’ni ularning o’lchami quyidagicha bo’lishi lozim: A[m,n] matritsa, B[n,q] matritsa. Ko’paytirish natijasida C[m, q] matritsa hosil bo’ladi: Elementlar quyidagi formula asosida topiladi: C dasturlash tilida matritsalarni ko’paytirish algoritmi quyidagi tarzda ifodalanadi:
1-misol. AB ni hisoblang. Bunda , . Yechilishi. Bunda A=A3×2 va B=B2×2 bo’lganligi sababli, ko’paytirish mumkin va ko’paytirish natijasidagi matritsa C=C3×2 bo’ladi, va uning ko’rinishi: C matritsa elementlarini hisoblaymiz: c11=a11⋅b11+a12⋅b21=1⋅1+(−1)⋅2=−1c11=a11⋅b11+a12⋅b21=1⋅1+(−1)⋅2=−1 c12=a11⋅b12+a12⋅b22=1⋅1+(−1)⋅0=1c12=a11⋅b12+a12⋅b22=1⋅1+(−1)⋅0=1 c21=a21⋅b11+a22⋅b21=2⋅1+0⋅2=2c21=a21⋅b11+a22⋅b21=2⋅1+0⋅2=2 c22=a21⋅b12+a22⋅b22=2⋅1+0⋅0=2c22=a21⋅b12+a22⋅b22=2⋅1+0⋅0=2 c31=a31⋅b11+a32⋅b21=3⋅1+0⋅2=3c31=a31⋅b11+a32⋅b21=3⋅1+0⋅2=3 c32=a31⋅b12+a32⋅b22=3⋅1+0⋅0=3c32=a31⋅b12+a32⋅b22=3⋅1+0⋅0=3 Shunday qilib, . Ko’paytirishni ixchamroq ko’rinishda tasvirlaymiz: Endilikda D=BA=B2×2⋅A3×2 ko’paytmani topamiz. B (ko’payuvchi) matritsaning ustunlari soni A (ko’paytuvchi) matritsaning satrlari soniga mos tushmaydi, shu sababli ko’paytirishni amalga oshirishni iloji yo’q. bu tartibda matritsalarni ko’paytirish mumkin emas. Natija. . Teskari tartibda matritsalarni ko’paytirish mumkin emas, chunki B matritsaning ustunlari soni A matritsaning satrlari soniga mos kelmaydi. Matritsalarni ko’paytirish xususiyatlari: Assotsiativlik (A⋅B)⋅C=A⋅(B⋅C) Ko’paytirish bo’yicha assotsiativlik (μ⋅A)⋅B=μ⋅(A⋅B) Distributivlik A⋅(B+C)=A⋅B+A⋅C, (A+B)⋅C=A⋅C+B⋅C Bir o’lchovli massivga ko’paytirish Em⋅Am×n=Am×n⋅En=Am×n Umumiy holda matritsani ko’paytirish kommutativ emas, ya’ni AB≠BA. Download 1.14 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling