Kontrol pada mesin bor Ifadeleri

Bölüm 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


Copyright © 2007 AddisonWesley. All rights reserved.

1-2

Kontrol Akışının Seviyeleri




İfadeler içinde
Program birimleri arasında
Program ifadeleri arasında

Copyright © 2007 AddisonWesley. All rights reserved.

1-3

Kontrol İfadeleri: Gelişim
• FORTRAN I kontrol ifadeleri direkt olarak

IBM 704 donanımı temelliydi
• Birçok araştırmacı ve 1960 larda bu konular
üzerinde tartıştı
Bir önemli sonuç: Şu kanıtlanmıştır akış
diyagramı hazırlanmış olan algoritmalar
sadece ikiyollu seçim ve ön koşullu
tekrarlanan ifadeler ile gerçekleştirilebilir.
Copyright © 2007 AddisonWesley. All rights reserved.

1-4

Kontrol Yapıları
• Bir kontrol yapısı ve ifadesi çalışmayı
kontrollü hale getirir.
• Tasarım sorusu
– Kontrol yapısının birden fazla girdisi olmalı
mıdır?

Copyright © 2007 AddisonWesley. All rights reserved.


1-5

Seçim İfadeleri
• Bir seçim ifadesi iki veya daha fazla çalışma
yolları arasından seçim yapar.
• İki genel kategorisi vardır:
– İki-yönlü seçiciler
– Çok yönlü seçiciler

Copyright © 2007 AddisonWesley. All rights reserved.

1-6

İki yönlü seçici ifadeleri
• 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?

Copyright © 2007 AddisonWesley. All rights reserved.

1-7

İki Yönlü Seçim: Örnekler
• FORTRAN: IF (boolean_expr) ifadesi
• Sorun: seçim tek bir ifadedir daha fazla seçim için
bir GOTO kullanılmalıdır:
IF (.NOT. condition) GOTO 20
...
20 CONTINUE

• Okunabilirlik için olumsuz mantık kötüdür.

• Bu sorun FORTRAN 77 de çözülmüştür
• Daha sonraki diller daha fazla seçim için birleşik
seçimlere izin vermiştir.
Copyright © 2007 AddisonWesley. All rights reserved.

1-8

İki Yönlü seçim : Örnek
• ALGOL 60:
if (boolean_expr)
then ifade(statement ) (then clause)
else statement (else clause)
• İfadeler tek Ya da birden fazla olabilir

Copyright © 2007 AddisonWesley. All rights reserved.

1-9

İç içe seçimler
• 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 AddisonWesley. All rights reserved.

1-10

İç içe seçimler
• Alternatif bir anlamı zorlamak için birleşik
ifadeler kullanılabilir:
if (sum == 0) {
if (count == 0)
result = 0;
}

else result = 1;
• Yukarıdaki çözüm C, C++ ve C# tarafından kullanılır.
• Perl tüm then ve else kelimelerinin bileşik olamasını zorunlu
kılar.

Copyright © 2007 AddisonWesley. All rights reserved.

1-11

Çok yönlü seçim deyimleri
• Birden fazla sayıda seçim ifadesine izin
verir.
• Tasarım Konuları:
1. Kontrol deyimlerinin biçimi ve tipi nasıl
olacaktır?
2. Seçilebilir alanlar nasıl belirtilir?
3. Çalışma akışında sadfece tek bir seçim kısımı
mı olabilir?

Copyright © 2007 AddisonWesley. All rights reserved.


1-12

Çok yönlü seçim deyimleri
• İlk çıkan çoklu seçimler:
– FORTRAN aritmetik IF (üç yönlü seçim)

IF (arithmetic expression) N1, N2, N3
– GOTO lara ihtiyaç duyar.
– Seçilebilen kısımlar her yerde olabilir.

Copyright © 2007 AddisonWesley. All rights reserved.

1-13

Çok yönlü seçim deyimleri
• Modern çoklu seçimler
– C deki switch ifadesi

switch (expression) {

case const_expr_1: stmt_1;

case const_expr_n: stmt_n;
[default: stmt_n+1]
}

Copyright © 2007 AddisonWesley. All rights reserved.

1-14

Çok yönlü seçim deyimleri


C’nin switch ifadesi için seçtiği
tasarım
1. Kontrol ifadeleri sadece integer tipli olabilir
2. Seçilebilen kısımlar ifadeler, bloklar Ya da birleşik
ifadeler olabilir
3. Bu yapıdaki seçimde birden fazla kısım çalışabilir.
4. default temsil edilmeyen değerler için

kullanılır.

Copyright © 2007 AddisonWesley. All rights reserved.

1-15

Çok yönlü seçim deyimleri
• The Ada case ifadesi
case expression is
when choice list => stmt_sequence;

when choice list => stmt_sequence;
when others => stmt_sequence;]
end case;
• C’nin switch inden daha
güvenlidir( stmt_sequence tamamlandıktan sonra
kontrol case ifadesine geçer)
Copyright © 2007 AddisonWesley. All rights reserved.

1-16


Çok yönlü seçim deyimlerinde if
• Çoklu seçimler else-if cümlecikleri gibi
görünür, örneğin Ada:
if ...
then ...
elsif ...
then ...
elsif ...
then ...
else ...
end if
Copyright © 2007 AddisonWesley. All rights reserved.

1-17

Tekrarlama İfadeleri
• İfadenin ya da birleşik ifadenin tekrarlamalı
olarak çalıştırılmasını sağlar.
• Genel tasarım konuları
1. iterasyon(tekrarlama nasıl kontrol edilecek?)
2. döngüdeki kontrol mekanizması nerede olacak?

Copyright © 2007 AddisonWesley. All rights reserved.

1-18

Sayaç kontrollü döngüler


Sayaç temelli döngülerde bir sayaç değişkeni bulunur,ve ilk
değeri ile sayacın son değeri ve artış miktarı belirlenir.



Tasarım Konuları:
1. Döngü değişkeninin etki alanı(scope) ve tipi ne
olmalıdır?
2. Döngü sonlandırmadaki döngü değişkeninin değeri ne
olmalıdı?
3. Döngü değişkeni , döngü içinde yapılacak ifadelerce
değiştirilmeli midir ve bu döngüyü etkiler mi?
4. Döngü parametreleri birkez mi işlenir yoksa her
döngüde tekrar işlenilmeli midir?

Copyright © 2007 AddisonWesley. All rights reserved.

1-19

Tekrarlamalı İfadeler:Örnek
• 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.

Copyright © 2007 AddisonWesley. All rights reserved.

1-20

Tekrarlamalı İfadeler:Örnek
• FORTRAN 95 : ikinci biçim:
[name:] DO variable = initial, terminal [,stepsize]

END DO [name]

– Döngü değişkeni INTEGER olmalıdır

Do Count =1,10

End Do
Copyright © 2007 AddisonWesley. All rights reserved.

1-21

Tekrarlamalı İfadeler:Örnek


Pascal’ın for ifadesi
for variable := initial (to|downto) final do
statement



Tasarım seçimleri:
1. Döngü değişkeni sıradan bir tip olabilir
2. Normal sonlanmadan sonra döngü değişkeni yoktur.
3. Döngü değişkeni döngü içinde değiştirilmez; döngü
parametreleri değiştirilebilir, fakat birkez hesaplanırlar,
bu nedenle kontrolü etkilemezler

Copyright © 2007 AddisonWesley. All rights reserved.

1-22

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

Copyright © 2007 AddisonWesley. All rights reserved.

1-23

Tekrarlamalı İfadeler:Örnek
Count: Float :=1.33;
for Count in 1..10 loop
Sum:=Sum+Count

end loop;

Copyright © 2007 AddisonWesley. All rights reserved.

1-24

Tekrarlamalı İfadeler:Örnek
• C’nin for ifadesi
for ([expr_1] ; [expr_2] ; [expr_3]) statement

• Deyimlerin(expr1) tamamı ifade olabilir Ya da
virgülle ayrılmış ifadeler olabilir
– Çoklu ifadelerde kabul edilen değer en sonuncusunun
değeridir.

• Açık bir döngü değişkeni yoktur.
• Döngü içinde herşey değişebilir.
• İlk ifade birkez hesaplanır, diğerleri her döngüde
tekrar hesaplanır.
Copyright © 2007 AddisonWesley. All rights reserved.

1-25

Tekrarlamalı İfadeler:Örnek
• C++ C den iki yönle farklıdır:
1. Kontrol deyimleri Mantıksal(Boolean) olabilir.
2. İlk deyim bir değişken tanımlamaya izin
verebilir, bu değişkenin etki alanı döngü içidir.

