logo

Funksiyaning jarayonlarini o’rganish

Загружено в:

08.08.2023

Скачано:

0

Размер:

40.7958984375 KB
Mavzu:  Funksiyaning jarayonlarini o’rganish.
Reja:
1. Qiymat qaytaradidan funksiya jarayonlarini o’rganish.
2. Qiymat qaytarmaydigan funksiya jarayonlarini o’rganish.
3. Random funksiyasining jarayonlarini o’rganish.
4. Struct ni funksiyalar bilan ishlatilishiga doir misollar. C# dasturlash tilida funksiyalar nimaligini o’rganishdan oldin 
funksiyaning o’zi nima? u bizga nega kerak degan savollarga 
javob topamiz. 
Funksiya nega kerak ? 
Biz biroz yirikroq dastur yozish mobaynida juda ko’p bir xil 
bo’lgan vazifani qayta va qayta yozayotgandek bo’lamiz. Bu 
xuddi kuni bilan paxta terayotgan kishining ishiga o’xshaydi 
qaniydi bitta robot bo’lsayu unga bir marta paxta terishni 
o’rgatib qo’ysak keyin har safar aytganingda paxtani terib 
qo’ysa deb orzu qiladi paxta teruvchi, albatta terimchining bu 
orzusini amalga oshirish qiyin. Lekin sizning ishingizni (ya’ni 
kodlashda bir vazifani qayta yozishni) yengillashtirishning yo’li 
bor, bu yerda bizga Funksiyalar yordamga keladi.
Funksiya nima? 
  Bir marta kod yozib uni dasturning istalgan joyida istalgancha 
ishlatish imkonini beruvchi operatorlar guruhi Funksiya deyiladi.
Bu huddi yuqoridagi misolimizga o’xshash bir marta qanday 
qilishni o’rgat va xoxlagan  
vaqting xoxlagan joyingda ishlat. Funksiya dasturchining kodini 
sezilarni darajada qisqartiradi va bu orqali dastur kodini o’qish 
osonlashadi va xotira hajmidan ham yutiladi. 
C# da funksiyadan foydalanish.   Dasturlashda funksiyalar ikki 
toifaga bo’linadi.  
Qiymat qaytaruvchi funksiya, qiymat qaytarmaydigan funksiya. 
Dastlab biz qiymat  qaytarmaydigan funksiyalar  ni ko’rib 
chiqamiz. Qiymat qaytaruvchi funksiyalar malum bir qiymatni 
(int ,float ,string va boshqa) qaytaradi.  
Qiymat qaytaruvchi funksiyalarning tuzilishini ko’ramiz. 
 
<qaytaruvchi qiymat turi> <funksiya nomi> (<parametrlar>)
{ Bularning barchasiga alohida to’xtalib o’tamiz 1. - bu funksiya 
qaytaradigan qiymat bo’lib turli xil ma’lumot turlaridan 
foydalanishimiz mumkin masalan int, float string  
kabilar. 2. - funksiyaning nomi yani uni chaqiradigan ism 
deyishimiz ham mumkin,  
unga ism tanlayotganda lotin alifbosidagi katta va kichik harflar,
raqamlar va  tagchiziq (‘_’) foydalangan holda , raqamdan 
boshlamasdan va c# tilidagi kalit so’zlardan foydalanmagan 
holda xoxlagan ismni berishimiz mumkin. 3. (<parametrlar>) – 
bu funksiya yakuniy qiymatni yaratish uchun foydalanadigan  
yordamchilar deyishimiz mumkin ushbu yordamchilar sifatida 
esa turli xil malumot  tipidagi o’zgaruvchilar keladi. 
yordamchilar sifatida 0 tadan xoxlagancha o’zgaruvchilar 
bo’lishi mumkin ular quyidagicha yoziladi (int a, float b, int c) . 
4. // funksiya tanasi - ushbu qism funksiyaning asosiy qismi 
hisoblaning qaytariladigan yakuniy qiymatgacha bo’lgan barcha 
ishlar shu yerda qilinadi va figurali qavs (‘{‘) bilan boshlanadi 
ushbu qismda parametr sifatida kiritilgan o’zgaruvchilar ham  
ishlatiladi. 5. // return - ushbu amal biz funksiyaning 
qaytaradigan qiymatini  aniqlaydi. Uning turi funksiyada elon 
qilingan dastlabki qiymat bilan bir xil bo’lishi  shart. <qaytaruvchi qiymat turi> <funksiya nomi> (<parametrlar>)
{ Ya’ni funksiya int turida bo’lsa biz return dan keyin ham int 
turidagi o’zgaruvchi  bo’ladi. Ming marta eshitgandan ko’ra, bir 
marta ko’rgan yaxshi deganlaridek, biz C#  tilida funksiyaga 
oddiygina ikkita sondan kattasini topuvchi funksiya orqali misol 
keltiramiz. 
int max( int a , int b) 
C# Console dasturida funksiyadan foydalanish 
1 
}
Copied! 
output: 8 
Yuqorida console dasturida max yani ikki sondan kattasini 
topuvchi funksiya yaratildi va undan dasturning  main  qismida 
foydalanildi. Albatta bu yerda funksiyaning foydasi yaqqol 
sezilmagandir ammo siz dastur ichida funksiyani bir  
necha marotaba foydalansangiz naqadar foydali ekanligini 
tushunasiz. 
Qiymat qaytarmaydigan funksiyalar.  Agar biz funksiyalarni 
xizmatchi inson deb bilsak, qiymat qaytaradigan va 
qaytarmaydigan funksiyalarni shunday ta’riflashimiz  
mumkin. Deylik xizmatchiga qanchadir pul (ya’ni parametr) 
berib do’konga jo’natamiz va bizga aytgan narsamizni 
(qaytaradigan qiymat)ni olib keladi, bu qiymat qaytaradigan 
funksiyaga misol bo’ladi. Boshqa xizmatchiga esa pul (ya’ni 
parametr) berib unga hovlidagi qandaydir ishlarni aytamiz va u 
aytgan ishlaringizni qildi, lekin, sizga hech narsa qaytarib 
kelmadi, bu qiymat qaytarmaydigan funksiyaga  misol bo’la 
oladi. Qisqa qilib aytganda qiymat qaytarmaydigan funksiyaning 
qaytaruvchi qiymati bo’lmaydi va u qandaydir vazifani bajargan 
bo’ladi. 
Endi esa qiymat qaytarmaydigan funksiyalarning tuzilishini 
ko’rib chiqamiz.
Qiymat qaytarmaydigan funksiyaning qiymat qaytaradigan 
funksiyadan asosiy farqi bu, funksiyalar qaytariladigan qiymat 
turi o’rniga ‘void’ kalit so’zi bilan boshlanadi va qaytariladigan 
qiymat return yozilmaydi. Endi esa qiymat qaytarmaydigan 
funksiyaga misol yozamiz 
Copied! 
Bu shunchaki s matnni n marta takma tak chiqaruvchi funksiya 
bundan foydalanishni yana console dasturda ham ko’ramiz.
Copied!
Output: dot-net.uz dot-net.uz dot-net.uz 
Xulosa qilib aytadigan bo’lsak, bizning og’irimizni yengil 
uzog’imizni yaqin qiluvchi yordamchi zamonaviy dasturlash 
tillarini funksiyalarsiz tasavvur qilib bo’lmaydi. Katta loyiha qila 
turib funksiyalardan foydalanmaslikni yangi uyni faqat qo’l 
mehnati bilan qurmoqchi bo’lgan inson harakati bilan o’xshatish
mumkin.   <void> <funksiya nomi> (<parametrlar>)
{
           //funksiya tanasi
} Bu boshlanishi edi keyingi darslarda funksiyalarga yanada 
kengroq to’xtalamiz. 
 Ayrim algoritmlarning hisoblash jarayonlari o'zlarining ko'p 
tarmoqliligi bilan ajralib turadi. Umuman olganda, tarmoqli 
jarayonlarni hisoblash uchun shartli operatordan foydalanish 
yetarlidir. Lekin, tarmoqlar soni ko'p bo'lsa, shartli  
operatordan foydalanish algoritmning ko'rinishini 
qo'pollashtirib yuboradi. 
Bu hollarda shartli operatorning umumlashmasi bo'lgan variant 
tanlash operatoridan foydalanish maqsadga muvofiqdir. 
 Variant tanlash operatorining sintaksis aniqlanmasi 
quyidagicha: 
 <variant tanlash operatori>::= case <operator selektori> 
 of <variant ro'yxatining hadlari> end; 
bu yerda  <operator selektori>::= <ifoda>; 
  <variant ro'yxatining hadi>::=<variantlar metkalarining  
ro'yxati>:<operator>; 
 <variantlar metkalarining ro'yxati>::=<variant metkasi>{,<
variant metkasi>}; 
 <variant metkasi>::=<o'zgarmas> 
 Variant tanlash operatori bajarilish paytida oldin selektorning 
qiymati hisoblanadi, shundan so'ng selektorning qiymatiga mos 
metka bilan jihozlangan operator bajariladi va shu bilan variant 
tanlash operatori o'z ishini yakunlaydi.
Shuni esda tutish kerakki, <variant metka>si bilan <operator 
metka>si bir xil tushuncha  
emas va variant metkasi metkalar (Label) bo'limida 
ko'rsatilmasligi kerak. Bundan   tashqari, ular o'tish operatorida ishlatilishi mumkin emas.
Misollar:  
1.Case  I  mod  3 of
    0:  m: = 0;
1:  m: = -1;
2:  m: = 1
end.
2.Case sum of
     “=”,  “+”,  “/”,  “-“: ;
     “!”,  k: = 2;
     “:”,  “;”  :  k: = 3
     end.
Case kun of 
dush, sesh, chor, pay, jum: writeln('ish kuni'); 
shan, yaksh: writeln('dam olish kuni') end. 
 Variant tanlash operatorining tana qismiga kirish faqat  case  
orqali amalga oshiriladi. 
Endi shartli operatornng variant tanlash operatori orqali 
ifodalanishini ko'rib chiqaylik: 
Quyidagi shartli va variant tanlash operatorlari bir-biriga mos 
keladi: 
1. If  B  then  S1  else  S2  va  Case  B  of
                                                    true:  S1;
                                                    false:  S2;
                                                    end.
Quyidagi chala shartli va variant tanlash operatorian bir-biriga 
mos keladi:  2. If   B  then  S  va  Case  B  of
                                                          True:  S;
                                                          False:
                                                          end.
Variant tanlash operatorlaridan sanalma tiplar qiymatlarini 
ko'rishga qulay holda chop etish uchun foydalanish mumkin. 
Buni quyidagi misolda ko'rib chiqamiz:
type
hafta=(Du, Se, Cho, Pa, Ju, Sha, Ya);
var
kun:hafta;
   begin
kun:=Du;
case kun of
Du, Se, Cho, Pa, Ju:  writeln(“Ish kuni”);
Sha, Ya : writeln(“Dam olish kunlari”);
end;
for  kun:=Du  to  Jak  do
   begin
case  kun  of
          Du:  writeln(“Dushanba”);
          Se:   writeln(“Seshanba”);
          Cho:  writeln(“Chorshanba”);
          Pa:  writeln(“Payshanba”);
          Ju:  writeln(“Juma”);           Sha:  writeln(“Shanba”);
          Ya:  writeln(“Yakshanba”);
       end;
    end;
end;
Sanalma tipli qiymatlarni kiritish ancha qiyin masala hisoblanib,
Bu ishni tashkil qilish uchun to’g’ridan-to’g’ri variant tanlash 
operatoridan foydalanish mumkin emas.  Ma’lumotlarni kiritish 
uchun asosan qatorli  (string) tiplarning imkoniyatlaridan 
foydalaniladi.
Random sinfi , buning bizga nima keragi bor?
Misol uchun, siz ko’proq sonlar ustida biror amal bajaruvchi 
dastur yozdingiz. Dasturingiz to’g’ri ishlayotganini tekshirish 
uchun ishga tushirganingizda, shuncha sonni yozib chiqishingiz 
shart emas. Shunchaki bitta massiv olib, Random sinfidan 
foydalanib uni tasodifiy sonlar bilan osongina to’ldirish mumkin.
Dastur har safar ishga tushirilganida har xil sonlar tanlab 
olinadi. Yoki ekranning turli joylarida paydo bo’luvchi shakllar 
koordinatasini Random orqali olib, takrorlanmas animatsiyalar 
hosil qilishingiz mumkin va hokazo, boshqa ko’p maqsadlarda 
ishlatishingiz mumkin.
Endi esa bu sinf metodlaridan qanday foydalanishni ko’rib 
chiqamiz.
Random sinfi System standart kutubxonasida joylashgan. Bu 
sinfdan foydalanish uchun avval undan obyekt olishimiz kerak :
Random rand = new Random(); So'ngra quyidagi metodlardan foydalanishimiz mumkin:
• Random.Next() metodi [0; 2 147 483 647) oraliqdan integer 
tipidagi tasodifiy sonni tanlab beradi.
• Random.Next(int a) – [0; a) oraliqdagi tasodifiy butun sonni 
olish uchun ishlatiladi.
• Random.Next(int a,int b) – [a;b) oraliqdagi tasodifiy butun 
sonni olib beradi. Int tipida qiymat qaytaradi.
• Random.NextBytes(byte [] b) – byte tipidagi b massivni 
tasodifiy sonlar bilan to’ldirib beradi.
• Random.NextDouble() – [0;1) oraliqdagi tasodifiy haqiqiy 
sonni tanlab olish uchun ishlatiladi.
Metodlarni kodda quyidagicha ishlatish mumkin:
using System;
class dotnetuz
{
    public static void Main()
    {
        Random tasodifiy = new Random();
        Console.WriteLine("Integer tipidagi 5 ta tasodifiy sonlar:");
        for (int i = 0; i < 5; i++)
        {
            Console.Write(tasodifiy.Next() + " ");
        }
        Console.WriteLine();
        Console.WriteLine();         Console.WriteLine("0 va 40 orasidagi 7 ta tasodifiy 
sonlar:");
        for (int i = 0; i < 7; i++)
        {
            Console.Write(tasodifiy.Next(41) + " ");
        }
        Console.WriteLine();
        Console.WriteLine();
        Console.WriteLine("40 va 90 orasidagi 8 ta tasodifiy 
sonlar:");
        for (int i = 0; i < 8; i++)
        {
            Console.Write(tasodifiy.Next(40, 91) + " ");
        }
        Console.WriteLine();
        Console.WriteLine();
        byte[] massiv = new byte[10];
        tasodifiy.NextBytes(massiv);
        Console.WriteLine("byte tipidagi 10 ta tasodifiy sonlar:");
        foreach (byte item in massiv)
        {
            Console.Write(item + " ");
        }
        Console.WriteLine();
        Console.WriteLine();         Console.WriteLine("0 va 1 orasidagi 5 ta tasodifiy haqiqiy 
sonlar:");
        for (int i = 0; i < 5; i++)
        {
            Console.Write(tasodifiy.NextDouble() + " ");
        }
        Console.WriteLine();
        Console.WriteLine();
        Console.WriteLine("0 va 15 orasidagi 5 ta tasodifiy haqiqiy 
sonni olish ham mumkin:");
        for (int i = 0; i < 5; i++)
        {
            Console.Write(tasodifiy.NextDouble() * 15 + " ");
        }
        Console.ReadKey();
    }
}
Struct mavzusiga doir misollar:
1.#include <iostream> 
using namespace std; 
 
// Struct tuzish 
struct Car { 
   string model; 
   string make; 
   int year;  }; 
 
int main() { 
   // Car struct turi bilan obyekt tuzish 
   Car myCar = {"Toyota", "Camry", 2010}; 
 
   // myCar'ning xususiyatlarini chiqarish 
   cout << "Model: " << myCar.model << endl; 
   cout << “ Make: " << myCar.make << endl; 
   cout << "Year: " << myCar.year << endl; 
 
   return 0; 
}    
2.   #include <iostream> 
using namespace std; 
 
struct Kurs { 
    string nom; 
    int kreditlar; 
    double baho; 
}; 
 
int main() { 
    // struct obyekti yaratish 
    Kurs c1 = {"Hisoblash", 4, 3.5}; 
    Kurs c2 = {"Fizika", 3, 3.0}; 
 
    // structlardan tashkil topilgan massiv      Kurs kurslari[2] = {c1, c2}; 
 
    // Massivda joylashgan har bir obyektning ma'lumotlari 
to'plamini chiqarish 
    for (int i = 0; i < 2; i++) { 
        cout << "Kurs nomi: " << kurslar[i].nomi << endl; 
        cout << "Kreditlar: " << kurslar[i].kreditlar << endl; 
        cout << "Baho: " << kurslar[i].darajali << endl; 
    } 
    return 0; 
}
3.   #include <iostream> 
using namespace std; 
 
struct B { 
    int unlilar = 0; 
    int undoshlar = 0; 
}; 
 
int main() { 
    string s; 
    getline(cin, s); 
    harflar_soni, n; 
    for(char c : s) { 
        if(isalpha(c)) { 
            if(c == 'a'  c == 'e'  c == 'i'  c == 'o'  c == 'u') { 
                n.unlilar++; 
            } else { 
                n.undoshlar++; 
            }          } 
    } 
    cout << "Unlilar harflar soni: " << n.unli harflar << endl; 
    cout << "Undosh harflar soni: " << n.undosh harflar<< endl; 
    return 0; 
}
4.   #include <iostream> 
using namespace std; 
 
struct Nuqta { 
    int x, y; 
}; 
 
int main() { 
    Nuqta p = {5, 10}; 
    cout << "Koordinatalar: (" << p.x << ", " << p.y << ")" << endl; 
    return 0; 
}
5.   #include <iostream> 
using namespace std;  
struct Student { 
    string ism; 
    int yosh; 
    double gpa; 
}; 
 
int main() {      Student s1 = {"Sabina", 20, 3.2}; 
    cout << "Ism: " << s1.ism << endl; 
    cout << "Yosh: " << s1.yosh << endl; 
    cout << "GPA: " << s1.gpa << endl; 
    return 0; 
}
6.   #include <iostream> 
using namespace std; 
 
struct Kalkulyator { 
    int qushish(int x, int y) { 
        return x + y; 
    } 
 
    int ayirish(int x, int y) { 
        return x - y; 
    } 
 
    int kupaytirish(int x, int y) { 
        return x * y; 
    } 
 
    int bulinishi(int x, int y) { 
        return x / y; 
    } 
}; 
 
int main() { 
    Kalkulator hisobi;       cout << calc.qushish(2, 5) << endl;
     cout << calc.ayirish(10, 8) << endl;
     cout << calc.kupaytirish(3, 4) << endl;
     cout << calc.bulish(27, 9) << endl;
     return 0;
 }
7.   #include <iostream> 
using namespace std; 
 
struct Shaxs { 
    string ism; 
    int yosh; 
    int buyi; 
}; 
 
int main() { 
    Shaxs p1 = {"Umid", 25, 175}; 
    cout << "Ism: " << p1.ism << endl; 
    cout << "Yosh: " << p1.yosh << endl; 
    cout << "Buyi: " << p1.buyi << endl; 
    return 0; 
}
8.   #include <iostream> 
#include <string> 
using namespace std; 
 
struct Bankhisobi { 
    string egasiningismi;      int raqami; 
    double balansi; 
}; 
 
int main() { 
    BankAccount b1 = {"Jahongir", 12345, 1000.0}; 
    cout << "Egasining ismi: " << b1.egasining_ismi << endl; 
    cout << "Hisob raqami: " << b1.raqami << endl; 
    cout << "Balansi: " << b1.balansi << endl; 
    return 0; 
}
9.   #include <iostream> 
using namespace std; 
 
struct vazifa { 
    string nomi; 
    bool tugallandi; 
}; 
 
int main() { 
    Vazifa t1 = {"Kir yuvish", false}; 
    cout << "Vazifa nomi: " << t1.nomi << endl; 
    cout << "Bajarildimi? " << (t1.bajarildimi ? "Yes" : "No") << 
endl; 
    return 0; 
}
10.    #include <iostream> 
#include <string>  using namespace std; 
struct Klub 
{ 
int Tartib; 
char nom[10]; 
char shahar[10]; 
unsigned short yil; 
unsigned short pozitsiya; 
}; 
void Klublar_haqida(Klub K)
{ 
cout << "Klubning shahri:" << K.shahar; 
} 
int main() 
{ 
Klub klublar; 
klublar.Tartib = 1; 
strcpy_s(klublar.nom, "Chelsi"); 
strcpy_s(klublar.shahar, "London"); 
Klublar_haqida(klublar); 
klublar.yil = 1923; 
klublar.pozitsiya = 1; 
return 0; 
}

Mavzu: Funksiyaning jarayonlarini o’rganish. Reja: 1. Qiymat qaytaradidan funksiya jarayonlarini o’rganish. 2. Qiymat qaytarmaydigan funksiya jarayonlarini o’rganish. 3. Random funksiyasining jarayonlarini o’rganish. 4. Struct ni funksiyalar bilan ishlatilishiga doir misollar.

C# dasturlash tilida funksiyalar nimaligini o’rganishdan oldin funksiyaning o’zi nima? u bizga nega kerak degan savollarga javob topamiz. Funksiya nega kerak ? Biz biroz yirikroq dastur yozish mobaynida juda ko’p bir xil bo’lgan vazifani qayta va qayta yozayotgandek bo’lamiz. Bu xuddi kuni bilan paxta terayotgan kishining ishiga o’xshaydi qaniydi bitta robot bo’lsayu unga bir marta paxta terishni o’rgatib qo’ysak keyin har safar aytganingda paxtani terib qo’ysa deb orzu qiladi paxta teruvchi, albatta terimchining bu orzusini amalga oshirish qiyin. Lekin sizning ishingizni (ya’ni kodlashda bir vazifani qayta yozishni) yengillashtirishning yo’li bor, bu yerda bizga Funksiyalar yordamga keladi. Funksiya nima? Bir marta kod yozib uni dasturning istalgan joyida istalgancha ishlatish imkonini beruvchi operatorlar guruhi Funksiya deyiladi. Bu huddi yuqoridagi misolimizga o’xshash bir marta qanday qilishni o’rgat va xoxlagan vaqting xoxlagan joyingda ishlat. Funksiya dasturchining kodini sezilarni darajada qisqartiradi va bu orqali dastur kodini o’qish osonlashadi va xotira hajmidan ham yutiladi. C# da funksiyadan foydalanish. Dasturlashda funksiyalar ikki toifaga bo’linadi. Qiymat qaytaruvchi funksiya, qiymat qaytarmaydigan funksiya. Dastlab biz qiymat qaytarmaydigan funksiyalar ni ko’rib chiqamiz. Qiymat qaytaruvchi funksiyalar malum bir qiymatni (int ,float ,string va boshqa) qaytaradi. Qiymat qaytaruvchi funksiyalarning tuzilishini ko’ramiz. <qaytaruvchi qiymat turi> <funksiya nomi> (<parametrlar>) {

Bularning barchasiga alohida to’xtalib o’tamiz 1. - bu funksiya qaytaradigan qiymat bo’lib turli xil ma’lumot turlaridan foydalanishimiz mumkin masalan int, float string kabilar. 2. - funksiyaning nomi yani uni chaqiradigan ism deyishimiz ham mumkin, unga ism tanlayotganda lotin alifbosidagi katta va kichik harflar, raqamlar va tagchiziq (‘_’) foydalangan holda , raqamdan boshlamasdan va c# tilidagi kalit so’zlardan foydalanmagan holda xoxlagan ismni berishimiz mumkin. 3. (<parametrlar>) – bu funksiya yakuniy qiymatni yaratish uchun foydalanadigan yordamchilar deyishimiz mumkin ushbu yordamchilar sifatida esa turli xil malumot tipidagi o’zgaruvchilar keladi. yordamchilar sifatida 0 tadan xoxlagancha o’zgaruvchilar bo’lishi mumkin ular quyidagicha yoziladi (int a, float b, int c) . 4. // funksiya tanasi - ushbu qism funksiyaning asosiy qismi hisoblaning qaytariladigan yakuniy qiymatgacha bo’lgan barcha ishlar shu yerda qilinadi va figurali qavs (‘{‘) bilan boshlanadi ushbu qismda parametr sifatida kiritilgan o’zgaruvchilar ham ishlatiladi. 5. // return - ushbu amal biz funksiyaning qaytaradigan qiymatini aniqlaydi. Uning turi funksiyada elon qilingan dastlabki qiymat bilan bir xil bo’lishi shart. <qaytaruvchi qiymat turi> <funksiya nomi> (<parametrlar>) {

Ya’ni funksiya int turida bo’lsa biz return dan keyin ham int turidagi o’zgaruvchi bo’ladi. Ming marta eshitgandan ko’ra, bir marta ko’rgan yaxshi deganlaridek, biz C# tilida funksiyaga oddiygina ikkita sondan kattasini topuvchi funksiya orqali misol keltiramiz. int max( int a , int b) C# Console dasturida funksiyadan foydalanish 1 } Copied! output: 8 Yuqorida console dasturida max yani ikki sondan kattasini topuvchi funksiya yaratildi va undan dasturning main qismida foydalanildi. Albatta bu yerda funksiyaning foydasi yaqqol sezilmagandir ammo siz dastur ichida funksiyani bir necha marotaba foydalansangiz naqadar foydali ekanligini tushunasiz. Qiymat qaytarmaydigan funksiyalar. Agar biz funksiyalarni xizmatchi inson deb bilsak, qiymat qaytaradigan va qaytarmaydigan funksiyalarni shunday ta’riflashimiz mumkin. Deylik xizmatchiga qanchadir pul (ya’ni parametr) berib do’konga jo’natamiz va bizga aytgan narsamizni (qaytaradigan qiymat)ni olib keladi, bu qiymat qaytaradigan funksiyaga misol bo’ladi. Boshqa xizmatchiga esa pul (ya’ni parametr) berib unga hovlidagi qandaydir ishlarni aytamiz va u aytgan ishlaringizni qildi, lekin, sizga hech narsa qaytarib kelmadi, bu qiymat qaytarmaydigan funksiyaga misol bo’la oladi.

Qisqa qilib aytganda qiymat qaytarmaydigan funksiyaning qaytaruvchi qiymati bo’lmaydi va u qandaydir vazifani bajargan bo’ladi. Endi esa qiymat qaytarmaydigan funksiyalarning tuzilishini ko’rib chiqamiz. Qiymat qaytarmaydigan funksiyaning qiymat qaytaradigan funksiyadan asosiy farqi bu, funksiyalar qaytariladigan qiymat turi o’rniga ‘void’ kalit so’zi bilan boshlanadi va qaytariladigan qiymat return yozilmaydi. Endi esa qiymat qaytarmaydigan funksiyaga misol yozamiz Copied! Bu shunchaki s matnni n marta takma tak chiqaruvchi funksiya bundan foydalanishni yana console dasturda ham ko’ramiz. Copied! Output: dot-net.uz dot-net.uz dot-net.uz Xulosa qilib aytadigan bo’lsak, bizning og’irimizni yengil uzog’imizni yaqin qiluvchi yordamchi zamonaviy dasturlash tillarini funksiyalarsiz tasavvur qilib bo’lmaydi. Katta loyiha qila turib funksiyalardan foydalanmaslikni yangi uyni faqat qo’l mehnati bilan qurmoqchi bo’lgan inson harakati bilan o’xshatish mumkin. <void> <funksiya nomi> (<parametrlar>) { //funksiya tanasi }