Birinchi dastur — Hello World

~10 daq · C tili · Asoslar

Nima uchun "Hello World"?

1978-yilda Kernighan va Ritchie C tilini o'rgatuvchi kitob yozishdi. Birinchi misol uchun oddiy narsa kerak edi — ekranga biror narsa chiqarsin. Ular "Hello, World!" deb yozishdi. Shundan beri bu an'anaga aylandi.

Bugun siz ham o'sha an'anani davom ettirasiz. Lekin biz faqat kodni ko'chirmaymiz — har bir belgi nima uchun kerakligini tushunib yozamiz.


Kod — to'liq ko'rinish

Avval to'liq kodni ko'ring. Keyin birma-bir tahlil qilamiz:

#include <stdio.h>

int main() {
    printf("Salom, Dunyo!\n");
    return 0;
}

Natija:

Salom, Dunyo!

Atigi 6 qator. Lekin har bir qatorda muhim ma'no bor. Birma-bir tushunamiz.


1-qator — #include <stdio.h>

Bu nima?

#include — "shu faylni mening kodimga qo'sh" degani. stdio.h — Standard Input/Output headerining qisqartmasi. Ya'ni: standart kirish/chiqish kutubxonasi.

Nima uchun kerak?

Siz printf funksiyasini ishlatmoqchisiz. Lekin printf C tilining o'zida yo'q — u alohida kutubxonada. stdio.h ni ulasangiz — printf, scanf va boshqa kirish/chiqish funksiyalari ishlay boshlaydi.

Aniq taqqoslash

Tasavvur qiling: siz oshpaz sifatida ishlayapsiz. Pishirish uchun asboblar kerak — pichoq, qozon, qoshiq. Bu asboblar oshxonada bor, lekin siz uni chaqirishingiz kerak.

#include <stdio.h>   // oshxona asboblarini chaqirdim
                     // endi printf ishlatishim mumkin

< > va " " farqi

#include <stdio.h>     // tizim kutubxonasi — GCC o'zi topadi
#include "mening.h"    // sizning o'z faylingiz — papkadan qidiradi

Hozircha faqat < > ishlatamiz.

💡 Eslatma: .h — "header file" degani. Bu fayllar funksiyalarning faqat ta'rifini saqlaydi, kodni emas. Haqiqiy kod alohida .c faylda.


2-qator — Bo'sh qator

Bu qator hech narsa qilmaydi. Lekin muhim — kod o'qilishi uchun. Professional dasturchilar doim bo'limlar orasiga bo'sh qator qo'yadi. Kompyuter ko'rmaydi, inson ko'radi.


3-qator — int main() {

Bu nima?

Bu dasturning bosh eshigi. Har qanday C dasturi main funksiyadan boshlanadi. Siz 1000 ta funksiya yozishingiz mumkin — lekin kompyuter har doim main dan boshlaydi.

Har bir so'zni tahlil qilaylik

int — bu funksiya integer (butun son) qaytaradi. main ishlashini tugatganda return 0 deydi — o'sha 0 shu int.

main — bu nom maxsus. O'zingiz xohlagan nom qo'ya olmaysiz. Bu C tili bilan "kelishuv" — dastur shu nomdan boshlanadi.

() — qavslar parametrlar uchun. Hozircha bo'sh. Keyinchalik argc, argv o'rganamiz.

{ — funksiya tanasi boshlanadi. Hamma ish shu figurali qavs ichida bo'ladi.

💡 Qoida: Har bir { ning juft } i bo'lishi kerak. Ochilgan qavs yopilmasa — kompilyator xato beradi.


4-qator — printf("Salom, Dunyo!\n");

Bu qator eng ko'p ish qiladi.

printf nima?

print + f = print formatted — formatlangan chiqarish. Bu stdio.h dan kelgan funksiya. Ekranga matn chiqaradi.

" " ichidagi matn

Qo'shtirnoq ichidagi hamma narsa string (satr) deyiladi. Siz nima yozsangiz — o'sha ekranga chiqadi.

printf("Salom!");        // → Salom!
printf("1 + 1 = 2");     // → 1 + 1 = 2
printf("Foundation");    // → Foundation

\n — bu nima?

\n — newline (yangi qator) belgisi. Ko'rinmaydi, lekin ishlaydi. Kursor keyingi qatorga o'tadi.

printf("Birinchi\n");
printf("Ikkinchi\n");

Natija:

Birinchi
Ikkinchi

\n bo'lmasa nima bo'ladi?

printf("Birinchi");
printf("Ikkinchi");

Natija:

BirinchiIkkinchi

Hamma narsa bir qatorda yopishib chiqadi!

Boshqa escape belgilar

Belgi Nomi Nima qiladi
\n newline Yangi qator
\t tab Gorizontal bo'sh joy (tab)
\\ backslash \ belgisini chiqaradi
\" quote " belgisini chiqaradi
printf("Ism:\tAli\n");
printf("Yoshingiz:\t20\n");

Natija:

Ism:        Ali
Yoshingiz:  20

; — nuqta-vergul

Har bir operator (buyruq) nuqta-vergul bilan tugaydi. Bu C tilidagi qoida. Unutsangiz — kompilyator xato beradi.

printf("Salom\n")    // ← XATO! ; yo'q
printf("Salom\n");   // ← TO'G'RI

⚠️ Eng ko'p uchraydigan xato: nuqta-vergulni unutish. Agar kod kompilyatsiya bo'lmasa — avval ; ni tekshiring.


5-qator — return 0;

Bu nima?

main funksiyasi tugaganda operatsion tizimga xabar yuboradi. 0 degani — "hamma narsa yaxshi, xato yo'q".

Qaytish qiymatlari

Qiymat Ma'nosi
0 Muvaffaqiyatli tugadi
1 Xato bilan tugadi
-1 Boshqacha xato

Hozircha doim return 0 yozamiz.


Hammasi birgalikda

#include <stdio.h>        // stdio kutubxonasini ul

int main() {              // dastur shu yerdan boshlanadi
    printf("Salom!\n");   // ekranga chiqar, keyingi qatorga o't
    return 0;             // OS ga: "yaxshi tugadi"
}                         // main funksiyasi tugadi

Kompilyatsiya qadamlari — ichida nima bo'ladi?

Siz gcc hello.c -o hello deb yozsangiz — aslida 4 ta bosqich bo'ladi:

Bosqich Kirish Chiqish Nima bo'ladi
Preprocessing hello.c hello.i #include o'rniga fayl tarkibi qo'yiladi
Compilation hello.i hello.s C kodi Assembly ga aylanadi
Assembly hello.s hello.o Assembly machine code ga aylanadi
Linking hello.o + lib hello Kutubxona bilan birlashadi

💡 Bularni hozir yod olmang. Shunchaki tushuning: oddiy gcc buyrug'i aslida 4 ta ishni qiladi.


Keng tarqalgan xatolar

Xato 1 — stdio.h unutilgan

int main() {
    printf("Salom\n");   // XATO!
    return 0;
}

Xato xabar:

warning: implicit declaration of function 'printf'

Yechim: #include <stdio.h> qo'shing.

Xato 2 — Nuqta-vergul yo'q

int main() {
    printf("Salom\n")   // XATO! ; yo'q
    return 0;
}

Xato xabar:

error: expected ';' before 'return'

Xato 3 — Qavs yopilmagan

int main() {
    printf("Salom\n");
    return 0;
           // XATO! } yo'q

Xato xabar:

error: expected '}' at end of input

✅ Maslahat: Xato xabarini o'qing. GCC aniq aytadi — qaysi qatorda, qanday xato. Ko'pchilik xato xabarni o'qimay qidiradi — bu vaqt yo'qotish.


Tajriba qiling

#include <stdio.h>

int main() {
    printf("Mening ismim Ali\n");
    printf("Men dasturchi bo'laman\n");
    printf("C tilini o'rganayapman\n");
    return 0;
}

Natija:

Mening ismim Ali
Men dasturchi bo'laman
C tilini o'rganayapman

Ismingizni yozib ko'ring. Xohlagan matnni chiqaring. Bu bosqichda eng muhim narsa — qo'rqmasdan sinash.


Mashqlar

✏️ Mashq 1 — O'zingizni tanishtiring

Ekranga quyidagilarni chiqaring:

Ism: [sizning ismingiz]
Yosh: [yoshingiz]
Maqsad: C dasturchi bo'lish

\t dan foydalaning — chiroyli ko'rinsin.

✏️ Mashq 2 — Sinab ko'ring

\n ni o'chirib nima bo'lishini ko'ring. Keyin ikkita \n qo'ying — qanday ko'rinadi? Kuzatganingizni tushunishga harakat qiling.


Xulosa

Element Nima qiladi
#include <stdio.h> printf ni ishlatish uchun kutubxona ulaydi
int main() Dastur boshlanish nuqtasi
printf("...") Ekranga matn chiqaradi
\n Yangi qatorga o'tadi
return 0 OS ga "yaxshi tugadi" deydi
; Har bir buyruq shu bilan tugaydi
{ } Funksiya tanasini belgilaydi

Keyingi dars

Ekranga matn chiqarishni o'rgandik. Endi o'zgaruvchilar — xotirada ma'lumot saqlash.

4-dars: O'zgaruvchilar va ma'lumot turlari