18. C dasturining tuzilishi

Biz shu paytgacha ko‘plab C dasturlarini yozdik.

Masalan:

#include <stdio.h>

int main() {
    printf("Salom, dunyo!");

    return 0;
}

Endi C dasturining qismlari qanday joylashishini tartibli ko‘rib chiqamiz.


Oddiy C dasturi

C dasturining eng oddiy ko‘rinishi:

#include <stdio.h>

int main() {
    printf("Salom!");

    return 0;
}

Bu dastur bir nechta asosiy qismdan iborat.


#include

Birinchi qism:

#include <stdio.h>

Bu kerakli kutubxonani dasturga qo‘shadi.

Masalan, printf() dan foydalanish uchun:

#include <stdio.h>

kerak bo‘ladi.


main() funksiyasi

C dasturining boshlanish nuqtasi:

main()

funksiyasidir.

Masalan:

int main() {
    printf("Salom!");
    return 0;
}

Dastur ishga tushganda main() funksiyasi bajariladi.

Shuning uchun har bir oddiy C dasturida main() juda muhim.


{ } qavslar

Funksiya ichidagi kod:

{
    ...
}

qavslar orasida yoziladi.

Masalan:

int main() {
    printf("Salom");
    return 0;
}

Bu yerda main() funksiyasining ichida ikkita buyruq bor:

printf("Salom");

va:

return 0;

Buyruqlar

C tilida dastur turli buyruqlardan tashkil topadi.

Masalan:

int yosh = 18;

printf("%d", yosh);

return 0;

Ko‘pgina buyruqlar ; bilan tugaydi.


Izohlar

Dastur kodiga tushuntirish yozish uchun izohlardan foydalanamiz.

Bir qatorli izoh:

// Bu izoh

Masalan:

int yosh = 18; // Yosh

Izoh dastur tomonidan bajarilmaydi.


Ko‘p qatorli izoh

Bir nechta qator uchun:

/*
    Bu ko‘p qatorli
    izoh.
*/

Masalan:

/*
    Dastur foydalanuvchining
    yoshini chiqaradi.
*/

printf("%d", yosh);

Izohlar boshqa dasturchilarga kodni tushunishga yordam beradi.


O‘zgaruvchilarni tartibli yozish

Masalan, quyidagi kod ishlaydi:

int main() {
    int a = 10;
    printf("%d", a);
    int b = 20;
    printf("%d", b);

    return 0;
}

Lekin katta dasturlarda kodni tartibli yozish yaxshi.

Masalan:

int main() {
    int a = 10;
    int b = 20;

    printf("%d\n", a);
    printf("%d\n", b);

    return 0;
}

Bu kodni o‘qish osonroq.


Funksiyalardan foydalanish

Dastur kattalashganda hamma kodni main() ichiga yozish yaxshi fikr emas.

Masalan:

#include <stdio.h>

void salom() {
    printf("Salom!\n");
}

int main() {
    salom();

    return 0;
}

Bu yerda salom() alohida funksiya.

main() esa uni chaqiradi.


Nima uchun funksiyalar kerak?

Tasavvur qiling, dasturimizda 500 qator kod bor.

Agar hammasi main() ichida bo‘lsa, kodni tushunish qiyinlashadi.

Funksiyalar yordamida kodni kichik qismlarga ajratish mumkin.

Masalan:

hisobla()
chiqar()
saqla()
tekshir()

Har bir funksiya o‘z vazifasini bajaradi.


Oddiy funksiya

Masalan:

int qosh(int a, int b) {
    return a + b;
}

Keyin:

int main() {
    int natija = qosh(10, 20);

    printf("%d", natija);

    return 0;
}

Natija:

30

Bu yerda main() faqat kerakli funksiyani chaqirmoqda.


Funksiya prototipi

Ba'zan funksiya main() dan keyin yoziladi.

Masalan:

#include <stdio.h>

int qosh(int a, int b);

int main() {
    printf("%d", qosh(10, 20));

    return 0;
}

int qosh(int a, int b) {
    return a + b;
}

Bu yerda:

int qosh(int a, int b);

funksiya prototipi deyiladi.

U kompilyatorga qosh() funksiyasi mavjudligini oldindan bildiradi.


Header fayllar

Katta C dasturlarida barcha kodni bitta faylda saqlash shart emas.

Masalan:

main.c
hisoblash.c
hisoblash.h

bo‘lishi mumkin.

