Funksiyalar. Rekursiv funksiyalar. Funksiyalar. Funksiya – dastur kodining biror nomlangan qismi bo’lib, unga boshqa funksiyalardan va asosiy (main) funksiyasidan murojaat qilish mumkin. Aniq bir vazifani bajaradi, birnecha marta murojaat qilinishi mumkin. Masala. Ikkita a va b sonlari berilgan. Ularning har birining raqamli ildizlarini toping. Raqamli ildizni xisoblaganda sonning raqamlarini qo’shamiz. Agar u bir xonali son bo’lmasa bu jarayonni toki bir xonali son bo’lgunga qadar davom ettiramiz. Masalan a = 2356474; 1) a = 2356474 > 9, a = 2+3+5+6+4+7+4=31; 2) a = 31 > 9, a = 3+1=4; 3) a = 4 <= 9; Javob : 4; int digidal_root(int a) { while (a > 9) { int sum = 0; while (a > 0) { sum += a % 10; a /= 10; } a = sum; } } Funksiya parametri sifatida massiv uzatish. Masala: Bir o’lchamli massivning [L..R] elementlarining yig’indisini funksiya yordamida topuvchi dastur tuzing. Masalan : int a[] = {1, 4, 6, 14, 32, 7, 9} sumArray(a, 0, 3) = a[0]+a[1]+a[2]+a[3] = 1+4+6+14 = 25 sumArray(a, 2, 3) = a[2]+a[3] = 6+14 = 20 Bu masalada funksiyaga parametr sifatida massiv va uning boshlang’ich va ohirgi insekslari uzatiladi. int sumArray(int a[], int L, int R) { int sum = 0; for (int i = L; i <= R; i++) { sum += a[i]; } } int main(){ int a[] = {1, 4, 6, 14, 32, 7, 9}; cout<< sumArray(a, 1, 4) ; int b[] = {4, 67, 13, 56, 61, 4}; cout<< sumArray(b, 2, 3) ; } Funksiyaning parametriga massivni uzatmasdan uni global qilib qo’yish ham mumkin.
Dostları ilə paylaş: |