• Java ve C#


C++ dan farklı olarak kontrol deyimleri
Boolean olmalıdır.

Copyright © 2007 AddisonWesley. All rights reserved.

1-26

Tekrarlamalı İfadeler:Mantıksal
Kontrollü



Tekrarlama kontrolü mantıksal(Boolean) dır.
Tasarım Konuları:
– Ön sınama ya da son-sınama?
– Mantıksal kontrollü döngü sayaç kontrollü ile
aynı mıdır ?
• Genel biçimleri:
while (ctrl_expr)
do
loop body
loop body
while (ctrl_expr)
Copyright © 2007 AddisonWesley. All rights reserved.

1-27

Tekrarlamalı İfadeler:Mantıksal
Kontrollü
• Paskalda hem ön sınamalı hem de son
sınamalı döngü vardır(while-do ve repeatuntil)
• C ve C++ da her ikisi vardır.
• Java C gibidir, sadece kontroller
mantıksal(boolean) olmalıdır. -- Java da
goto yoktur.

Copyright © 2007 AddisonWesley. All rights reserved.

1-28

Tekrarlamalı İfadeler:Mantıksal
Kontrollü
• Ada da ön sınama yöntemi vardır fakat son
sınama yoktur
• FORTRAN 77 ve 90 da her ikiside vardır.
• Perl de iki ön-sınama mantıksal döngü
vardır., while ve until , fakat sonsınamalı döngü yoktur.

Copyright © 2007 AddisonWesley. All rights reserved.

1-29

Tekrarlamalı İfadeler:Kullanıcı belirtimli
döngü
• Bazen döngü kontrolünün nerede
yapılacağı kullanıcı tarafından belirtilebilir
• Tek döngüler için basit ifade (örn., break)
• Tasarım konuları
– Kontrol ifadesi dışarıda olabilir mi?
1. Kontrol birden fazla döngü dışına çıkabilir mi?

Copyright © 2007 AddisonWesley. All rights reserved.

1-30

Tekrarlamalı İfadeler:Kullanıcı belirtimli
döngü
outherLoop:
for (row=0;row

Dokumen yang terkait

Analisis komparatif rasio finansial ditinjau dari aturan depkop dengan standar akuntansi Indonesia pada laporan keuanagn tahun 1999 pusat koperasi pegawai

15 355 84

Analisis korelasi antara lama penggunaan pil KB kombinasi dan tingkat keparahan gingivitas pada wanita pengguna PIL KB kombinasi di wilayah kerja Puskesmas Sumbersari Jember

11 241 64

ANALISIS PENGARUH PENERAPAN PRINSIP-PRINSIP GOOD GOVERNANCE TERHADAP KINERJA PEMERINTAH DAERAH (Studi Empiris pada Pemerintah Daerah Kabupaten Jember)

37 330 20

FREKWENSI PESAN PEMELIHARAAN KESEHATAN DALAM IKLAN LAYANAN MASYARAKAT Analisis Isi pada Empat Versi ILM Televisi Tanggap Flu Burung Milik Komnas FBPI

10 189 3

SENSUALITAS DALAM FILM HOROR DI INDONESIA(Analisis Isi pada Film Tali Pocong Perawan karya Arie Azis)

33 290 2

Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)

136 695 18

DOMESTIFIKASI PEREMPUAN DALAM IKLAN Studi Semiotika pada Iklan "Mama Suka", "Mama Lemon", dan "BuKrim"

133 700 21

Representasi Nasionalisme Melalui Karya Fotografi (Analisis Semiotik pada Buku "Ketika Indonesia Dipertanyakan")

53 338 50

PENERAPAN MEDIA LITERASI DI KALANGAN JURNALIS KAMPUS (Studi pada Jurnalis Unit Aktivitas Pers Kampus Mahasiswa (UKPM) Kavling 10, Koran Bestari, dan Unit Kegitan Pers Mahasiswa (UKPM) Civitas)

105 442 24

DAMPAK INVESTASI ASET TEKNOLOGI INFORMASI TERHADAP INOVASI DENGAN LINGKUNGAN INDUSTRI SEBAGAI VARIABEL PEMODERASI (Studi Empiris pada perusahaan Manufaktur yang Terdaftar di Bursa Efek Indonesia (BEI) Tahun 2006-2012)

12 142 22