Skip to content

7-dars: C tili — tanishuv, Hello World

Dars haqida

Davomiyligi: 90 daqiqa Maqsad: Talaba C tilining tarixini bilishi, compiler o'rnatishi, birinchi Hello World dasturini yozishi va kompilatsiya qilishi kerak.

Terminal, Git va GitHub tayyor — endi haqiqiy dasturlash boshlanadi. Shu darsdan oy oxirigacha C tilida kod yozamiz.

1. C tili nima va nima uchun?

C — 1972-yilda Dennis Ritchie tomonidan Bell Labs'da yaratilgan dasturlash tili. Asosiy maqsad — UNIX operatsion tizimi uchun edi.

C tili tarixi

  • 1972 — yaratildi
  • 1978 — "The C Programming Language" kitobi (K&R)
  • 1989 — ANSI C standarti
  • 1999 — C99
  • 2011 — C11
  • 2017 — C17
  • 2024 — C23

50+ yil — hali ham eng kuchli tillardan biri.

2. C qayerda ishlatiladi?

3. C va boshqa tillar

TilC bilan munosabati
C++C'ning OOP versiyasi
Objective-CApple eski tili
JavaC sintaksisi
JavaScriptC sintaksisi
C#Microsoft, C++'ga o'xshash
GoGoogle, C'ga o'xshash
RustC'ning zamonaviy alternativi
PythonInterpreteri C'da yozilgan

C ni o'rgansangiz — qolgan tillarni tezroq tushunasiz.

4. C va AI yozgan kod

3-oyda Claude Code sizga kod yozib berdi — siz vazifani aytdingiz, AI bajardi. Endi rollar o'zgaradi: o'sha kod tilini o'zingiz o'rganasiz. AI'ga aniq topshiriq berish, natijasini tekshirish va xatosini topish uchun kodni o'qiy olish shart.

3-darsda algoritmni pseudocode va flowchart bilan yozgan edik:

BOSHLASH
    "Salom dunyo!" chiqarilsin
TUGATISH

C'da xuddi shu algoritm:

c
#include <stdio.h>

int main(void) {
    printf("Salom dunyo!\n");
    return 0;
}

Bir xil mantiq — endi kompyuter bevosita tushunadigan qat'iy sintaksisda.

5. C tili xususiyatlari

Compiled vs Interpreted

Ccompiled: kod mashina kodiga aylantiriladi. Python, JavaScriptinterpreted: kod chiziqma-chiziq o'qiladi.

C dasturi kompilyatsiya kerak.

Statically Typed

c
int yosh = 25;       // tur (int) belgilangan
yosh = "Akmal";      // XATO! int o'rniga matn

Python'da:

python
yosh = 25            # tur avtomatik
yosh = "Akmal"       # OK — tur o'zgaradi

C qat'iy, Python erkin.

6. C compiler o'rnatish

macOS

Avtomatik bor. Tekshiring:

bash
$ clang --version
Apple clang version 15.0.0

Agar yo'q bo'lsa:

bash
$ xcode-select --install

Linux (Ubuntu)

bash
$ sudo apt update
$ sudo apt install gcc
$ gcc --version

Windows

3 ta variant:

Variant 1: MinGW

  1. mingw-w64.org'dan yuklab oling
  2. O'rnating
  3. PATH'ga qo'shing
  4. gcc --version

Variant 2: WSL (tavsiya)

  1. PowerShell: wsl --install
  2. Ubuntu o'rnatiladi
  3. Ubuntu terminal'da: sudo apt install gcc

Variant 3: Visual Studio

  • Full IDE, lekin og'ir

Tavsiya

WSL — eng yaxshi tanlov Windows uchun. Linux terminali — Foundation kursi uchun ideal.

7. VS Code va C/C++ extension

  1. VS Code'ni oching
  2. Extensions (chap, chiziqlar bilan kvadrat)
  3. C/C++ qidiring (Microsoft tomonidan)
  4. Install

Endi VS Code'da .c fayllarni chiroyli syntax highlighting bilan ko'rasiz.

8. Birinchi C dasturi: Hello World

hello.c faylini yarating:

c
#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

Tushuntirish

c
#include <stdio.h>

Header fayl qo'shish. stdio.h — Standard Input/Output. printf shu yerda.

