# include
# include
# include
void kir(int m[ ][5], int k);
void chiq(int m[ ][5], int k);
int summa(int m[ ][5], int k, int x);
int i, j ;
void main ( )
{ int matr[4][5]; int a, s; int b[ ][3];
cout<< “sonni kiriting=”; cin>>a;
kir(matr, 4); chiq(matr, 4);
s = summa(matr, 4, a);
cout<< “s=”<
getch( ); }
void kir(int m[ ][5], int k)
{ srand(time(0));
for (i=0;i
for (j=0;j<5;j++)
m[i][j]=rand( ) - 200; }
void chiq(int m[ ][5], int k)
{ for (i=0;i
for (j=0;j<5;j++)
cout <
int summa(int m[ ][5], int k, int x)
{ int s1 = 0;
for (i=0; i
for (j=0; j<5; j++)
if (m[i][j] < x) s1 = s1 + m[i][j];
return s1; }
Funksiyalarga murojaat qilish quyidagi bosqichlardan iborat bo’ladi:
1. Funksiya bajarilayotganda rasmiy parametrlar uchun xotiradan joy ajratiladi, ya’ni ular funksiyaning ichki parametrlariga aylantiriladi. Bunda parametr toifasi float toifasi double toifasiga, char va shortint toifalari int toifasiga aylantiriladi.
2. Haqiqiy parametrlar qiymatlari qabul qilinadi yoki hisoblanadi.
3. Haqiqiy parametrlar rasmiy parametrlar uchun ajratilgan xotira qismiga yoziladi.
4. Funksiya tanasi ichki parametrlar yordamida bajariladi va qiymat qaytarish joyiga yuboriladi.
5. Funksiyadan chiqishda rasmiy parametrlar uchun ajratilgan xotira qismi bo’shatiladi.
Dasturdagi har bir o’zgaruvchi – Ob’yekt hisoblanadi. Uning nomi va qiymati bo’ladi. Har bir Ob’yekt xotiradan ma’lum joy egallaydi va ular ma’lum adresga ega bo’ladi. Dasturlashning ma’lum etaplarida o’zgaruvchining o’ziga emas, balki uning adresiga murojaat qilishga to’g’ri keladi. Bunday paytlarda ko’rsatkichlardan foydalaniladi. Ko’rsatkich - bu biror o’zgaruvchining adresini o’zida saqlovchi o’zgaruvchidir. Adres - bu xotira yacheykasining tartib nomeri. Umuman olganda adres 4 bayt joy oladi. Ko’rsatkichlarni e’lon qilishda uning toifasidan keyin * belgisi va o’zgaruvchi nomi keltiriladi.
Masalan: int a; char *d; int *p;
Ko’rsatkichlar ham inisalizasiya qilinishi mumkin. *r = 6; *d = '$';
cout <<*p bilan cout <
qi bor. *p da shu yerdagi qiymat chiqadi, p ning o’zini yozsak, shu yerning adres nomeri chiqadi. Masalan:
int a=10, b=5, e, *m;
e = a + b;
*m = e;
cout <<*m; deb yozilsa, m = 15 chiqadi;
cout <Ularning qiymatlarini “adresini ol!” (&) operatsiyasi orqali amalga oshirsa ham bo’ladi, ya’ni m=&e; cout <<*m; deb yozish ham mumkin, u holda m=15 chiqadi, ya’ni ye ning adresidagi son qiymat chiqadi. Buni bilvosita murojaat operatori ham deyiladi.
Masalan:
int h;
int *p=35;
h = &p;
Natija: h = 35;
Adresi olish amali (&) son yoki ifodalarga qo’llanilmaydi, ya’ni &3.14 va &(a+b) yozuvlari xatodir.
Ko’rsatkichlar ustida quyidagi amallarni bajarish mumkin:
Ko’rsatkichlar ustida arifmetik amallar bajarish:
*p1-*p2; *p1+*p2
Ko’rsatkichlarga biror sonni qo’shish yoki ayirish:
*p1 - 25; *p1+3.45
Ko’rsatkichlarni bittaga oshirish yoki kamaytirish:
*p1++ yoki --*p1
Misol.
Do'stlaringiz bilan baham: |