.c fayllarda odatda funksiyalarning kodi bo‘ladi.

.h fayllarda esa funksiyalar va boshqa ma'lumotlarning e'lonlari bo‘lishi mumkin.

Hozircha buni chuqur o‘rganish shart emas.

Asosiy tushuncha:

Katta dasturlarni bir nechta faylga ajratish mumkin.


Yaxshi kod qanday bo‘ladi?

Yaxshi kod:

  • o‘qish oson bo‘ladi;
  • tartibli bo‘ladi;
  • tushunarli nomlardan foydalanadi;
  • kerak bo‘lsa izohlar yoziladi;
  • katta vazifalar kichik funksiyalarga ajratiladi.

Masalan:

int x = 10;
int y = 20;

ishlaydi.

Lekin:

int birinchi_son = 10;
int ikkinchi_son = 20;

ko‘pincha tushunarliroq.


Nomlarni tushunarli tanlash

Masalan:

int a = 18;

ishlashi mumkin.

Lekin:

int yosh = 18;

tushunarliroq.

Yoki:

int n = 5;

o‘rniga:

int talabalar_soni = 5;

deb yozish kodni o‘qishni osonlashtiradi.


Bo‘sh joylardan foydalanish

Kodimizni o‘qish oson bo‘lishi uchun bo‘sh joylardan foydalanamiz.

Masalan:

int main() {
    int yosh = 18;

    if (yosh >= 18) {
        printf("Voyaga yetgan");
    }

    return 0;
}

Kodning ichki qismlari biroz o‘ngga surilgan.

Bunga indentation deyiladi.


Yomon va yaxshi ko‘rinish

Yomonroq:

int main(){int yosh=18;if(yosh>=18){printf("Voyaga yetgan");}return 0;}

Bu kod ishlashi mumkin, lekin o‘qish qiyin.

Yaxshiroq:

int main() {
    int yosh = 18;

    if (yosh >= 18) {
        printf("Voyaga yetgan");
    }

    return 0;
}

Kod bir xil vazifani bajaradi.

Lekin ikkinchi variantni tushunish ancha oson.


C dasturining oddiy tartibi

Boshlang‘ich dasturlar uchun quyidagi tartib juda qulay:

#include <kutubxona>

// kerak bo‘lsa funksiyalar

int main() {

    // o‘zgaruvchilar

    // dastur kodi

    return 0;
}

Masalan:

#include <stdio.h>

int main() {
    int yosh = 18;

    printf("Yosh: %d", yosh);

    return 0;
}

Kichik loyiha misoli

Keling, oddiy hisoblagich yaratamiz:

#include <stdio.h>

int qosh(int a, int b) {
    return a + b;
}

int main() {
    int a = 10;
    int b = 20;

    int natija = qosh(a, b);

    printf("Natija: %d", natija);

    return 0;
}

Natija:

Natija: 30

Bu dasturda:

#include

kutubxonani qo‘shadi.

qosh()

ikki sonni qo‘shadi.

main()

dastur ishini boshlaydi.

printf()

natijani ekranga chiqaradi.


Amaliy mashqlar

1-mashq

main() ichida ismingizni saqlaydigan o‘zgaruvchi yarating va uni ekranga chiqaring.


2-mashq

Ikki sonni qo‘shadigan:

qosh()

funksiyasini yarating.

Masalan:

qosh(5, 7)

natijasi:

12

bo‘lsin.


3-mashq

Ikki sonni ko‘paytiradigan:

kopaytir()

funksiyasini yarating.


4-mashq

Dasturingizga kamida ikkita izoh yozing.

Masalan:

// Foydalanuvchining yoshi
int yosh = 18;

5-mashq

Quyidagi dasturni tartibli qilib yozing:

#include <stdio.h>
int main(){int a=10;int b=20;printf("%d",a+b);return 0;}

Kodning ishlashini o‘zgartirmang, faqat uni o‘qish oson bo‘ladigan qilib yozing.


Muhim narsalarni eslab qoling

#include kutubxonani qo‘shadi.

main() dastur boshlanadigan asosiy funksiyadir.

{ } kod bloklarini belgilaydi.

; ko‘plab buyruqlarning oxirida yoziladi.

// bir qatorli izoh uchun ishlatiladi.

/* ... */ ko‘p qatorli izoh uchun ishlatiladi.

Funksiyalar katta dasturni kichik qismlarga ajratishga yordam beradi.

Tartibli va tushunarli kod yozish juda muhim.