Proqramlaşdırma



Yüklə 1,02 Mb.
səhifə21/34
tarix10.04.2023
ölçüsü1,02 Mb.
#104909
1   ...   17   18   19   20   21   22   23   24   ...   34
C# proq

İFADƏLƏRİ
Proqram kontrol ifadələri, proqramın icrası zamanı axışı idarı edən, onları orqanizasiya edən ifadələrdir. C# - da proqram kontrol ifadələri (Program Control Statements) 3 kateqoriyaya bölünür:

  • Şərf ifadələri: if, switch

  • Dövr ifadələri: for, while, do-while, foreach

  • Dəyişdirmə ifadələri: break, continue, goto, return, throw

if Şərt İfadəsi
Biz proqramımızı işə salanda, proqramımız yuxarıdan aşağı doğru (Main metodundan başlayaraq) sətir-sətir icra olunmağa başlayır. Bəzən vəziyyət elə olur ki, proqramın müəyyən hissəsinin icra olunub – olmaması, hansısa şərtə bağlı olsun. Şəni müəyyən bir şərt daxlində poqramın bir hissəsi icra olunsun, ya da icra olunmasın. Bu əməliyyatı həyata keçirmək üçün if şərt ifadısindən istifadə edəcəyik. if ifadəsinin vəzifəsi ondan ibarətdir ki, hansısa bir şərtin doğru olduğu təqdirdə, hansısa kodlar icra olunsun, əks halda – şərt düzgün olmadığı halda həmin kodlar icra olunmasın Bu ifadənin bötüv sintaktik şəkli aşağıdakı kimidir:

if(şərt)
{



}
else


{

}
Əməliyyatlar


Əməliyyatlar



Burada şərt doğru olsa (true) onda birinci fiqurlu mötərizə blokunun içərisi icra olunur. Əks halda ikinci blok, yəni else hissəsinə aid olan blok icra olunur. Heç bir zaman hər iki blok eyni anda icra oluna bilməz. Burada şərt bool tipində bir qiymətdir. Yalnış olsa, yəni false, gövdə icra olunmayacaq. Qeyd edək ki, yerinə yetiriləcək əməliyyatlar, sadəcə bir sətifdən ibarətdirsə, onda fiqurlu mötərizələr yazılmaya da bilər. Aşağıdakı misala baxaq:


using System; class Soft



{
public static void Main()
{
int i;
for (i = -5; i < 6; i++)
{
if (i < 0) Console.WriteLine( i + " ededi menfidir"); else Console.WriteLine(i + " ededi musbetdir");
}
Console.ReadKey();
}
}
Nəticə, məlumdur ki, aşağıdakı kimi olacaq:

Burada i dəyişəni mənfi qiymət alarsa if - ə aid blok icra olunacaq, əks halda else hissəsinə aid blok icra olunacaq.


İç-içə if ifadələri
İç-içə if (nested if) ifadələri, dedikdə bir if və ya else ifadəsinin blokunun içərisində başqa bir if ifadəsinin olması başa düşülür. Bu tip yazılışlar proqramlaşdırmada çox istifadə olunur. Amma bu tip iç-iç if ifadələrindən istifadə edərkən, unutmamaq lazımdır ki, hər if özünə uyğun else ilə başlanır. Yəni, çöldəki if- ə aid else hissəsinin, içəridəki if- ə aid else hissəsinə heç bir dəxli yoxdur. Məsələn aşağğıdakı kod parçasına baxaq:
if (10 > 9)
{
if(5 < 3)
Console.WriteLine("5 < 3 = true"); else Console.WriteLine("5 < 3 = false");
}
else Console.WriteLine("10 < 9 = false");
Burada içəridəki if ifadəsinin 5 < 3 şərti doğru olmadığı üçün, ona aid içəridəki else hissəsinə aid sətir icra olunacaq və ekrana ―5 < 3 = false‖ ifadəsi yazılır. Yəni, içəridəki if ifadəsinin şərtinin düzgün olmamağı, heç bir zaman ekrana "10 < 9 = false" yazılmasına səbəb ola bilməz. Yuxarıdakı proqramda -5 dən 5- ə qədə mənfi və müsbət ədədləri bir-birlərindən ayırdıq. Burada 0 müsbət ədəd kimi qeyd olundu. Amma riyaziyyatda 0 nə müsbət, nə də mənfi ədəd kimi qeyd olunur. İç-içə if ifadəsindən istifadə edərək, yuxarıdakı proqramı belə yaza bilərik:
using System; class Soft
{
public static void Main()
{
int i;
for (i = -5; i < 6; i++)
{
if (i < 0) Console.WriteLine(i + " ededi menfidir");
else if (i == 0) Console.WriteLine("0 isaresiz ededdir"); else Console.WriteLine(i + " ededi musbetdir");
}
Console.ReadKey();
}
}
Nəticə aşağıdakı kimi olacaq:

if-else-if kombinasiyası


İç-içə yerləşmiş if ifadəsinə söykənən və çox istifadə olunan bir şərt kontrol mexanizmi də if-else-if kombinasiyasıdır. Bu yazılışın ümumi sintaktik şəkli aşağıdakı kimidir:
if(şərt)
əməliyyat; else if(şərt)
əməliyyat; else if(şərt)
əməliyyat;
.
.
.
if(şərt)
əməliyyat; else…
Bu kombinasiyada əməliyyat yuxarıdan-aşağıya doğru yerinə yetirilir. Belə ifadələrdə, bir if ifadəsinin yerinə yetirilməsi üçün, ondan yuxarıda yerləşən if ifadəsinin şərtinin yanlış olması lazımdır. Bu kombinasiyanı sözlə ifadə etsək: ―Əgər bir şərt düzgündürsə,
əməliyyat yerinə yetir, əks halda başqa bir şərti yoxla, əgər o düzgündürsə, onda əməliyyat yerinə yetir, əks halda yenə yenə başqa şərti yoxla…‖ .İndi bir proqrama baxaq. Bu proqramda daxil edilən 3 ədədə görə düzbucaqlı üçbucağın sahəsini hesablayan proqram yazacağıq. Düzbucaqlı üçbucaq hər hansı iki tərəfi 90 dərəcə bucaq altında kəsişən üçbucaqlardır. Bu üçbucağın sahəsi, onun düz bucaq altında kəsişən tərəflərinin hasilinin yarısına bərabərdir. Bu tərəflərə kated, digər tərəfə isə hipotenus deyilir. Pifaqor teoreminə görə düzbucaqlı üçbucağın katedlərinin kvadratları cəmi, onun hipotenusunun kvadratına bərabər olur. Bu teoremdən istifadə edərək, daxil edilən üç tərəfin hansıların kated olduğunu tapacağıq. Əgər bu ədədlər üzərində teoremin şərtləri ödənilməzsə, deməli daxil edilən üç ədəd, hansısa düzbucaqlı üçbucağın tərəflərinə uyğun gəlmir. Bununla yanaşı, üçbucaq bərabərsizliyinə görə istənilən üçbucağın ixtiyari iki tərəfinin cəmi digər tərəfdən böyük olmalıdır. Yəni, daxil edilən ədədlərin, düzbucaqlı üçbucaqdan ziyadə ümumiyyətlə bir üçbucağın tərəflərinə uyğun gəlib- gəlmədiyini yoxlayacağıq. Digər tərəfdən, üçbucağın tərəfləri məsafə anlayışını ifadə etdiyi üçün, mənfi ola bilməzlər. Bunların hamısını nəzərə alaraq, professionla yaxın bir sahə hesablayan proqram yazaq:
using System; class Soft
{
public static void Main()
{
Console.WriteLine("Birinci terefi daxil edin: "); int teref1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ikinci terefi daxil edin: "); int teref2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ucuncu terefi daxil edin: "); int teref3 = Convert.ToInt32(Console.ReadLine()); if (teref1 < 0 | teref2 < 0 | teref3 < 0) //(1)
Console.WriteLine("Terefler menfi ola bilmez");
else
{
if ((teref1 + teref2 < teref3) | (teref1 + teref3 < teref2) | (teref2 +
teref3 < teref1)) //(2)
Console.WriteLine("Daxil etdiyiniz ededler, hansisa ucbucagin tereflerine
uygun gelmir");
else //(3)
{
if (teref1 * teref1 + teref2 * teref2 == teref3 * teref3) Console.WriteLine("Sahe: " + (teref1 * teref2) / 2);
else if (teref1 * teref1 + teref3 * teref3 == teref2 * teref2) Console.WriteLine("Sahe: " + (teref1 * teref3) / 2);
else if (teref2 * teref2 + teref3 * teref3 == teref1 * teref1) Console.WriteLine("Sahe: " + (teref2 * teref3) / 2);
else Console.WriteLine("Terefler duzbucaqli ucbucaga uygun gelmir");
}
}
Console.ReadKey();
}
}
(1) sətrində daxil edilən tərəflərin işarəsini yoxladıq. Əgər hamısı müsbətdirsə, onda (2) şərti ilə üçbucaq bərabərsizliyini yoxladıq. Əgər daxil edilən tərəflər hansısa üçbucağa uyğundursa, (3) sətrinə aid blok ilə bu tərəflərin ümumiyyətlə hansısa düzbucaqlı üçbucağın tərəflərinə uyğun gəlib-gəlmədiyini yoxladıq. Nəticə aşağıdakı kimi olacaq:



Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   17   18   19   20   21   22   23   24   ...   34




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

    Ana səhifə