8. Funksiyalar¶
Oldingi bo‘limda sikllar yordamida bir xil kodni bir necha marta bajarishni o‘rgandik.
Endi dasturimiz kattalashgani sari kodni qanday tartibli saqlashni o‘rganamiz.
Buning uchun funksiyalardan foydalanamiz.
Funksiya nima?¶
Funksiya — ma'lum bir vazifani bajaradigan kodlar to‘plami.
Uni oddiy qilib kichik yordamchi dastur deb tasavvur qilishimiz mumkin.
Masalan, dasturimizda salomlashish vazifasi bo‘lsin.
Buning uchun:
void salom() {
printf("Salom!");
}
funksiyasini yaratishimiz mumkin.
Keyin uni chaqiramiz:
salom();
Natija:
Salom!
Nima uchun funksiyalardan foydalanamiz?¶
Tasavvur qiling, bir xil kodni dasturimizning 10 ta joyida ishlatishimiz kerak.
Agar kodni har safar qayta yozsak, dastur juda uzun bo‘lib ketadi.
Funksiya yordamida esa kodni bir marta yozamiz:
void salom() {
printf("Salom!");
}
Keyin kerakli joyda:
salom();
deb chaqiramiz.
Bu kodimizni:
- qisqaroq;
- tartibliroq;
- tushunarliroq
qiladi.
Oddiy funksiya yaratish¶
Funksiyaning oddiy ko‘rinishi:
void funksiya_nomi() {
// kod
}
Masalan:
void salom() {
printf("Salom!");
}
Bu yerda:
void
funksiya qiymat qaytarmasligini bildiradi.
salom
funksiyaning nomi.
()
funksiya parametrlari yoziladigan joy.
{}
funksiya ichidagi kod.
Funksiyani chaqirish¶
Funksiyani yaratishning o‘zi yetarli emas.
Uni ishlatish uchun chaqirish kerak.
Masalan:
salom();
To‘liq dastur:
#include <stdio.h>
void salom() {
printf("Salom!");
}
int main() {
salom();
return 0;
}
Natija:
Salom!
Funksiyani bir necha marta chaqirish¶
Funksiyani bir necha marta chaqirish mumkin.
#include <stdio.h>
void salom() {
printf("Salom!\n");
}
int main() {
salom();
salom();
salom();
return 0;
}
Natija:
Salom!
Salom!
Salom!
Funksiya bir marta yozildi, lekin uch marta ishlatildi.
Funksiyaga ma'lumot berish¶
Ba'zan funksiya ishlashi uchun unga ma'lumot berishimiz kerak.
Masalan, turli odamlar bilan salomlashish.
Buning uchun parametrdan foydalanamiz.
void salom(char ism[]) {
printf("Salom, %s!\n", ism);
}
Endi funksiyaga ism berishimiz mumkin:
salom("Ali");
Natija:
Salom, Ali!
Yoki:
salom("Vali");
Natija:
Salom, Vali!
Parametr nima?¶
Parametr — funksiyaga beriladigan ma'lumot.
Masalan:
void kvadrat(int son) {
printf("%d", son * son);
}
Bu yerda:
son
parametr hisoblanadi.
Funksiyani chaqirganda unga qiymat beramiz:
kvadrat(5);
Natija:
25
Bir nechta parametr¶
Funksiya bir nechta parametrga ega bo‘lishi mumkin.
Masalan:
void qoshish(int a, int b) {
printf("%d", a + b);
}
Uni:
qoshish(10, 5);
deb chaqiramiz.
Natija:
15
Bu yerda:
a = 10
b = 5
bo‘ladi.
return nima?¶
Ba'zi funksiyalar natija qaytaradi.
Masalan, ikkita sonni qo‘shadigan funksiya yaratamiz.
int qoshish(int a, int b) {
return a + b;
}
Bu funksiya ikkita sonni qo‘shadi va natijani qaytaradi.
Keyin natijani o‘zgaruvchida saqlashimiz mumkin:
int natija = qoshish(10, 5);
Endi:
natija = 15
bo‘ladi.
return bilan to‘liq dastur¶
#include <stdio.h>
int qoshish(int a, int b) {
return a + b;
}
int main() {
int natija = qoshish(10, 5);
printf("%d", natija);
return 0;
}
Natija:
15
void va int¶
Funksiya yaratishda boshida tur yozamiz.
Masalan:
void salom() {
printf("Salom!");
}
Bu funksiya hech qanday qiymat qaytarmaydi.
Ammo:
int qoshish(int a, int b) {
return a + b;
}
bu funksiya int turidagi qiymat qaytaradi.
Hozircha quyidagicha eslab qolish kifoya:
void → qiymat qaytarmaydi
int → butun son qaytaradi
Funksiyadan foydalanish¶
Keling, oddiy kalkulyator funksiyalarini yaratamiz.
#include <stdio.h>
int qoshish(int a, int b) {
return a + b;
}
int ayirish(int a, int b) {
return a - b;
}
int main() {
printf("%d\n", qoshish(10, 5));
printf("%d\n", ayirish(10, 5));
return 0;
}
Natija:
15
5
Bu usul yordamida katta dasturlarni kichik qismlarga bo‘lish mumkin.
Funksiya va sikl¶
Funksiyani sikl bilan birga ham ishlatish mumkin.
Masalan:
#include <stdio.h>
void salom() {
printf("Salom!\n");
}
int main() {
for (int i = 1; i <= 5; i++) {
salom();
}
return 0;
}
Natija:
Salom!
Salom!
Salom!
Salom!
Salom!
Bu yerda for sikli salom() funksiyasini besh marta chaqirdi.
Funksiya va if¶
Funksiya ichida if ishlatish ham mumkin.
Masalan:
#include <stdio.h>
void tekshir(int yosh) {
if (yosh >= 18) {
printf("Voyaga yetgan.");
} else {
printf("Voyaga yetmagan.");
}
}
int main() {
tekshir(20);
return 0;
}
Natija:
Voyaga yetgan.
Funksiya nomini to‘g‘ri tanlash¶
Funksiya nomi uning vazifasini tushuntirib turgani yaxshi.
Masalan:
void salom()
yaxshi nom.
int qoshish(int a, int b)
ham yaxshi nom.
Quyidagi nom esa tushunarsizroq:
void abc()
Shuning uchun funksiyalarga ma'noli nom berishga harakat qiling.
Bir nechta funksiyali dastur¶
Keling, bir nechta funksiyadan foydalanamiz.
#include <stdio.h>
void salom() {
printf("Salom!\n");
}
void xayr() {
printf("Xayr!\n");
}
int main() {
salom();
xayr();
return 0;
}
Natija:
Salom!
Xayr!
Har bir funksiya o‘z vazifasini bajarmoqda.
Funksiyaning umumiy ko‘rinishi¶
Hozircha funksiyani quyidagicha tasavvur qiling:
qaytish_turi funksiya_nomi(parametrlar) {
// kodlar
}
Masalan:
int qoshish(int a, int b) {
return a + b;
}
Bu yerda:
int
→ funksiya qaytaradigan qiymat turi.
qoshish
→ funksiya nomi.
int a, int b
→ parametrlar.
return a + b;
→ qaytariladigan natija.
Funksiyadan foydalanishning foydasi¶
Tasavvur qiling, dasturimizda 500 qator kod bor.
Agar hamma kod bitta joyda bo‘lsa, uni tushunish qiyin bo‘lishi mumkin.
Funksiyalar yordamida uni qismlarga ajratish mumkin:
main()
↓
foydalanuvchini tekshirish()
↓
hisoblash()
↓
natijani chiqarish()
Har bir funksiya alohida vazifani bajaradi.
Shuning uchun katta dasturlarda funksiyalar juda muhim.
Amaliy mashqlar¶
1-mashq¶
salom() nomli funksiya yarating.
U:
Salom, dasturchi!
matnini chiqarsin.
2-mashq¶
Ikki sonni ko‘paytiradigan funksiya yozing.
Masalan:
kopaytirish(5, 4)
natijasi:
20
bo‘lishi kerak.
3-mashq¶
Sonning kvadratini qaytaradigan funksiya yozing.
Masalan:
kvadrat(5)
natijasi:
25
bo‘lishi kerak.
4-mashq¶
Son musbat yoki manfiy ekanini tekshiradigan funksiya yozing.
Masalan:
tekshir(10)
natijasi:
Musbat
bo‘lishi kerak.
5-mashq¶
Quyidagi dastur nima chiqaradi?
#include <stdio.h>
int qoshish(int a, int b) {
return a + b;
}
int main() {
int natija = qoshish(20, 30);
printf("%d", natija);
return 0;
}
Muhim narsalarni eslab qoling¶
Funksiya — ma'lum bir vazifani bajaradigan kodlar to‘plami.
Funksiya yaratish:
void salom() {
printf("Salom!");
}
Funksiyani chaqirish:
salom();
Parametr bilan:
void salom(char ism[]) {
printf("Salom, %s!", ism);
}
Natija qaytarish:
int qoshish(int a, int b) {
return a + b;
}
Funksiyani chaqirish:
int natija = qoshish(10, 5);
Xulosa¶
Funksiyalar dasturimizni kichik va tushunarli qismlarga bo‘lishga yordam beradi.
Masalan:
int qoshish(int a, int b) {
return a + b;
}
Bu funksiya ikkita sonni qabul qiladi va ularning yig‘indisini qaytaradi.
Funksiyalarni yaxshi tushunish juda muhim, chunki keyingi mavzularda ular bilan tez-tez ishlaymiz.