
- •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
- •3.7. Tiplərin çevrilməsi
- •Müstəqil işləmək üçün tapşırıqlar
- •4. Xətti və budaqlanan alqoritmlərin proqramlaşdırılması
- •4.1. Xətti alqoritmlərin proqramlaşdırılması
- •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.3. Funksiyanın çağırılması
Əvvəlki bənddəki printmessage funksiyası main funksiyasına
printmessage();
sətri şəklində çağırılır. Bu misalda printmessage funksiyası main funksiyasından çağırıldığına görə çağırılan funksiyadır. Baş mötərizə onu göstərir ki, bu funksiya ilə heç bir qiymət ötürülmür. Proqramın işləmə qaydası aşağıdakı kimidir:
icra prosesi main funksiyası ilə başlayır;
sonra main funksiyasının birinci operatoru- printmessage() funksiyası çağırılır;
bundan sonra icraetmə printmessage funksiyasına yönəlir, onun birinci operatoru yerinə yetirilməyə başlayır və “Hello World” məlumatı ekrana çıxarılır.
printmessage funksiyasının işi sona çatdıqdan sonra proqram yenidən main funksiyasına, növbəti yerinə yetirilməyən və proqramın sonuncu operatoru olan return 0 – operatoruna qoşulur.
6.4. Prototipin yaradılması
Proqramın icrası main funksiyası ilə başladığından, onda məntiqi olaraq belə nəticəyə gəlmək olar ki, main funksiyası printmessage funksiyasından əvvəldə yerləşməlidir.Yəni,
#include <………..>
using namespace std;
int main()
{
printmessage();
return 0;
}
void printmessage (void)
{
cout <<”hello world”;
}
Lakin belə kod kompilyasiya olunmayacaq, printmessage() sətri işıqlanacaq və “undeclared identifier” səhvi haqqında məlumat veriləcək.
Bu səhvin səbəbi ondan ibarətdir ki, kompilyator kodu yuxarıdan aşağıya keçərkən funksiyanın çağrılmasını görərək onun adını, qayıtma tipini və parametrlərini artıq bilməlidir. Lakin printmessage funksiyası main funksiyasından əvvəl təyin olunduqda isə, kompilyator main funksiyasında printmessage() müraciətini tapır, lakin onun haqqında hələlik heç nə bilmir: nə onun adını, nə qaytarılan qiymətin tipini, nə parametrləri.
Bu problemin həlli – bütün funksiyaların təyininin main funksiyasına qədər olmasından ibarətdir. Düzdür, bu halda proqram daha az oxunaqlı olacaq. Qeyd etmək lazımdır ki, funksiyaların yerləşmə ardıcıllığından asılı olmayaraq proqramın işi həmişə main funksiyası ilə başlayır. Funksiyaların sayı çox olduqda isə main funksiyası onları bir- birinin ardınca çağırır. Mürəkkəb proqramlarda, yəni bir funksiya digər bir funksiyanı, o isə başqa bir funksiyanı və s. çağırdıqda funksiyaların təyin olunma ardıcıllığında səhv olmaması üçün main-dən başqa bütün funksiyaların prototipinin yaradılması zəruridir. Aşağıdakı proqramda printmessage() funksiyası üçün prototipin necə yaradılması göstərilir:
# include <inter>
using namespace std;
void printmessage (void);// bu prototipdir
int main()
{
printmessage();
return 0;
}
void printmessage (void)
{
cout <<”hello world”;
}
Beləliklə, prototip bütün funksiyaların təyinindən yüksəkdə dayanır və kompilyator kodu yuxarıdan aşağıya keçərkən hər bir funksiyanın qarşısında dəqiq prototip görür. Onu da qeyd edək ki, prototip funksiyasının başlığına oxşayır, əsas fərq ondadır ki, o operatordur və ondan sonra həmişə nöqtə vergül yazılır.