Kitob uchta qismdan iborat. "Strukturali dasturlash", "Obyektli-yo’nalishli dasturlash", "Standart kutubxonalar"



Download 333,2 Kb.
bet41/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   37   38   39   40   41   42   43   44   ...   90
Bog'liq
C majmua

MASLAHAT
Funksiyada o'zgarishi ko'zda tutilgan barcha parametrlar oldiga constni ko'rsatish tavsiya etiladi. Bu katta dasturlarni sozlashni osonlashtiradi, chunki funksiya sarlavhasi bo'yicha unda qanday miqdorlar o'zgarishi yoki o'zgarmasligi haqida xulosa chiqarish mumkin. Bundan tashqari, const& tipidagi parametr o'rniga konstanta uzatilishi mumkin, o'zgaruvchi uchun esa zarur bo'lganda tip almashtirishlari bajariladi.

Shunday qilib, funksiyada o'zgarmasligi lozim bo'lgan berilgan ma'lumotlar unga konstant murojaatlar yordamida uzatish afzalroq.


Massiv va funksiyadan tashqari ixtiyoriy tipdagi (masalan, muhim bo'lmagan, strukturali, sanab o'tish, birlashma, ko'rsatgich) parametrlarni jimlik bo'yicha funksiyaga qiymat bo'yicha uzatiladi.


Parametrlar sifatida massivlarni uzatish

Parametr sifatida massivdan foydalanishda funksiyaga uning birinchi elementiga ko'rsatgich uzatiladi. Bunda massiv elementlari soni haqidagi axborot yo'qoladi, uning o'lchovini alohida parametr orqali uzatish lozim. Simvolli massiv hamda, ya'ni satrda, uning haqiqiy uzunligini nol-simvol holati bo'yicha aniqlash mumkin:


#include


int sum(const int* mas, const int n);
int const n = 10;
int main(){
int marks[n] = {3, 4, 5, 4, 4};
cout << "Massiv elementlari yig'indisi: " << sum(marks, n);
return 0;
}
int sum(const int* mas, cons tint n){
// variantlar: int sum(int mas[], int n)
// yoki int sum(int mas[n], int n)
// (величина n должна быть константой)
int s = 0;
for (int i = 0; i return s;
}

Ko'p o'lchovli massivlarni uzatishda o'lchovlar, agar ular kompilyatsiya bosqichida nama'lum bo'lsa, parametrlar sifatida uzatilishi lozim. Funksiya ichida massiv bir o'lchovli deb, talqin qilinadi, uning indeksi dasturda qayta sanaladi. Quyida keltirilgan misolda funksiya yordamida ikkita ikki o'lchovli massivlar elementlar yig'indisi sanaladi. b massivning kompilyatsiya bosqichida ma'lum, a massivga xotira dinamik tarzda ajratiladi:


#include


#include
int sum(const int *a, const int nstr, const int nstb);
int main(){
int b[2][2] = {{2, 2}, {4, 3}};
printf("b elementlar yig'indisi: %d\n", sum(&b[0][0], 2, 2));
// имя массива передавать в sum нельзя из-за несоответствия типов
int i, j, nstr, nstb, *a;
printf("Satr va ustun sonlarini kiriting: \n");
scanf("%d%d", &nstr, &nstb);
a = (int *)malloc(nstr * nstb * sizeof(int));
for (i = 0; i for (j = 0; jprinf("a elementlar yig'indisi: %d\n", sum(a, nstr, nstb));
return 0; }
int sum(const int *a, const int nstr, const int nstb){
int i, j, s =0;
for (i =0; i for (j = 0; j return s;
}

Ikki o'lchivli massiv bilan ishlash uchun xotira ajratishning muqobil usulini qo'llash mumkin:


#include


int sum(int **a, const int nstr, const int nstb);
int main(){
int nstr, nstb;
cin >> nstr >> nstb;
int **a, i, j;
// a matritsani shakllantiring:
a = new int* [nstr];
for (i = 0; i a[i] = new int [nstb];
for (i = 0; i for (j = 0; j> a[i][j];
cout << sum(a, nstr, nstb);
return 0;
}
int sum(int **a, const int nstr, const int nstb);
int i, j, s = 0;
for (i = 0; i for (j = 0; j return s;
}

Bu holda xotira ikki bosqichga ajratiladi: dastlab ko'rsatgichlar ustuni tagida matritsa satrlariga, so'ngra siklda har bir satrga, 1.10 – rasmda ko'rsatilganidek xotirani bo'shatish teskari tartibda bajarilishi lozim.





Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   37   38   39   40   41   42   43   44   ...   90




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish