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.