Funksiyalar

1 Funksiyalarni yaratish va chaqirish

Funksiya nima?

Funksiya — bu C dasturlash tilida alohida vazifani bajarish uchun yozilgan kod blokidir. Har bir funksiya o'ziga xos nomga ega bo'lib, u chaqirilganida o'z ichidagi kodlarni bajaradi. Funksiyalar yordamida kodni qayta ishlatish, modular tuzilishni saqlash va kodni tushunarli qilib yozish imkoniyati bo‘ladi.

Funksiya quyidagi qismlardan iborat:

  1. Funksiya nomi — chaqirilganda funksiyani aniqlash uchun ishlatiladigan nom.

  2. Return turi (return_type) — funksiya bajarilgandan keyin qanday turdagi qiymat qaytarishini belgilaydi (masalan, butun son (int), haqiqiy son (float), belgi (char), va boshqalar).

  3. Parametrlar ro'yxati (parameters) — funksiyaga uzatiladigan argumentlar ro'yxati. Agar parametrlar bo'lmasa, bo'sh qavs ishlatiladi ().

  4. Funksiya tanasi (function body) — funksiyaning bajariladigan kodlari joylashgan qism.

Funksiya tuzilishi va yaratish:

return_type funksiya_nomi(parametrlar) {
    // Funksiya tanasi
    return qaytariladigan_qiymat;  // Funksiya natijasini qaytarish (agar mavjud bo'lsa)
}

Misol: Oddiy funksiya yaratish va chaqirish

#include <stdio.h>

// Funksiya tanasi
void salom_ber() {  // void - funksiya hech narsa qaytarmaydi
    printf("Salom, dunyo!\n");
}

int main() {
    // Funksiyani chaqirish
    salom_ber();  // Bu joyda funksiya chaqirildi va o'z tanasidagi kod bajarildi
    return 0;
}

Tushuntirish:

  • Funksiya tanasisalom_ber() funksiyasi hech qanday qiymat qaytarmaydi (void), faqat ekranga "Salom, dunyo!" xabarini chiqaradi.

  • Funksiya chaqirilishimain() funksiyasi ichida salom_ber() nomi bilan chaqiriladi va funksiyadagi kodlar ishlaydi.

Yana bir misol: Funksiyaga parametrlar berish

Funksiya parametrlar qabul qilib, o‘sha parametrlar bilan amallar bajarishi mumkin.

#include <stdio.h>

// Funksiya tanasi
void ism_ber(char ism[]) {
    printf("Salom, %s!\n", ism);
}

int main() {
    // Funksiyani chaqirish
    ism_ber("Diyor");  // Funksiya "Diyor" ismini qabul qilib, ekranga chiqaradi
    return 0;
}

Tushuntirish:

  • Funksiya ism_ber() o'z ichiga qator (array) turidagi ism[] parametrini qabul qiladi va ekranga foydalanuvchining ismini chiqaradi.

  • main() funksiyasida ism_ber("Diyor") chaqirilgan bo'lib, bu orqali "Diyor" string qiymat uzatiladi.

2 Funksiya prototiplari

Funksiya prototipi nima?

Funksiya prototipi — bu kompilyatorga funksiyaning qanday ishlashi haqida ma'lumot beruvchi deklaratsiya. Prototip yordamida kompilyator funksiyaning parametrlarini va qaytaradigan qiymat turini oldindan bilib oladi. Funksiya prototipi funksiya chaqirilishidan oldin yoziladi, va u funksiya tanasi oldidan joylashgan bo‘ladi.

Funksiya prototipini e'lon qilish:

return_type funksiya_nomi(parametrlar);
  • return_type — funksiya qaytaradigan qiymat turi.

  • funksiya_nomi — funksiyani chaqirishda foydalaniladigan nom.

  • parametrlar — funksiyaga uzatiladigan ma'lumotlar ro'yxati.

Misol: Funksiya prototipi bilan funksiya yaratish

#include <stdio.h>

// Funksiya prototipi
int yigindi(int a, int b);

int main() {
    int natija = yigindi(10, 20);  // Funksiya chaqirilmoqda
    printf("Yig'indisi: %d\n", natija);
    return 0;
}

// Funksiya tanasi
int yigindi(int a, int b) {
    return a + b;  // Ikkita sonning yig'indisini qaytaradi
}

Tushuntirish:

  • Prototip: int yigindi(int a, int b); — bu funksiya ikkita butun sonni qabul qilib, natijada butun sonni qaytarishini bildiradi.

  • Funksiya chaqirilishi: main() funksiyasida yigindi(10, 20) chaqirilib, natijada ikki sonning yig'indisi qaytariladi va ekranga chiqariladi.

3 Return turlari va parametrlar

Return turlari

C dasturlash tilida funksiya natijada ma'lum bir qiymatni qaytarishi mumkin. Bu qiymatni return operatori bilan qaytaramiz. Qaysi turdagi qiymatni qaytarishini return turi belgilaydi.

Eng ko'p ishlatiladigan return turlari:

  1. int — butun sonlarni qaytaradi.

  2. float va double — o‘nlik sonlarni qaytaradi.

  3. char — bitta belgi (harf) qaytaradi.

  4. void — hech qanday qiymat qaytarmaydi.

Misol: Funksiya return turi bilan

#include <stdio.h>

// Funksiya prototipi
int kvadrat(int n);

int main() {
    int natija = kvadrat(5);  // Funksiya chaqirilmoqda
    printf("5 ning kvadrati: %d\n", natija);
    return 0;
}

// Funksiya tanasi
int kvadrat(int n) {
    return n * n;  // Sonning kvadratini hisoblab qaytaradi
}

Tushuntirish:

  • Return turi: int kvadrat(int n) funksiyasi butun son (int) qiymatini qaytaradi. Bu holda funksiya n sonining kvadratini hisoblab qaytaradi.

Funksiya parametrlari

Funksiya parametrlar qabul qilib, o'sha parametrlar orqali amallarni bajaradi. Funksiya chaqirilganda parametrlar qiymati funksiyaga uzatiladi.

Misol: Parametrlar bilan funksiya

#include <stdio.h>

// Funksiya prototipi
int yigindi(int a, int b);

int main() {
    int x = 10, y = 15;
    printf("Yig'indisi: %d\n", yigindi(x, y));  // Funksiya chaqirilmoqda
    return 0;
}

// Funksiya tanasi
int yigindi(int a, int b) {
    return a + b;  // Ikkita parametrni qabul qilib, ularning yig'indisini qaytaradi
}

Tushuntirish:

  • Funksiya ikkita parametrni (a va b) qabul qiladi va ularning yig'indisini qaytaradi.

4 Void va Return funksiyalar

Void funksiyalar

Void turi hech qanday qiymat qaytarmaydigan funksiyalar uchun ishlatiladi. Void funksiyalar faqat amallarni bajaradi, lekin natijani qaytarib bermaydi. Ko'pincha ekranga ma'lumot chiqarish yoki faylga yozish kabi operatsiyalar uchun ishlatiladi.

Misol: Void funksiyalar

#include <stdio.h>

// Void funksiyasi
void salom_ber() {
    printf("Salom, dunyo!\n");
}

int main() {
    salom_ber();  // Funksiya chaqirildi, hech narsa qaytarmaydi
    return 0;
}

Tushuntirish:

  • Bu yerda salom_ber() funksiyasi hech narsa qaytarmaydi (void), faqat ekranga "Salom, dunyo!" degan xabarni chiqaradi.

Return qiluvchi funksiyalar

Return qiluvchi funksiyalar natijada ma'lum bir qiymatni qaytaradi. Funksiya natijasini chaqirgan joyga qaytarish uchun return operatori ishlatiladi.

Misol: Return qiluvchi funksiyalar

#include <stdio.h>

// Return qiluvchi funksiya
int kopaytirish(int a, int b) {
    return a * b;  // Ikkita sonning ko'paytmasini qaytaradi
}

int main() {
    int natija = kopaytirish(6, 7);  // Funksiyani chaqirib, natijasini olamiz
    printf("Natija: %d\n", natija);  // Ko'paytma ekranga chiqariladi
    return 0;
}

Tushuntirish:

  • kopaytirish() funksiyasi ikkita butun sonni qabul qilib, ularning ko'paytmasini qaytaradi.

5 GCC bilan funksiyalarni sinovdan o'tkazish

Funksiyalarni sinovdan o'tkazish va kompilyatsiya qilish uchun GCC (GNU Compiler Collection) kompilyatoridan foydalaniladi. C dasturini yozib bo'lgach, uni kompilyatsiya qilish kerak bo'ladi.

Dastur kodini faylga saqlash

Misol uchun, yuqoridagi kopaytirish funksiyasi kodini faylga saqlang:

  • Fayl nomi: functions.c

GCC bilan kompilyatsiya qilish

Terminal yoki buyruq satrida quyidagi buyruqni kiriting:

gcc functions.c -o functions
  • gcc — GCC kompilyatorini chaqiradi.

  • functions.c — yozgan faylingizning nomi.

  • -o functions — kompilyatsiya qilingan bajariladigan fayl nomini belgilaydi.

Dastur bajarilishi

Kompilyatsiya tugagandan so'ng, dasturni ishga tushirish uchun quyidagi buyruqni kiriting:

./functions

Bu buyruq dasturingizni bajaradi va natijalarni ekranga chiqaradi.

6. Ko'p funksiyali dasturlarni kompilyatsiya qilish

Bir nechta funksiyalar bilan ishlaydigan dasturlarni ham GCC orqali kompilyatsiya qilish mumkin. Quyidagi misolda bir nechta funksiya yaratilgan va ular birgalikda ishlaydi:

Misol: Ko'p funksiyali dastur

#include <stdio.h>

// Funksiya prototiplari
int yigindi(int a, int b);
int ayirma(int a, int b);
int kopaytirish(int a, int b);

int main() {
    int x = 10, y = 5;

    printf("Yig'indisi: %d\n", yigindi(x, y));
    printf("Ayirmasi: %d\n", ayirma(x, y));
    printf("Ko'paytmasi: %d\n", kopaytirish(x, y));

    return 0;
}

// Funksiya tanalari
int yigindi(int a, int b) {
    return a + b;
}

int ayirma(int a, int b) {
    return a - b;
}

int kopaytirish(int a, int b) {
    return a * b;
}

Kompilyatsiya qilish

Yuqoridagi dastur faylga functions.c nomi bilan saqlanadi, keyin quyidagi buyruq orqali kompilyatsiya qilinadi:

gcc functions.c -o functions

Kompilyatsiyalangan faylni ishga tushirish uchun:

./functions

Natija:

Yig'indisi: 15
Ayirmasi: 5
Ko'paytmasi: 50

Last updated