Proqramlaşdırma



Yüklə 1,02 Mb.
səhifə33/34
tarix11.06.2022
ölçüsü1,02 Mb.
#61216
1   ...   26   27   28   29   30   31   32   33   34
c-sharp proqramlasdirma diline girish aze

Parametrli metodlar
İndiyə qədər istifadə etdiyimiz metodlar, parametrsiz metodlar idi. Parametrli metodlar xaricdən bir və va bir neçə qiymət qəbul edə bilən metodlardır. Yəni bu cür metodları çağırarkən, onlara müəyyən qiymətlər ötürürük, metod bu qiymətlərə əsasən müəyyən bir əməliyyatı yerinə yetirir. Metoda göndərilən bu qiymətlərə arqument deyilir, bu arqumentləri özündə saxlayan dəyişənlərə isə metodun parametrləri deyilir. Parametrli metodların ümui sintaktik şəkli aşaöıdakı kimidir:
(tip parametr1, tip parametr2, ...)


{


kodlar…


}

Parametrli metodların bir qiymət qaytarması zəruri deyil, bu tamamilə istəyə bağlıdır. Metodun adından sonra mötərizələr içərisində parametrlərə fikir verin, metoda istədiyimiz sayda parametr təyin edə bilərik, bu zaman parametrlər bir-birlərindən vergüllə ayrılmalıdır. Ucbucaq sinfindəki petodu parametrli şəklə optimizasiya edək. Belə ki, üçbucağın tərəflərini arqument kimi metoda ötürək və metod parametrlərinin qiymətləri ilə sahəni hesablasın:


using System; class Ucbucaq
{
public void Sahe(int t1, int t2, int t3)
{
int p = (t1 + t2 + t3) / 2;
double sahe = Math.Sqrt(p * (p - t1) * (p - t2) * (p - t3)); Console.Write("Terefleri {0}, {1} ve {2} olan ucbucagin sahesi: {3:##.#}", t1, t2,
t3, sahe);
}
}
class Program
{
public static void Main()
{
Ucbucaq ob = new Ucbucaq(); ob.Sahe(5, 4, 6); //(1) Console.ReadKey();
}
}
Bu proqramda Ucubucaq sinfi içərisindəki Sahe() metodu 3 ədəd t1, t2, t3 adlı parametrlərə malikdir. Metod, bu parametrlərin qiymətlərinə əsasən, sahəni hesablayacaq. Bu parametrlərə qiymətləri, metodu çağırma nöqtəsində ötürürük. (1) sətrinə fikir verin. Mötərizələrin içərisindəki 5, 4, 6 qiymətləri arqumentlərdir. Bu zaman, bu qiymətlər uyğun olaraq metodun parametrlərinə, yəni t1, t2, t3 dəyişənlərinə mənimsədilir. Beləliklə, proqramən nəticəsi aşağıdakı kimi olur:

Parametrli metodları çağırarkən, göndərilən arqumentlərin parametrlərin tipləri ilə üst- üstə düşdüyünü təmin etmək lazımdır. Əks halda bu sintaktik xəta olacaqdır. Məsələn,


Sahe metodunu ob.Sahe(5, 4.5, "Salam");
şəklində çağıra bilmərik. Çünki, sahə metodunun hər üç parametri tam tipdədir. Lakin, biz çağrılma nöqtəsində ikinci (4.5) və üçüncü (―Salam‖) arqumentlərinin tiplərini düzgün seçmədik. Parametrli metodların parametrləri, əslində metod daxilində lokal dəyişənlərdir. Onları, adi dəyişənlər kimi istifadə edirik. Göründüyü kimi bu metod, heç bir qiymət qaytarmır. Ona görə də, bu metodu məsələn,
double netice = ob.Sahe(5, 4, 6);
şəklində çağırsaq ―Cannot implicitly convert type 'void' to 'double'‖ xətasını alardıq. Başqa bir nümunəyə baxaq. Bu nümunədə Sadedirmi() adlı bir metod təyin edəcəyik. Bu metod bir int tipdə parametrə malik olacaq və əgər metoda ötürülən arqument sadə ədəddirsə, metod geriyə true, əks halda false qiymətini qaytaracaq.
using System;
class Hesabla
{
public bool Sadedirmi(int e)
{
bool netice = true;
for (int i = 2; i < e / 2; i++)
{
if (e % i == 0)
{
netice = false; break;
}
}
return netice;
}
}
class Program
{
public static void Main()
{

int eded = 17;


Hesabla ob = new Hesabla(); bool ok = ob.Sadedirmi(eded);
if (ok == true) Console.WriteLine(eded + " ededi sadedir"); else Console.WriteLine(eded + " ededi sade deyil"); Console.ReadKey();
}
}

Bu proqramda Hesabla adlı sinfin içərisində ―Sadedirmi‖ adlı metod təyin olunub. Bu metod e parametrinin qiymətinin sadə olub olmamasını müəyyənləşdirir. Əgər ədəd sadədirsə, yəni dövr içərisindəki şərt heç vaxt doğru olmazsa, onda netice dəyişəni true olaraq qalır. Bir nöqtədə şərt doğru olarsa, onda netice dəyişəninə false qiyməti mənimsədilir və dövr dayandırılır. Bool tipdəki netice dəyişəninin qiyməti metod tərəfindən geri qaytarılır. Metodun qaytarılma tipinin də bool olduğuna fikir verin. Metodu çağıranda isə əgər ötürülən arqument sadə ədəddirsə, metod true qaytracaq. Beləliklə nəticə aşağıdakı kimi olacaq:




17 ededi sadedir

Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   26   27   28   29   30   31   32   33   34




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin