20 / 90

C++ Functions

C++ funksiyalari

Funksiya ma'lum bir vazifani bajaradigan kod blokidir.

Aylana hosil qilish va uni ranglash uchun dastur yaratishimiz kerak deylik. Ushbu muammoni hal qilish uchun ikkita funksiyani yaratishimiz mumkin:

  • aylana chizish funksiyasi
  • doirani rang berish funksiyasi

Murakkab masalani kichikroq bo'laklarga bo'lish bizning dasturimizni tushunishni osonlashtiradi va qayta foydalanishga imkon beradi.

Funksiyaning ikki turi mavjud:

  1. Standart kutubxona funksiyalari: C++ da oldindan belgilangan
  2. Foydalanuvchi tomonidan belgilangan funksiya: foydalanuvchilar tomonidan yaratilgan

Ushbu qo'llanmada biz asosan foydalanuvchi tomonidan belgilangan funksiyalarga e'tibor qaratamiz.

C++ Foydalanuvchi tomonidan belgilangan funksiya

C++ dasturchiga o'z funksiyasini belgilash imkonini beradi.

Foydalanuvchi tomonidan aniqlangan funksiya ma'lum bir vazifani bajarish uchun kodlarni guruhlarga ajratadi va bu kod guruhiga nom (identifikator) beriladi.

Funksiya dasturning istalgan qismidan chaqirilganda, uning barchasi funksiya tanasida aniqlangan kodlarni bajaradi.

C++ funksiyasi deklaratsiyasi

Funksiyani e'lon qilish sintaksisi:

example.cpp
returnType functionName (parameter1, parameter2,...) {
    // funksiya tanasi
}

Mana, funksiya deklaratsiyasiga misol.

example.cpp
// funksiya deklaratsiyasi
void greet() {
    cout << "Hello World";
}

Bu yerga,

-funksiyaning nomi greet() -funksiyaning qaytish turi void

  • bo'sh qavslar uning parametrlari yo'qligini bildiradi -funksiya tanasi {} ichida yozilgan

[!NOTE] We will learn about returnType and parameters later in this tutorial.

Funksiyani chaqirish

Yuqoridagi dasturda biz greet() nomli funksiyani e'lon qildik. greet() funksiyasidan foydalanish uchun biz uni chaqirishimiz kerak.

Yuqoridagi greet() funksiyasini qanday chaqirishimiz mumkin.

example.cpp
int main() {
     
    // funksiyani chaqirish
    greet(); 

}

How Function works in C++

Working of C++ function

1-misol: Matnni ko'rsatish

example.cpp
#include <iostream>
using namespace std;

// funksiyani e'lon qilish
void greet() {
    cout << "Hello there!";
}

int main() {

    // funksiyani chaqirish
    greet();

    return 0;
}

Chiqish

kod
Hello there!

Funksiya parametrlari

Yuqorida aytib o'tilganidek, funksiyani parametrlar (argumentlar) bilan e'lon qilish mumkin. Parametr - bu funksiyani e'lon qilishda uzatiladigan qiymat.

Masalan, quyidagi funksiyani ko'rib chiqaylik:

example.cpp
void printNum(int num) {
    cout << num;
}

Bu erda int o'zgaruvchisi num funksiya parametridir.

Funksiyani chaqirayotganda funksiya parametriga qiymat o'tkazamiz.

example.cpp
int main() {
    int n = 7;
    
    // funksiyani chaqirish
    // n funksiyaga argument sifatida uzatiladi
    printNum(n);
    
    return 0;
}

2-misol: Parametrli funksiya

example.cpp
// matnni chop etish uchun dastur

#include <iostream>
using namespace std;

// raqamni ko'rsatish
void displayNum(int n1, float n2) {
    cout << "The int number is " << n1;
    cout << "The double number is " << n2;
}

int main() {
     
     int num1 = 5;
     double num2 = 5.5;

    // funksiyani chaqirish
    displayNum(num1, num2);

    return 0;
}

Chiqish

kod
The int number is 5
The double number is 5.5

Yuqoridagi dasturda biz bitta int parametri va bitta double parametriga ega funksiyadan foydalandik.

Keyin argument sifatida 1 va 2 raqamlarini beramiz. Bu qiymatlar mos ravishda n1 va n2 funksiya parametrlari tomonidan saqlanadi.

C++ function with parameters

C++ function with parameters

[!NOTE] Funksiyani chaqirishda uzatiladigan argumentlar turi funksiya deklaratsiyasida belgilangan mos parametrlarga mos kelishi kerak.

return operatori

Yuqoridagi dasturlarda biz funksiya deklaratsiyasida void dan foydalanganmiz. Masalan,

example.cpp
void displayNumber() {
    // kod
}

Bu funksiya hech qanday qiymat qaytarmasligini anglatadi.

Funksiyadan qiymatni qaytarish ham mumkin. Buning uchun funksiya deklaratsiyasida funksiyaning returnType ni ko'rsatishimiz kerak.

Keyin funksiyadan qiymat qaytarish uchun return operatoridan foydalanish mumkin.

Masalan,

example.cpp
int add (int a, int b) {
   return (a + b);
}

Bu erda bizda void o'rniga data type int mavjud. Bu funksiya int qiymatini qaytarishini bildiradi.

return (a + b); kodi funksiya qiymati sifatida ikkita parametr yig'indisini qaytaradi.

return operatori funksiya tugaganligini bildiradi. Funksiya ichidagi return dan keyin hech qanday kod bajarilmaydi.

3-misol: Ikki raqam qo'shing

example.cpp
// funksiya yordamida ikkita raqam qo'shish dasturi

#include <iostream>

using namespace std;

// funksiyani e'lon qilish
int add(int a, int b) {
    return (a + b);
}

int main() {

    int sum;
    
    // funksiyani chaqirish va saqlash
    // qaytarilgan qiymat summasi
    sum = add(100, 78);

    cout << "100 + 78 = " << sum << endl;

    return 0;
}

Chiqish

kod
100 + 78 = 178

Yuqoridagi dasturda add() funksiyasi ikkita sonning yig'indisini topish uchun ishlatiladi.

Funksiyani chaqirishda biz ikkita int literalini 100 va 78 dan o'tkazamiz.

Funksiyaning qaytarilgan qiymatini sum o'zgaruvchisida saqlaymiz va keyin uni chop qilamiz.

C++ funksiyasining return operatori bilan ishlashi

Working of C++ Function with return statement

E'tibor bering, sum int tipidagi o'zgaruvchidir. Buning sababi, add() ning qaytish qiymati int turiga tegishli.

Funksiya prototipi

C++ da funksiya deklaratsiyasining kodi funksiya chaqiruvidan oldin bo'lishi kerak. Ammo, agar funksiya chaqiruvidan keyin funksiyani aniqlamoqchi bo'lsak, biz funksiya prototipidan foydalanishimiz kerak. Masalan,

example.cpp
#include <iostream>

using namespace std;
// funksiya prototipi
void add(int, int);

int main() {
    // deklaratsiyadan oldin funksiyani chaqirish.
    add(5, 3);
    return 0;
}

// funksiya ta'rifi
void add(int a, int b) {
    cout << (a + b);
}

Yuqoridagi kodda funksiya prototipi:

example.cpp
void add(int, int);

Bu kompilyatorga funksiya nomi va uning parametrlari haqida ma'lumot beradi. Shuning uchun funksiya aniqlanmasidan oldin funksiyani chaqirish uchun koddan foydalanishimiz mumkin.

Funksiya prototipining sintaksisi:

example.cpp
returnType functionName(dataType1, dataType2, ...);

4-misol: C++ funksiya prototipi

example.cpp
// main() funksiyasidan keyin funksiya ta'rifidan foydalanish
// funksiya prototipi main() dan oldin e'lon qilinadi

#include <iostream>

using namespace std;

// funksiya prototipi
int add(int, int);

int main() {
    int sum;

    // funksiyani chaqirish va saqlash
    // qaytarilgan qiymat summasi
    sum = add(100, 78);

    cout << "100 + 78 = " << sum << endl;

    return 0;
}

// funksiya ta'rifi
int add(int a, int b) {
    return (a + b);
}

Chiqish

kod
100 + 78 = 178

Yuqoridagi dastur 3-misol bilan deyarli bir xil. Yagona farq shundaki, bu yerda funksiya funksiya chaqiruvidan keyin aniqlanadi.

Shuning uchun biz ushbu misolda funksiya prototipidan foydalandik.

Foydalanuvchi tomonidan belgilangan funksiyalardan foydalanishning afzalliklari

  • Funksiyalar kodni qayta foydalanishga imkon beradi. Biz ularni bir marta e'lon qilishimiz va ularni bir necha marta ishlatishimiz mumkin.
  • Funksiyalar dasturni osonlashtiradi, chunki har bir kichik vazifa funksiyaga bo'linadi.
  • Funksiyalar o'qishni oshiradi.

C++ kutubxonasi funksiyalari

Kutubxona funksiyalari C++ dasturlashda o‘rnatilgan funksiyalardir.

Dasturchilar kutubxona funksiyalaridan bevosita funksiyalarni chaqirish orqali foydalanishlari mumkin; funksiyalarni o'zlari yozishlari shart emas.

C++ tilidagi baʼzi bir umumiy kutubxona funksiyalari sqrt() , abs() , isdigit() va boshqalardir.

Kutubxona funksiyalaridan foydalanish uchun biz odatda ushbu kutubxona funksiyalari aniqlangan sarlavha faylini kiritishimiz kerak.

Masalan, sqrt() va abs() kabi matematik funksiyalardan foydalanish uchun biz cmath sarlavha faylini kiritishimiz kerak.

5-misol: Sonning kvadrat ildizini topish uchun C++ dasturi

example.cpp
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double number, squareRoot;
    
    number = 25.0;

    // sqrt() kvadrat ildizni hisoblash uchun kutubxona funksiyasidir
    squareRoot = sqrt(number);

    cout << "Square root of " << number << " = " << squareRoot;

    return 0;
}

Chiqish

kod
Square root of 25 = 5

Bu dasturda sqrt() kutubxona funksiyasi sonning kvadrat ildizini hisoblash uchun ishlatiladi.

sqrt() funksiya deklaratsiyasi cmath sarlavha faylida aniqlangan. Shuning uchun sqrt() funksiyasidan foydalanish uchun #include <cmath> kodidan foydalanishimiz kerak.

Shuningdek o'qing: