- •Proqramlaşdırmanın əsasları
- •3. Yaddaş və verilənlərin tipləri
- •3.1. Yaddaş və onun növləri
- •3.2. Standart tip verilənlərin ölçüsü
- •3.3. Dəyişənlərin elan olunması
- •3.4. Konstantlar (Sabitlər)
- •3.5. İfadələr
- •4. Xətti və budaqlanan alqoritmlərin proqramlaşdırılması
- •4.1. Xətti alqoritmlərin proqramlaşdırılması
- •3.7. Tiplərin çevrilməsi
- •Müstəqil işləmək üçün tapşırıqlar
- •4.2. Giriş/çıxış operatorları
- •4.3. Budaqlanan alqoritmlərin proqramlaşdırılması
- •4.3.1. Şərt operatoru
- •4.3.3. Seçmə (variant) operatoru
- •4.3.4. Goto operatoru
- •4.3.5. Proqramın exit operatoru ilə dayandırılması
- •Müstəqil işləmək üçün tapşırıqlar
- •Dövri alqoritmlərin proqramlaşdırılması
- •5.1. Önşərtli dövr operatoru
- •5.2. Sonşərtli dövr operatoru
- •5.3. Parametrli dövr operatoru
- •5.4. Break operatoru
- •5.5. Continue operatoru
- •Müstəqil işləmək üçün çalışmalar
- •Funksiyalar
- •6.1. Funksiyanın sintaksisi
- •6.2. Funksiyanın təyin olunması
- •6.3. Funksiyanın çağırılması
- •6.4. Prototipin yaradılması
- •6.5. Lokal dəyişənlər
- •6.6. Qlobal dəyişənlər
- •6.7. Statik lokal dəyişənlər
- •6.8. Məlumatın funksiyaya göndərilməsi
- •6.9. Funksiyadan qiymətin qaytarılması
- •Müstəqil işləmək üçün tapşırıqlar
- •Massivlər
- •7.1. Birölçülü massivlər
- •7.2. İkiölçülü massivlər
- •İkiölçülü massivin ekrana çıxarılması:
- •Müstəqil işləmək üçün tapşırıqlar
- •Simvollar və sətirlər
- •8.1. Simvol və sətirlərin sintaksisi
- •Sətirlərlə işləyən funksiyalar
- •Müstəqil işləmək üçün tapşırıqlar
- •Fayllar: fayldan daxiletmə
- •Və fayla çıxış
- •Ikilik və mətn faylları
- •Fstream standart kitabxanası
- •Fayla girişin ümumi alqoritmi
- •9.4. Faylın açılması
- •9.4.1. Yazmaq üçün faylın açılması
- •9.4.2. Oxumaq üçün faylın açılması
- •9.4.3. Faylın oxumaq və yazmaq üçün açılması
- •9.5. Faylın bağlanması
- •9.6. Fayla yazmaq və fayldan oxumaq
- •Strukturlar və siniflər
- •Strukturlar və onların elanı
- •Int height;
- •Strukturun dəyişəninin elanı
- •Strukturun inisiallaşdırılması
- •Strukturların funksiya parametri kimi ötürülməsi
- •Siniflər
- •Operatorlar
- •Operatorların üstünlük dərəcəsi
- •Sərhəd qiymətlərinin sabitləri
- •Həqiqi tiplər üçün sabitlər – float.H faylı
- •C dilinin standart funksiyalar kitabxanası
- •Hesabi funksiyalar – math.H faylı
- •Standart fayllar üçün giriş-çıxış funksiyaları- stdio.H faylı
- •Sətirlərlə işləmək üçün funksiyalar- string.H, stdlib.H faylları
- •Mətn rejimində terminalla işləmək üçün funksiyalar- conio.H faylı
- •Xüsusi funksiyalar
- •Mündəricat
6.9. Funksiyadan qiymətin qaytarılması
Parametrlər çağırılan funksiyanın qiymətlərinin ötürülməsi üçün istifadə olunur. Qaytarılan qiymət isə çagırılan funksiyadan qiymətləri onu çağıran funksiyaya ötürməyə xidmət edir.
Məsələn, əvvəlki proqramda AddNumbers funksiyası üç parametrə malik idi: ilk ikisi – toplanan ədədlər və üçüncüsü – onların cəmi.
Üçüncü parametri yox etməklə və onu funksiyanın qaytardığı qiymətlə əvəz etməklə əvvəlki proqramı yaxşılaşdırmaq olar:
# include <inter>
using namespace std;
int AddNumbers (int, int);
int main()
{
int firstnum, secondnum, sum=0;
cout <<”Enter first number:”;
cin >>firstnum;
cout<<”Enter second number:”;
cin >>secondnum;
sum = AddNumbers(firstnum, secondnum);
cout <<firstnum<<”+”<<secondnum<<”=”<<sum;
return 0;
}
int AddNumbers(int x,int y)
{
return x+y;
}
Burada funksiyanın çağırılması mənimsətmə operatorundan sağda yerləşir. Mənimsətmə operatorunun solunda yerləşən dəyişənin tipi funksiyanın qaytarılan tipi ilə eyni olmalıdır. Iş prinsipi ondan ibarətdir ki, funksiyanın çağırılmasından qaytarılan qiymət mənimsətmə operatorundan solda yerləşən sum dəyişəninə mənimsədilir:
sum = AddNumbers(firstnum, secondnum);
funksiyanın qaytarılan x+y qiyməti
return x+y;
operatorunun yerinə yetirilməsindən sonra main funksiyasındakı sum dəyişəninə mənimsədilir.
Qeyd edək ki, funksiyaya parametr olaraq bir neçə qiymət qaytarmaq olmaz. Bunu etmək üçün massivləri, strukturları və sinifləri bilmək lazımdır.
Misal.6.1. Altproqramlardan istifadə edilməklə onluq say sistemində verilmiş 255 ədədinin digər say sistemlərində yazılışını təsvir edən proqram (Standart C – də).
# include <stdlib.h>
# include <stdio.h>
void itab(int n, char s[], int b);
void reverse(char s[]);
int main(void) {
char buffer[10];
int i;
for ( i = 2; i <= 20; ++i ) {
itab(255, buffer, i);
printf("onluq say siteminde 255 esasi %-2d -say sisteminde: %s\n", i, buffer);
}system("PAUSE");
return 0; }
void itab(int n, char s[], int b) {
static char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i, sign;
if ( b < 2 || b > 36 ) {
fprintf(stderr, "EX3_5: Cannot support base %d\n", b);
exit(EXIT_FAILURE); }
if ((sign = n) < 0)
n = -n;
i = 0;
do {
s[i++] = digits[n % b];
} while ((n /= b) > 0);
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s); }
/* Reverses string s[] in place */
void reverse(char s[]) {
int c, i, j;
for ( i = 0, j = strlen(s)-1; i < j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
Alınmış nəticə:
onluq say siteminde 255 esasi 2 -say sisteminde: 11111111
onluq say siteminde 255 esasi 3 -say sisteminde: 100110
onluq say siteminde 255 esasi 4 -say sisteminde: 3333
onluq say siteminde 255 esasi 5 -say sisteminde: 2010
onluq say siteminde 255 esasi 6 -say sisteminde: 1103
onluq say siteminde 255 esasi 7 -say sisteminde: 513
onluq say siteminde 255 esasi 8 -say sisteminde: 377
onluq say siteminde 255 esasi 9 -say sisteminde: 313
onluq say siteminde 255 esasi 10 -say sisteminde: 255
onluq say siteminde 255 esasi 11 -say sisteminde: 212
onluq say siteminde 255 esasi 12 -say sisteminde: 193
onluq say siteminde 255 esasi 13 -say sisteminde: 168
onluq say siteminde 255 esasi 14 -say sisteminde: 143
onluq say siteminde 255 esasi 15 -say sisteminde: 120
onluq say siteminde 255 esasi 16 -say sisteminde: FF
onluq say siteminde 255 esasi 17 -say sisteminde: F0
onluq say siteminde 255 esasi 18 -say sisteminde: E3
onluq say siteminde 255 esasi 19 -say sisteminde: D8
onluq say siteminde 255 esasi 20 -say sisteminde: CF
Misal
6.2.
C(m,n)
funksiyasını rekursiv üsulla hesablayan proqram yazın.
Binomial
əmsalların
rekursiv
hesablanması üçün
düsturundan istifadə edin.
#include <cstdlib>
#include <iostream>
using namespace std;
long C(long n,long k) {
if(k == 0 || n == k) return 1;
return C(n - 1, k - 1) + C(n - 1, k);
}
int main() {
long n, k;
scanf ("%ld%ld", &n, &k);
printf ("%ld\n ", C(n, k));
system("PAUSE");
return EXIT_SUCCESS;
}
Nəticə:
