Skip to content

1-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.

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 vs Scratch

Scratch'da:

when 🟢 clicked
    say [Salom dunyo!] for 2 secs

C'da:

c
#include <stdio.h>

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

Bir xil natija, lekin C'da tekst kod.

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:

c
#include <stdio.h>

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

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 5+ jumla yozing:

c
#include <stdio.h>

int main(void) {
    printf("Salom! Mening ismim Akmal Karimov.\n");
    printf("Men 22 yoshdaman.\n");
    printf("Toshkentda yashayman.\n");
    printf("Foundation 4-oy talabasiman.\n");
    printf("C tilini o'rganmoqdaman.\n");
    return 0;
}

O'z ma'lumotlaringizni qo'ying.

Kompilyatsiya va ishga tushirish. Natijani screenshot.

Topshiriq 4 — Escape characters

belgilar.c:

c
#include <stdio.h>

int main(void) {
    printf("Birinchi qator\nIkkinchi qator\n");
    printf("Tab\tajratilgan\tmatn\n");
    printf("Quotation: \"Salom dunyo!\"\n");
    printf("Apostrof: it\'s working\n");
    printf("Backslash: C:\\Users\\Akmal\n");
    return 0;
}

Natija qanday ko'rinadi? Daftarga yozing.

Topshiriq 5 — ASCII art

ascii-art.c — kichik ASCII art rasm chizing:

c
#include <stdio.h>

int main(void) {
    printf("    *    \n");
    printf("   ***   \n");
    printf("  *****  \n");
    printf(" ******* \n");
    printf("*********\n");
    printf("    *    \n");
    return 0;
}

(Yulduzcha)

O'zingiz boshqa rasm chizing — uy, mushuk, daraxt, ism.

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

2-dars: O'zgaruvchilar va ma'lumot turlari →

Master IT o'quv markazi — o'qitish rejasi