c
int main(void) {

main funksiyasi — har C dasturning kirish nuqtasi. int — bu funksiya butun raqam qaytaradi. void — parameter yo'q.

c
    printf("Hello, World!\n");

printf — matn chiqaruvchi. \n — yangi qator (newline).

c
    return 0;

Return 0 — dastur muvaffaqiyatli tugadi. Boshqa raqam — xato.

c
}

Yopish qavsi — funksiya tugadi.

9. Kompilyatsiya va ishga tushirish

bash
$ gcc hello.c -o hello
$ ./hello
Hello, World!

Tushuntirish

  • gcc hello.c — C compiler hello.c faylini kompilyatsiya qiladi
  • -o hello — natija faylni hello deb ataydi
  • ./hello — yaratilgan dasturni ishga tushirish

Windows'da

Windows'da: gcc hello.c -o hello.exe va ./hello.exe yoki .\hello.exe.

WSL'da Linux uslubi.

Compiler turlari

CompilerTizim
gccGNU Compiler, Linux/Windows
clangmacOS standart
MSVCMicrosoft Visual Studio
tccTiny C Compiler

Hammasi C'ni kompilyatsiya qiladi.

10. C dastur tuzilmasi

c
// Preprocessor directive
#include <stdio.h>

// Funksiya
int main(void) {
    // Statement (gap)
    printf("Salom\n");
    
    // Statement
    int yosh = 25;
    
    // Return
    return 0;
}

Asosiy qoidalar

  1. Har statement ; bilan tugaydi
  2. Funksiya {} ichida
  3. Qavslar ochilgan = yopilgan
  4. C — case sensitive: mainMain
  5. Indentatsiya — 4 bo'shliq yoki tab (qoida yo'q, lekin standart)

11. Comment — izohlar

c
// Bitta qatorli izoh

/* Bir nechta
   qatorli
   izoh */

Compiler izohlarni e'tiborga olmaydi — faqat odamlar uchun.

Yaxshi izoh

  • WHY yozing — nima uchun, sababini
  • WHAT o'zi kodda ko'rinadi

Yomon:

c
i = i + 1;  // i ni 1 ga oshirish

Yaxshi:

c
i = i + 1;  // ball oshadi har raund'da

12. printf — chiqarish

c
printf("Salom dunyo!\n");
printf("Mening yoshim: 25\n");
printf("Yashayman Toshkentda\n");

Maxsus belgilar (escape characters)

BelgiMa'no
\nYangi qator
\tTab
\\Backslash
\"Quotation mark
\'Apostrof
\0Null character

Misol:

c
printf("Birinchi qator\nIkkinchi qator\n");
printf("Tab\tbilan\tajratilgan\n");
printf("Quotation: \"Salom\"\n");

13. Bir nechta printf

c
#include <stdio.h>

int main(void) {
    printf("Salom!\n");
    printf("Mening ismim Akmal\n");
    printf("Men 22 yoshdaman\n");
    printf("Toshkentdaman\n");
    return 0;
}

Natija:

Salom!
Mening ismim Akmal
Men 22 yoshdaman
Toshkentdaman

14. C va terminal birga

Terminal'da:

bash
$ mkdir c-asoslari
$ cd c-asoslari
$ touch hello.c
$ nano hello.c
# (kod yozing, Ctrl+O saqlash, Ctrl+X chiqish)
$ gcc hello.c -o hello
$ ./hello
Hello, World!

VS Code'da:

  1. c-asoslari papkani oching
  2. hello.c yarating
  3. Kod yozing va Ctrl+S saqlang
  4. Terminal'ni oching (Ctrl + `)
  5. gcc hello.c -o hello && ./hello

15. Xatolar (errors) bilan tanishuv

Syntax error

c
#include <stdio.h>

int main(void) {
    printf("Salom\n")    // ← ; unutilgan
    return 0;
}

Kompilyatsiya:

hello.c:4:25: error: expected ';' after expression
    printf("Salom\n")
                        ^
                        ;

C xato joyini aniq ko'rsatadi. 4:25 — 4-qator, 25-belgi.

Boshqa keng tarqalgan xatolar

  • expected ';' — vergulli unutgan
  • expected '}' — qavs yopilmagan
  • undeclared identifier — o'zgaruvchi e'lon qilinmagan
  • implicit declaration — funksiya e'lon qilinmagan
  • linker error — header yo'q

Darsdagi topshiriqlar

Topshiriq 1 — Setup

  1. C compiler o'rnatilganini tekshiring:

    bash
    $ gcc --version
    # yoki
    $ clang --version
  2. VS Code'da C/C++ extension o'rnating

  3. Test fayl yarating:

    bash
    $ mkdir ~/c-darslari
    $ cd ~/c-darslari
    $ touch hello.c

Daftarga screenshot.

Topshiriq 2 — Hello World

hello.c — ekranga Hello, World! matnini chiqaruvchi dastur yozing. main funksiyasi va printf dan foydalaning, satr oxiriga \n qo'ying.

Kompilyatsiya va ishga tushirish:

bash
$ gcc hello.c -o hello
$ ./hello

Natijani Drive'ga screenshot bilan saqlang.

Topshiriq 3 — Shaxsiy tanishuv

tanishuv.c yarating va o'zingiz haqida kamida 5 ta jumla chiqaruvchi dastur yozing (ism, yosh, shahar, nima o'rganayotganingiz va h.k.). Har bir jumla alohida printf bilan chiqsin.

Kompilyatsiya va ishga tushirish. Natijani screenshot.

Topshiriq 4 — Escape characters

belgilar.c — quyidagi escape belgilarning har birini ishlatib matn chiqaruvchi dastur yozing:

  • \n — yangi qator
  • \t — tab (ajratilgan matn)
  • \" — qo'shtirnoq belgisi
  • \' — apostrof
  • \\ — backslash (masalan fayl yo'li: C:\Users\...)

Natija qanday ko'rinadi? Daftarga yozing.

Topshiriq 5 — ASCII art

ascii-art.c — bir necha printf yordamida ekranga ASCII art rasm chizing (uy, mushuk, daraxt, yulduzcha yoki o'z ismingiz). Kamida 5-6 qatordan iborat bo'lsin.

Drive'ga: 5-ascii-art.c va screenshot.

Topshiriq 6 — Xato'larni topish

Quyidagi kod 4 ta xatoga ega. Toping va tuzating:

c
#include <stdio.h>

int main(void) {
    printf("Birinchi qator\n")
    printf(Ikkinchi qator\n);
    print("Uchinchi qator\n");
    printf("To'rtinchi qator\n");
    return 0
}

Tuzatilgan versiyani Drive'ga: 6-xatolarni-tuzating.c

Topshiriq 7 — Kompilyatsiya jarayoni

GCC bilan tajriba:

bash
$ gcc hello.c -o hello                 # standart
$ gcc -Wall hello.c -o hello           # warnings'lar ko'rsatish
$ gcc -Wall -Wextra hello.c -o hello   # ko'proq warnings
$ gcc -O2 hello.c -o hello             # optimization
$ gcc -g hello.c -o hello              # debug uchun

Har birini ishlatib ko'ring. Farqi bormi?

Daftarga yozing.

Topshiriq 8 — GitHub'ga yuklang

Hamma 4-oy darslari uchun yangi repo: c-darslari

bash
$ cd ~/c-darslari
$ git init
$ touch README.md
$ echo "# C tili darslari" > README.md
$ echo "Foundation 4-oy" >> README.md
$ git add .
$ git commit -m "feat: initial commit"

GitHub'da yangi repo (Public) → connect:

bash
$ git remote add origin https://github.com/USERNAME/c-darslari.git
$ git branch -M main
$ git push -u origin main

Hamma .c fayllarni qo'shing.

Asosiy tushunchalar (lug'at)

TerminQisqacha izoh
CPast darajadagi dasturlash tili
CompilerKodni mashina kodiga aylantiruvchi
gcc / clangMashhur C kompilatorlari
#includePreprocessor direktivi
stdio.hStandard I/O header
main()Dasturning kirish nuqtasi
printfMatn chiqarish funksiyasi
return 0Muvaffaqiyatli tugash
StatementGap (; bilan tugaydi)
CommentIzoh (// yoki /* */)
Escape character\n, \t va h.k.
Syntax errorSintaksis xatosi
ExecutableBajariladigan fayl
-oOutput fayl nomi
Case sensitiveKatta-kichik harf farqlanadi

Keyingi dars

8-dars: O'zgaruvchilar, turlar va operatorlar →

Master IT o'quv markazi — o'qitish rejasi