Massivning elementlari y^indisini va massiv elementlarining o’rta arifmetigini topish: Bunday xolda butun turdagi s o’zgaruvchisi olinib unga 0 berib kuyiladi va takrorlash operatori orqali
index o’zgaruvchisi 0 dan n-1 gacha uzgaradi. Massivning xar bir elementini s o’zgaruvchisiga yigib boramiz. CHikgan natijani 10 ga bo’lsak o’rta arifmetigi kelib chikadi;
int sum = 0;
for (index = 0; index < 10; index++)
sum = sum + sales[index]; average = sum / 10;
Massiv elementlaridan eng kattasini topishga doir:Bu
misolda butun turdagi maxIndex o’zgaruvchisini olib unga 0 berib kuyamiz va takrorlash operatorini 1 dan boshlaymiz va massivning nolinchi indeksili elementi bilan kolgan o’rindagi elementlari bilansolishtirib chikamiz, agar undan katta element chikib kolsa maxIndex o’zgaruvchisiga katta element indeksini olamiz va tekshirishni davom ettiramiz. Tekshirish natijasida bizga eng katta element indeksi paydo bo’ladi va shu o’rindagi elementini chop kilamiz;
maxIndex = 0;
for (index = 1; index < 10; index++) if (sales[maxIndex]< sales[index]) maxIndex = index; largestSale = sales[maxIndex];
Bu algoritmni massivning quyidagi qiymatlarida tekshirib ko’raylik:
Har bir qadamda ko’ramiz:
index
|
maxIndex
|
sales[maxIndex]
|
sales[index]
|
sales[maxIndex] |
1
|
0
|
12.50
|
8.35
|
12.50 < 8.35isfalse
|
2
|
0
|
12.50
|
19.60
|
12.50 < 19.60is true; maxIndex = 2
|
3
|
2
|
19.60
|
25.00
|
19.60 < 25.00istrue;1 maxIndex = 3
|
4
|
3
|
25.00
|
14.00
|
25.00 < 14.00 is false
|
5
|
3
|
25.00
|
39.43
|
25.00 < 39.43is true; maxIndex = 5
|
6
|
5
|
39.43
|
35.90
|
39.43 < 35.90 is false
|
7
|
5
|
39.43
|
98.23
|
39.43 < 98.23 is true; maxIndex = 7
|
8
|
7
|
98.23
|
66.45
|
98.23 < 66.65 is false
|
9
|
7
|
98.23
|
35.64
|
98.23 < 35.64 is false-
|
for operatori bajarilgandan sung maxIndex=7 ga ten bo’ladi va bu massivning eng katta elementi joylashgan indeks xisoblanadi. Massivning bu indeksidagi qiymati
largestSale = sales[maxIndex]= 98.23.
Biz massiv e’lon qilishni, massiv elementlarini ukib olishni massiv eyelementlaridan kattasini topishni va elementlari yigindisini toppish algoritmlarini kurdik. Endi C++ da dasto’rini yozamiz:
#include
using namespace std;
int main() {
int item[5]; //Massiv elementlari beshta bulsin int sum; int counter;
cout << "Enter five numbers: "; sum = 0;
for (counter = 0; counter < 5; counter++)
{
cin >> item[counter]; sum = sum + item[counter];} cout << endl;
cout << "The sum of the numbers is: " << sum << endl;
cout << "The numbers in reverse order are: ";
//Qiymatlarni teskari tartibda chop qilish
for (counter = 4; counter >= 0; counter--)
cout << item[counter]<< " ";
cout << endl;
return 0; }
Dasto’rni ishga tushiramiz:
Beshta qiymatni kiritaylik: 12 76 34 52 89
Massiv elementlari yigindisi: 263
Massiv elemetlarini teskari tartibda chop etish: 89 52 34 76 12
5. Bir o’lchamli massivlarni initsializatsiyalash
Ixtiyoriy massiv e’lonida uning elementlariga boshlangich qiymatlar berish mumkin Bizga elementlari 5 ta bo’lgan xaqiqiy turdagi sales massivi berilgan bulsin:
o’lchami kursatilgan massiv elementlarini tulik initsiali-zatsiyalash:
double sales[5]= {12.25, 32.50, 16.90, 23, 45.68};
Bunda 5 ta elementdan iborat bo’lgan sales nomli xaqiqiy turdagi bir o’lchamli massiv e’lon qilingan va uning barcha elementlariga boshlangich qiymatlar berilgan.
Bunda massivning elementlari quyidagi qiymatlarni uzlashtiradi:
sales[0] = 12.25, sales[1] = 32.50, sales[2] = 16.90, sales[3] = 23.00, sales[4] = 45.68.
YUqoridagi misolda massivning initsializatsiya qilishda massiv o’lchami anikdangan, ammo massivning o’lchamini bermasdan xam uni initsializatsiya qilish mumkin, bunda massivning o’lchami berilgan qiymatlar sonidan aniklab olinadi.
double sales[]= {12.25, 32.50, 16.90, 23, 45.68};
Massiv elementlarini tulikmas initsializatsiya qilish
Massiv elementlarini e’lon qilish va bir vaktda massivning barcha elementlarini initsializatsiya qilish mumkin, ammo massivni initsializatsiya qilishda uning kisman elementlarini initsializatsiya qilish mumkin bunga massivni tulikmas initsializatsiya qilish deyiladi.
Misol: int list[10]= {0};
10 ta elementdan iborat bo’lgan massiv e’lon qiliniyapti ammo massivning barcha elementlariga 0 qiymat initsializatsiya qilinyapti;
int list[10]= { 8, 5, 12 };
10 ta elementladan iborat bo’lgan massiv e’lon qilinyapti va massivning quyidagi elementlari list[0]=8, list[1]=5 va list[2]=12 qiymatlar bilan kolgan elementlari 0 qiymat bilan initsializatsiya kiliyapti. Agar massivning o’lchami kursatilmagan bo’lsa:
int list[ ]={5, 6, 3};
YUqoridagi misolda massiv elementlar soni keltirilmagan bunda xolda massiv elementlari soni initsializatsiya qilinayotgan qiymatlar soni bilan aniklab olinadi, elementlar soni uchta va massivning list[0] element 5 ni, list[1] element 6 ni va list[2] element 3 ni oladi.
int list[25]={4 , 7};
Bunday xolda massivning birinchi ikkita elementlari 4 va 7 qiymatlarni kolgan elementlar 0 ni initsializatsiya kiladi.
int t[5]={-10,5,15};
Bu yerda fakat massiv boshidagi uchta elementga boshlangich qiymatlar berilgan. SHuni aytib utish kerakki, massivning boshidagi yoki o’rtasidagi elementlariga qiymatlar bermasdan, uning oxiridagi elementlarga boshlangich qiymat berish mumkin emas. Agarda massiv elementlariga boshlangich qiymat berilmasa, unda kelishuv buyicha statis va extern modifikatori bilan e’lon qilingan massiv uchun elementlarining qiymati 0 soniga teng deb, automatis massivlar elementlarining boshlangich qiymatlari noma’lum xisoblanadi.
int t[]={-10,5,15,4,3};
Bu misolda massivni barcha elementlariga qiymatlar berilgan xisoblanadi, massiv uzunligi kompilyator tomonidan boshlangich qiymatlar soniga karab aniklanadi. Agarda massiv uzunligi berilmasa, boshlangich qiymati berilishi shart.
Massivda musbat elemenlar soni va summasini xisoblash.
#include
#include
using namespace std;
void main() {
int x[]={-1;2;5;-4;8;9}; clrscr();
for (int s=0,int k=0, int I=0; I<6; I++) {
if (x[I]<=0)
continue;
k++;
C++; };
cout << ("%d",k); cout << ("%d",k);
getch();
Massivning eng katta, eng kichik elementi va o’rta qiymatini aniqlash: #include using namespace std;
void main() {
int I,j,n;
float a,b,d,x[100];
while(1) {
cout << ("\n n="); cin >> ("%i",&n);
if ( n > 0 && n < = 100 ) break;
cout << ("\n Xato 0}
cout << ("\n elementlar qiymatlarini kiriting:\n");
For (i=0; i{
cout << ("x[%i]=",i); cin >> ("%f",&x[i]);} max=x[0]; min=x[0];
for (s=0,i=0;i{
C++;
if (maxif (min>x[i]) min=x[i]; };
s /= n;
cout << (“n max=%f”,max);
cout << (“\n min=%f”,min);
cout << (“\n o’rta qiymat=%f”,s); }
101>
Do'stlaringiz bilan baham: |