Professional Documents
Culture Documents
Ünite 8
Ünite 8
İfade -Seviyeli
Kontrol Yapıları
ISBN 0-321-49362-1
Bölüm 8 Konular
• Giriş
• Seçim İfadeleri
• Tekrarlı İfadeler
• Şartsız Dallanma(Unconditional Branching)
• Korumalı Komutlar
• Sonuçlar
– İfadeler içinde
– Program birimleri arasında
– Program ifadeleri arasında
• Genel biçim:
if control_expression
then clause
else clause
• Tasarım Konuları:
– Kontrol deyimlerinin biçimi ve tipi ne olmalıdır?
– then ve else cümlecikleri nasıl belirtilecek?
– İç içe seçim elemanları nasıl belirtilecek?
• ALGOL 60:
if (boolean_expr)
then ifade(statement ) (then clause)
else statement (else clause)
• İfadeler tek Ya da birden fazla olabilir
• Java örneği
if (sum == 0)
if (count == 0)
result = 0;
else result = 1;
• Hangi if , else in sahibidir?
Java'nın statik anlamsal kuralı(static
semantics rule): else kendisine en yakın olan
if e aittir.
Copyright © 2007 Addison-
Wesley. All rights reserved. 1-10
İç içe seçimler
• FORTRAN 90 sözdizimi
DO label var = start, finish [, stepsize]
• Stepsize 0 hariç herşey olabilir
• Parametreler ifadeler olabilir
• Tasarım seçimleri:
1. Döngü değişkeni INTEGER dır
2. Döngü değişkeni her zaman son değerini alır
3. döngü değişkeni döngüde değiştirilemez, fakat
parametreler değiştirilebilir;
4. Döngü parametreleri sadece birkez çalıştırılır.
Do Count =1,10
•
End Do
Copyright © 2007 Addison-
Wesley. All rights reserved. 1-21
Tekrarlamalı İfadeler:Örnek
• Ada
for var in [reverse] discrete_range loop
...
end loop
• discrete range integer ın Ya da enumeration
tipinin bir alt aralığıdır.
• Döngü değişkenin etki alanı döngü içidir.
• Bu değişken döngü sonunda tanımsız olur
outherLoop:
for (row=0;row<numRows;row++)
for (col=0;col<numCols;col++)
sum+=mat[row][col];
if ( sum>1000.0)
break outherLoop;
}
• Biçim
if <Boolean exp> -> <statement>
[] <Boolean exp> -> <statement>
...
[] <Boolean exp> -> <statement>
fi
• Anlamı: yapıya gelindiğinde
– Tüm mantıksal(Boolean) ifadeler değerlendirilir
– Eğer birden fazlası doğruysa, birisini deterministik
olmayan bir şekilde seçer
– Hiçbiri doğru değilse, bir çalışma zamanı hatasıdır.
if x>=y ->max:=x
[ ] y>=x ->max:=y
fi
• Form
do <Boolean> -> <statement>
[] <Boolean> -> <statement>
...
[] <Boolean> -> <statement>
od
• Anlamı: her iterasyonda
– Tüm mantıksal ifadeleri hesapla
– Birden fazla doğruysa, birini seç ve döngü
başına gel
– Hiçbiri doğru değilsedöngüden çık
Copyright © 2007 Addison-
Wesley. All rights reserved. 1-40
Döngü korumalı komutlar