Тоshkеnт ахborot техnоlоgiyаlari univеrsiтетi



Yüklə 418 Kb.
səhifə33/42
tarix17.10.2023
ölçüsü418 Kb.
#156478
1   ...   29   30   31   32   33   34   35   36   ...   42
С РАХМ

# include
# include
# include
# include
int main ()
{
const int massivHajmi = 10;
int m[massivHajmi] = {0}; // hamma 10 ta element
// 0 ga tenglashtirildi
srand( time(NULL) );
for(int i = 0; i < 1000; i++) {
++m[ rand() % 10 ];
}
for(int j = 0; j < massivHajmi; j++) {
cout << j << setw(4) << m[j] << endl;
}
return (0);
}
Ekranda:
0 96
1 89
2 111
3 97
4 107
5 91
6 100
7 118
8 99
9 92
Ko'rib turganimizdek, sonlarning tushish ehtimoli nisbatan tengdir. Albatta,
bu qiymatlar dasturning har yangi ishlashida o'zgaradi.
++m[ rand() % 10 ];
Yozuvi bilan biz massivning rand() % 10 indeksli elementini birga
oshirmoqdamiz. Bunda rand () % 10 ifodasidan chiqadigan qiymatlar [0;9] ichida
yotadi.
Satrlar, yani harflar ketma-ketligi ("Toshkent", "Yangi yilingiz bilan!"...)
C/C++ da char tipidagi massivlar yordamida beriladi. Bunday satrlar bilan
islovlar juda tez bajariladi. Chunki ortiqcha tekshirishlar bajarilmaydi.
Bundan tashqari C++ da ancha rivojlangan String klasi mavjuddir, u oddiy char
bilan berilgan satrlardan ko'ra qulayroqdir. Lekin ushbu klas ko'proq joy
egallaydi va massivli satrlardan ko'ra sekinroq ishlaydi. String klasini
keyingi qismlarda o'tamiz. Qolaversa, satrlar bilan ishlash uchun biz o'zimiz
klas yoki struktura yozishimiz mumkin. C dan meros bo'lib qolgan satrlar
ustida amallar bajarish uchun biz dasturimizga
(yangi ismi ) e'lon faylini kiritishimiz kerak. Ushbu e'lon faylida
berilgan funksiyalar bilan keyingi bo'limda ishlaymiz.
Harflar, yani literalar, aytib o'tganimizdek, C++ da char tipi orqali
beriladi. Literalar apostroflarga ('S', '*' ...) olinadi. Satrlar esa
qo'shtirnoqlarga olinadi. Satrlar e'loniga misol beraylik.
char string[] = "Malibu";
char *p = "Ikkinchi!?!";
Satrlarni yuqoridagi ikkita yo'l bilan initsalizatsiya qilsa bo'ladi.
Satrlar ikkinchi uslubda e'lon qilinganda, yani pointer mehanizmi
qo'llanilganda, ba'zi bir kompilyatorlar satrlarni hotiraning konstantalar
saqlanadigan qismiga qo'yadi. Yani ushbu satrlarga o'zgartirish kiritilishi
ta'qiqlanadi. Shu sababli satrlarni hardoim o'zgartirish imkoni bo'lishi
uchun ularni char tipidagi massivlar ko'rinishida e'lon qilish afzaldir.
Satrlar massiv yordamida berilganda, ularning uzunligi noma'lumdir.
Shu sababli satrning tugaganligini bildirish uchun satr ohiriga mahsus belgi
nol literasi qo'yiladi. Uning dastursa belgilanishi '\0' ko'rinishga ega.
Demak, yuqorida berilgan "Malibu" satriga ohiriga '\0' belgisi qo'shiladi, yani
massivning umumiy uzunligi "Malibu":6 + '\0':1 = 7 ta char tipidagi elementga
teng bo'ladi. Satrlarni massiv initsalizatsiya ro'yhati ko'rinishida ham
bersak bo'ladi:
char c[6] = {'A', 'B', 'C', 'D', 'E' , '\0'};
...
cout << c;
...
Ekranda:
ABCDE
Biz cout bilan c ning qiymati ekranga bosib chiqardik. Aynan shunday
klaviaturadan ham o'qib olishimiz mumkin:
char string[80];
cin >> string;
Eng muhimi satr bilan '\0' belgisi uchun yetarli joy bo'lishi kerak.
Satrlar massiv yordamida berilganligi uchun, alohida elementlarga indeks
orqali yetishish mumkin, masalan:
char k[] = "Bahor keldi, gullar ochildi.";
for (int i = 0; k[i] != '\0'; i++)
if ( (i mod 2) == 0 ) // juft sonlar uchun haqiqat bo'ladi
cout << k[i] << " ";
Ekranda:
B h r k l i u l r o h l i
Yuqoridagi misolda, sikl tugashi uchun k[i] element '\0' belgiga teng bo'lishi
kerak.

Yüklə 418 Kb.

Dostları ilə paylaş:
1   ...   29   30   31   32   33   34   35   36   ...   42




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin