Funksiyalar

Funksiyalar kodingizni yaxshiroq tuzish uchun ishlatiladi, shunda kodingizni o‘qish va undan foydalanish osonlashadi.

Funksiyalar bir xil koddan ko‘p marta qayta foydalanish imkonini beradi, bu esa katta afzallik.

ULASHISH

Funksiya nima?

Funksiya muayyan vazifani bajaradigan kod bo‘lagini o‘z ichiga oladi.

Funksiya kirish sifatida biror ma’lumot oladi, funksiya ichidagi kod shu ma’lumot bilan biror ish bajaradi, so‘ngra natija qaytariladi.

Funksiya haroratni Farengeytdan Selsiyga qanday o‘girishini ko‘rish uchun quyidagi "Ishga tushirish" tugmasini bosing.

{{tmpMov}} function code {{tmpVal}} °F input °C return

Quyida convertToCelsius funksiyasining Python kodi qanday ko‘rinishi keltirilgan:

def Defines the function convertToCelsius( Function name fahrenheit): Input celsius = (fahrenheit - 32) * 5 / 9 return Code inside function celsius Return value

Yuqoridagi funksiya kirish sifatida Farengeytdagi haroratni oladi, uni Selsiyga o‘giradi va Selsiydagi qiymatni natija sifatida qaytaradi.

Eslatma: Funksiyalar turli shakl va ko‘rinishda bo‘lishi mumkin. Masalan, kirish qiymati va qaytarish ixtiyoriy, lekin bu yerda tushuntirilgan funksiyalar ular odatda qanday ko‘rinishini va biz odatda ular haqida qanday tasavvur qilishimizni aks ettiradi.



Funksiyadan qachon foydalanish kerak?

Agar dasturingizning biror qismi muayyan vazifani bajarsa, u uchun funksiya yaratishingiz kerak.

Ayniqsa, o‘sha kodni bir necha marta va dasturingizning turli qismlaridan ishga tushirish kerak bo‘lsa, funksiya yaratish juda foydali.


Funksiya yaratish

Funksiyadan foydalanishdan oldin uni yaratishingiz kerak.

Funksiya yaratish retsepti:

  1. Funksiyaga nom bering.
  2. Kirish qiymatini aniqlang.
  3. Funksiya ichidagi kodni, ya’ni funksiya bajarishi kerak bo‘lgan ishni yozing.
  4. Qaytariladigan qiymatni aniqlang.

convertToCelsius funksiyamizni yaratish quyidagicha ko‘rinadi:


def convertToCelsius(fahrenheit):
  celsius = (fahrenheit - 32) * 5 / 9
  return celsius
function convertToCelsius(fahrenheit) {
  const celsius = (fahrenheit - 32) * 5 / 9;
  return celsius;
}
public static double convertToCelsius(double fahrenheit) {
  double celsius = (fahrenheit - 32) * 5.0 / 9.0;
  return celsius;
}
double convertToCelsius(double fahrenheit) {
  double celsius = (fahrenheit - 32) * 5.0 / 9.0;
  return celsius;
}

Funksiyamiz convertToCelsius deb nomlangan. U kirish sifatida fahrenheit ni oladi va celsius ni qaytaradi.

Lekin funksiyani ishga tushirish uchun uni chaqirishimiz kerak.


Funksiyani chaqirish

Funksiyani chaqirish uchun uning nomini kirish qiymati bilan birga yozasiz va bu funksiyani ishga tushiradi.

convertToCelsius funksiyasini yaratganimizdan keyin uni chaqirib, 100°F ni Selsiyga quyidagicha o‘girishimiz mumkin:


def convertToCelsius(fahrenheit):
  celsius = (fahrenheit - 32) * 5 / 9
  return celsius

print(convertToCelsius(100))
function convertToCelsius(fahrenheit) {
  const celsius = (fahrenheit - 32) * 5 / 9;
  return celsius;
}

console.log(convertToCelsius(100));
public class Main {
  public static double convertToCelsius(double fahrenheit) {
    double celsius = (fahrenheit - 32) * 5.0 / 9.0;
    return celsius;
  }

  public static void main(String[] args) {
    System.out.println(convertToCelsius(100));
  }
}
double convertToCelsius(double fahrenheit) {
  double celsius = (fahrenheit - 32) * 5.0 / 9.0;
  return celsius;
}

int main() {
  cout << to_string(convertToCelsius(100)) + "\n";

  return 0;
}
Misolni ishga tushirish »

Yuqoridagi misolni ishga tushirsangiz, funksiya chaqiruvi natijasini (qaytarilgan qiymatni) ko‘rish uchun print operatorlaridan foydalanayotganimizni ko‘rasiz.

Tasavvur qiling, bizda Farengeytdan Selsiyga o‘girilishi kerak bo‘lgan ko‘plab harorat o‘lchovlari bor.

Endi convertToCelsius funksiyasini yaratganimiz uchun o‘girmoqchi bo‘lgan har bir Farengeytdagi harorat uchun o‘sha funksiyani qayta-qayta chaqirishimiz kifoya.


def convertToCelsius(fahrenheit):
  celsius = (fahrenheit - 32) * 5 / 9 
  return celsius 

print('Fahrenheit values 0, 20, 40, 60, 80, 100')
print('converted to Celsius:\n')

print(convertToCelsius(0))
print(convertToCelsius(20))
print(convertToCelsius(40))
print(convertToCelsius(60))
print(convertToCelsius(80))
print(convertToCelsius(100))
function convertToCelsius(fahrenheit) {
  const celsius = (fahrenheit - 32) * 5 / 9;
  return celsius;
}

console.log('Fahrenheit values 0, 20, 40, 60, 80, 100');
console.log('converted to Celsius:\n');

console.log(convertToCelsius(0));
console.log(convertToCelsius(20));
console.log(convertToCelsius(40));
console.log(convertToCelsius(60));
console.log(convertToCelsius(80));
console.log(convertToCelsius(100));
public static double convertToCelsius(double fahrenheit) {
  double celsius = (fahrenheit - 32) * 5.0 / 9.0;
  return celsius;
}

public static void main(String[] args) {
  System.out.println("Fahrenheit values 0, 20, 40, 60, 80, 100");
  System.out.println("converted to Celsius:\n");

  System.out.println(convertToCelsius(0));
  System.out.println(convertToCelsius(20));
  System.out.println(convertToCelsius(40));
  System.out.println(convertToCelsius(60));
  System.out.println(convertToCelsius(80));
  System.out.println(convertToCelsius(100));
}
double convertToCelsius(double fahrenheit) {
  double celsius = (fahrenheit - 32) * 5.0 / 9.0;
  return celsius;
}

int main() {
  cout << "Fahrenheit values 0, 20, 40, 60, 80, 100\n";
  cout << "converted to Celsius:\n\n";

  cout
  << to_string(convertToCelsius(0)) + "\n"
  << to_string(convertToCelsius(20)) + "\n"
  << to_string(convertToCelsius(40)) + "\n"
  << to_string(convertToCelsius(60)) + "\n"
  << to_string(convertToCelsius(80)) + "\n"
  << to_string(convertToCelsius(100)) + "\n";

  return 0;
}
Misolni ishga tushirish »

Ko‘rib turganingizdek, funksiyalarni ko‘p marta chaqirish mumkin. Funksiyani yaratib bo‘lgach, u buni qanday bajarishini tushunishga majbur bo‘lmasdan, u nima qilishini bilgan holda undan foydalanishimiz mumkin.


Funksiyalardan foydalanishning afzalliklari

Qancha ko‘p dasturlasangiz va dasturlaringiz qancha uzunlashsa, funksiyalardan foydalanish afzalliklari shunchalik yaqqolroq namoyon bo‘ladi.

Muayyan vazifani bajaradigan kodni funksiyaga o‘rashning afzalliklari ko‘p.

Qayta foydalanish: Kodni bir marta yozing va undan dasturingizning turli qismlarida xohlagancha qayta foydalaning. Bu vaqt va kuchni tejaydi hamda takrorlanishning oldini oladi.

Soddaroq dasturlar: Funksiyalar murakkab muammolarni kichikroq, boshqarish osonroq bo‘laklarga ajratishni osonlashtiradi. Muammoni bunday hal qilish usuli bo‘lib tashla va hukmronlik qil (divide and conquer) deb ataladi.

O‘qilishi oson: Vazifalar uchun nomi funksiya nima qilishini tavsiflaydigan funksiyalar yaratish kodni o‘qib tushunishni osonlashtiradi.

Bu kod qatori nima qilishini tushunish osonroq:

convertToCelsius(60)

bunisiga qaraganda:

(60 - 32) * 5 / 9

Xatolarni tuzatish: Agar funksiya ichidagi kodda biror xato bo‘lsa, kodni faqat bir joyda o‘zgartirishimiz kifoya, shu sababli kodni qo‘llab-quvvatlash osonlashadi. Aksincha, funksiyadan foydalanmasak, xatoli kod ko‘plab joylarda ko‘p marta takrorlangan bo‘lishi mumkin va bu xatoni tuzatishni qiyinlashtiradi.

Hamkorlik: Muammo alohida yozilishi mumkin bo‘lgan funksiyalarga bo‘linganda odamlar birgalikda osonroq ishlay oladi. Funksiyalar dastur qismlari o‘rtasida aniq chegaralar yaratadi.

Testlash: Funksiyalar to‘g‘ri ishlashiga ishonch hosil qilish uchun ularni alohida testlash mumkin.

Kengaytiriluvchanlik: Funksiyalar dasturlaringizni kengaytirish va ularga yangi imkoniyatlar qo‘shishni osonlashtiradi.

Abstraksiya: Murakkab tafsilotlarni yashirish va funksiya qanday ishlashiga emas, balki nima qilishiga e’tibor qaratish imkonini beradi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!