İŞLEM SAYISI BELLİ OLAN DÖNGÜLER

Benzer belgeler
HSancak Nesne Tabanlı Programlama I Ders Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

ALGORİTMA VE PROGRAMLAMA I


BMT 101 Algoritma ve Programlama I 8. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

ALGORİTMA VE PROGRAMLAMA I

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

ÜNİT E ÜNİTE KONTROL DEYİMLERİ KARAR YAPILARI. IF Deyimi GİRİŞ

Program AkıĢ Kontrol Yapıları

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

ALGORİTMA VE PROGRAMLAMA I

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Hafta 4 Döngü Yapıları

BİL-142 Bilgisayar Programlama II

Diziler İndisli Değişkenler

Algoritma ve Programlamaya Giriş

ALGORİTMA VE PROGRAMLAMA I

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

ALGORİTMA VE PROGRAMLAMA I

Akış Kontrol Mekanizmaları

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Nesne Yönelimli Programlama

Algoritmalar ve Programlama. Algoritma

MT 373 Visual Basic Programlama Dersi

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Internet Programming II

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Bölüm 3 Yapısal Programlama

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Algoritma ve Programlama: Karar Yapıları ve Döngüler

C# Örnek Uygulamalar I

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Nesne Tabanlı Programlama

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

YZM 2105 Nesneye Yönelik Programlama

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

MATLAB de. Programlama. Kontrol Yapıları. Döngü Yapıları. Doç. Dr. İrfan KAYMAZ Matlab Ders Notları

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

İnternet Programcılığı Dersi 2.Dönem Ders Notu

1. LabVIEW ile Programlama

6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

VERİ TABANI YÖNETİM SİSTEMLERİ I

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

KONTROL YAPILARI (CONTROL STRUCTURES)

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Ders 7: Döngüler. Giriş. 7.1 while Döngüsü

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

BİL1001 Bilgisayar Bilimlerine Giriş 1

ÜNİTE İÇİNDEKİLER HEDEFLER DÖNGÜ KONTROL DEYİMLERİ. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA

Visual Basic Uygulamaları-4. Dİ Zİ LER (ARRAYS) ve Nesne Kü meleri

Algoritma ve Akış Şemaları

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

PROGRAMLAMA DİLLERİ I

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

Pointer Kavramı. Veri Yapıları

Uygulama 1) Aşağıdaki genel (global) değişken tanımlamalarını VB üzerinde yapınız. Süre 10 dak.

Algoritmanın Hazırlanması

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

BİLGİSAYAR PROGRAMLAMA

Transkript:

DÖNGÜLER GİRİŞ Bilgisayarın ismi her ne kadar bilgiyi saymaktan gelse de aslında bilgisayar programlar ile gerçek anlamını bulmaktadır. Program, bu bölüme kadar anlatılanlar işlemlerin sıralı olarak ve programcının tasarladığı şekilde yürütülmesini sağlayan komutlardır. Ancak programlama da bazı işlemleri döngüleri kullanmadan yapmaya kalkmış olsak, aynı işlem satırlarını birçok kez tekrarlamak gerekecektir. Oysaki ard arda yapılması gereken işlemleri programlarda yapmanın en kısa yolu döngülerdir. Döngülerin bir başlangıcı ve bir sonu olmak zorundadır. Her döngü bu iki konum arasındaki işlemleri şartlara bağlı olarak tekrar eder. Döngülerde yapılan işlemler şart sağlanmadıkça devam eder. Döngülere başlangıç hariç hiçbir noktadan girilemez ve çıkış noktasına gelinmeden de çıkılamaz. Döngüler tekrar edilmesi gereken işlemlerin belli verileri değiştirerek her defasında yeni verilerle tekrar çalıştırılmasını sağlarlar. Döngüler programlama dillerine göre farklılık gösterse de genel olarak iki farklı grupta toplanabilir. Çok kullanılan döngü türlerinden birisi döngüye başlarken döngü sayısı belli olanlar iken diğer tür ise döngü sayısı belli olmayan yani döngü içindeki işlemler ile döngü sayısı belirlenebilen döngülerdir. Döngü sayısı belli olmayan döngülerde de programlama diline bağlı olarak iki farklı özellikte döngü yapısından bahsedebiliriz. Bu döngüleri şart kontrolü başta olan ve şart kontrolü sonda olanalar olarak iki gruba ayırabiliriz. Yukarıda bahsettiğimiz gibi bu döngülerde işlem tekrarını sağlayan şartlar bulunmakta. Bu şartın sağlanıp sağlanmadığının kontrolünü döngüye girilirken yapılması şart kontrolü başta olan döngü olarak isimlendirilirken, şart kontrolünün döngünün sonunda yapılmasına ise şart kontrolü sonda olarak isimlendirilir. İŞLEM SAYISI BELLİ OLAN DÖNGÜLER İşlem sayısı belli olan döngüler birçok programlama dilinde sadece For-Next iken bazı dillerde For-Each döngüsü de kullanılabilmektedir. For-Next Döngüsü Bu döngü nerdeyse tüm programlama dillerinde var olan ve sık kullanılan döngü türüdür. Bu döngülerde bir değişkene bir sayı atanır ve bu sayıdan başlayarak her dönüşte değişken değeri artırılır veya eksiltilerek işlemler yapılır. Belirlenen değişken değeri döngü içinde kullanılabileceği gibi sadece işlem sayısını saydırmak amacı ile de kullanılabilir. For-Next Deyimi Bu deyimde bir başlangıç değeri, değerin artış miktarı ve ulaşılacak bitiş değeri gibi parametreler kullanılmaktadır. Bu parametreler For deyiminde tanımlanır. Next ise döngü bloğunun sonudur ve adım sayısı tamamlanmış ise Next ten sonraki komut çalıştırılır. 1

Bu deyime ait algoritma şeması aşağıdaki gibidir. Burada İşlem Bloğu olarak verilen şeklin içerisinde programlamadaki komutların nerdeyse tümü kullanılabilir. Döngüye bir başlangıç değeri ile girilir. İlk işlemler bu değer ile yapılır. İşlemler bittikten sonra For komutuna dönülür ve artım yapılarak işlemlere devam edilir. Her artımda koşul kontrol edilir ve eğer koşul sağlanmıyorsa döngüden çıkılır, yani Next komutundan sonraki komutlardan program akışı devam eder. Döngüye Giriş Başlangıç Artım Koşul Döngüden Çıkış (İşlem Bloğu) İşlem 1.. İşlem N Şekil-1. For-Next Döngüsü Akış Diyagramı For-Next döngüsüne ait komut kullanımı ise aşağıdaki gibidir. Burada siyah yazı ile yazılı olanlar deyim ifadeleridir ve kullanılacaksa yazıldıkları yerde kullanılmaları VB Deyim Yapısı For sayaç [ As veritipi ] = başlangıç To bitiş [ Step artım ] [ işlemler] [ Continue For ] [ Exit For ] Next [ sayaç ] gerekmektedir. Köşeli parantez içleri ise ihtiyaca göre kullanılacak komut veya işlemleri ifade etmektedir. İtalik yazılan ifadeler ise programcının verebileceği değişken veya programlama isimlerini ifade eder. Continue For ifadesi kullanıldığında işlemlere devam edilmez ve döngü başına dönülür. Exit For ifadesi kullanıldığında ise işlemlere Next ile devam edilir. Bu açıklamalara göre deyim şu şekilde çalışır; döngüye başlandığında sayaç içerisine başlangıç değeri atanır, işlemler yapılır, Next ifadesine gelindiğinde sayaç değeri adım değerinde artırılır/eksiltilir (adim değeri verilmemişse birer birer artırılır) ve For satırına işlem yönlendirilir. Burada koşul kontrolü yapılır sayaç değeri başlangıç ve bitiş arasında ise işlemlere devam edilir, koşul sağlamıyorsa Next ten sonraki program işlemlerine geçilir. Bu deyime ait birkaç örnek aşağıda verilmiştir. (Örnekleri Visual Basic.Net derleyicileri veya http://www.compileonline.com/compile_vb.net_online.php adresindeki derleyici ile çalıştırabilirsiniz) 2

Örnek-1: 1 den 100 kadar sayıları ekrana yazdırma. Dim sayi Integer For sayi = 1 To 100 Console.WriteLine (değer) Next sayi Burada 1 den 100 e kadar sayılar ekrana yazdırılmaktadır. Deyimler ise şöyle işlemektedir; sayi değeri 1 yapılmakta Console.WriteLine deyimi icra edilmekte Next deyimi ile sayaç 1 artırılmakta ve tekrar For deyimine dönülmektedir. Sayaç değeri bitiş değeri olan 100 den büyük olana yani 101 e kadar gelmekte bu değerden sonra ise program akışı Next ten sonraki adımdan devam etmektedir. Örnek-2: 100 den 20 kadar 7 çıkararak sayıları ekrana yazdırma Dim sondeger As Integer = 20 For deger As Integer = 100 To sondeger Step -5 Console.WriteLine (değer) Next deger Burada işlemler 100 den başlar, 95, 90,, 25 ve 20 ye kadar yapılır ve sonra döngü bitirilir. Örnek-3: İç içe iki döngü ile 1 den 10 a kadar sayıların çarpım tablosunu yazdırma İç içe döngü örneği olarak verilen bu örneğin çalışması kısaca şöyledir; carp1 For carp1 As Integer = 1 To 10 For carp2 As Integer = 1 To 10 Console.WriteLine (carp1 & X & carp 2 & = & carp1*carp2) Next carp2 Console.WriteLine () Next carp1 değişkeni 1 değerini aldıktan sonra iç döngüden carp2 1 değerini alır ve ekrana 1 X 1 = 1 yazılır. Sonra carp2 değişkeni 2 değerini alır yani içteki döngü bir kez daha çalışır, bunun çıktısı da yazılır ve bu işlemler carp2 nin değeri 10 olana kadar devam eder. Bundan sonra ise iç döngü sonlandırılır ve döngüden sonraki ekrana boş satır yazdırma komutu çalıştırılır ve dıştaki döngünün değeri bir artırılarak yani carp1=2 yapılarak iç döngüye girilir ve carp2 tekrara 1 den başlayarak 10 a kadar işlenir. Bu programa ait ekran çıktısının bir kısmı yandaki gibidir. Şekil-2 Örnek-3 Ekran Çıktısı 3

Örnek-4: İki boyutlu 5 X 10 elemanlı bir matrisin tüm elemanlarını -1 değeri ile dolduran program. Dim matris(5, 10) For i = 1 To 5 For j = 1 To 10 matris(i, j) = -1 Next j Next i İç içe döngüye ait ikinci örnekte ise 5 X 10 boyutlarında bir matrisin tüm elemanları -1 değeri ile doldurulmaktadır For Each Döngüsü Bu döngüde döngünün yapılacağı tekrar sayısını, döngüde verilen eleman değerleri belirler. Bu döngü sayısal işlemler uygulanmayan alfanümerik değerler için kullanılır. For Each Deyimi Bu deyimde döngü, döngü değişkeni elemanı adedince tekrar edilir. Diğer özellikleri For-Next döngüsü ile aynı olmasına karşın döngü değişkeni elemanının içeriğiyle işlem yapması yönüyle sayısal olmayan dizi elemanları ile de işlem yapmaya imkan verir. Döngü değişkeni elemanlarına önceden değer atanmış olabileceği gibi program akışı içerisinde de değerler atanabilir veya veri tabanından veriler atanabilir. Böylece döngünün adım sayısı program içerisinden de belirlenebilir. Bu deyimin akış şeması For-Next döngüsü ile aynıdır. Deyimin genel yapış da benzer olmakla birlikte aşağıdaki gibidir. VB Deyim Yapısı For Each değişken_elemanı [ As veritipi ] In verigrubu [ işlemler] [ Continue For ] [ Exit For ] Next [değişken_elemanı ] Bu deyimde öncekinden farklı olarak değişken_elemanı kullanılmaktadır. Verilerin saklandığı verigrubu bu verilerin saklandığı değişkenin genel adıdır. Örnek-5: Bir dükkanda bulunan evcil hayvanların listesini yazdıran program. Dim evcil() As String = {"Kedi", Fare, Tavşan, Balık } For Each pet As String In evcil Console.WriteLine(pet) Next 4

İŞLEM SAYISI BELLİ OLMAYAN DÖNGÜLER Nerdeyse tüm programlama dillerinde kullanılan deyimlerden birisi Do-Loop döngüleridir. Bazı programlama dillerinde Do bloğu olarak adlandırılan bu yapıların özelliği de For-Next döngüsü gibi şarta bağlı olarak bu blokta yer alan tüm komutların işlenmesidir. Do bloğunun devam etmesi için koşul ifadesinin sağlanıyor olması gerekir. For-Next döngüsünde verilen koşula göre döngü sayısı belirlenebilirken, Do döngülerinde koşulun belirlenmesi zordur. Örneğin bir program ile klavyeden veri girişi yaptırılacaksa ne tür bir veri girişi istendiği döngü tipini belirler. Eğer girilecek veriler 12 ayın verisini almak veya 100 tane sayı girmek gibi bir çerçeveye sahipse burada For-Next döngüsü kullanmak oldukça mantıklıdır. Ancak girilecek verilerin sayısı belli değilse bunu For-Next ile yapmak çok zordur, oysaki Do döngüleri ile bu işi yapmak çok kolaydır. Do döngüsünde koşul olarak boş veri girişine kadar verileri al diye bir kural belirlenirse istenildiği kadar veri girilebilir. Boş veri girildiğinde de döngüden çıkılır. Bu döngülerin en iyi yönü bu olmasına rağmen aynı zamanda programların kısır döngü (Loop) dediğimiz takılmalara da neden olabilirler. Örneğin bir Do döngüsünde bir işlem yaparken koşulu bir sayının sıfırdan küçük olarak belirlemişken sayının gittikçe büyümesini sağlayan bir formül belirlemişsek program kısır döngüye girer ve ancak program hata verirse kesilir. Aksi takdirde sürekli çalışır. Bu döngülerde koşulun verilmesi ise programlama dillerine göre bazı farklılıklar göstermektedir. Tüm programlama dillerine göre koşulların anlatılması kafa karışıklığına neden olabileceğinden burada Visual Basic.Net e göre olanları anlatılmıştır. Do döngülerinde koşulun sınanması While ve Until deyimleri ile sağlanır. Bu iki deyimin iki farklı kullanımı vardır. İlk olarak anlatılacak olan şartın başta kullanılması durumu ve daha sonra anlatılacak olan şartın sonda olması durumu olarak özetleyebiliriz. While ve Until deyimlerinin farkı ise İngilizce anlamlarına göredir. While kelimesinin Türkçe karşılığını iken olarak çevrilir, yani bir şart sağlanıyorken döngü yapılacak demektir. Until ise değin, kadar olarak çevrilebilir. Bu anlamlarına uygun olarak While deyimi döngüyü koşul sağlanıyorken işleme sokar, Until deyimi ise koşul sağlanana değin yani koşul sağlanmadığı sürece döngü işleme alınır. Şart Kontrolü Başta Olan Döngüler Do While/Until Deyimi Bu deyimde döngü, şart sağlandığı/sağlanmadığı sürece döngü tekrar edilir. Dolayısıyla döngü sayısı şartın sağlanması/sağlanmamasına bağlıdır. Do While-Loop döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlandığı yani koşul TRUE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanmaması yani FALSE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. 5

Do Until-Loop döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlanmadığı yani koşul FALSE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanması yani TRUE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. Bu deyimlerin akış şeması şöyledir Döngüye Giriş Koşul Döngüden Çıkış (İşlem Bloğu) İşlem 1.. İşlem N Şekil 3. Do-Loop Akış Şeması Bu deyimin öncekinden farklı olan yanı koşulun sayısal değil de herhangi bir koşul olarak verilmesidir. Bu deyimin genel kullanımı ise aşağıdaki gibidir. Burada da For-Next döngüsünde olan koşul ve işlemler bulunmaktadır. While veya Until deyimlerinden birisi kullanım amacına göre seçilmelidir. Örnek-6: 1 den başlayarak kaç sayının karesi 100 den büyüktür şeklinde bir soruyu çözmek istersek şöyle bir algoritma kurabiliriz. Dim sayi, kare As Integer = 1 Do While kare <= 100 Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop Console.WriteLine( Program Sonu ) VB Deyim Yapısı Do { While Until } koşul [ Continue Do ] [ işlemler] [ Exit Do ] Loop Bu programa ait çıktı yan tarafta görülmektedir. 6 Şekil 4. Örnek 6 ya ait ekran çıktısı

Tartışma Eğer Console.WriteLine deyimi Loop tan önce taşınırsa ekran çıktısı nasıl olur? Bu durumda 11 in karesi de hesaplanıyor, nedenini araştırınız. Örnek 7: Aynı örneği Until ile çözmeye çalışırsak program ne tür bir çıktı verir? Eğer Programı aşağıdaki gibi düzenleyecek olursak program döngüye girmeden Şekil 6. Örnek 7 Until çıktısı Dim sayi, kare As Integer = 1 Do Until kare <= 100 Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop Console.WriteLine( Program Sonu ) koşul sağlandığından herhangi bir işlem yapmadan Program Sonu satırına gelinmektedir. Bu programın çalışması için ise <= işareti yerine > işareti yazmamız yetecektir. Bu durumda kare değeri 100 den büyük olmadığından döngü Dim sayi, kare As Integer = 1 Do Until kare > 100 Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop Console.WriteLine( Program Sonu ) Şekil 5. Örnek 7 Doğru Çıktısı işlenecektir. ŞART KONTROLÜ SONDA OLAN DÖNGÜLER Do-Loop While/Until Deyimi Bu deyimde döngü, şart sağlandığı/sağlanmadığı sürece döngü tekrar edilir. Ancak burada şart kontrolü sonda yapıldığından döngü en azından 1 kez koşturulur. Do-Loop While Döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlandığı yani koşul TRUE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanmaması yani FALSE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. Do-Loop Until Döngüsü Daha öncede bahsedildiği gibi bu döngüde koşul sağlanmadığı yani koşul FALSE olduğu sürece döngü işlemi devam etmektedir. Koşulun sağlanması yani TRUE değeri üretilmesi ile döngüye girilmez ve işlem yapılmaz. 7

Bu deyimlerin akış şeması şöyledir Döngüye Giriş (İşlem Bloğu) İşlem 1.. İşlem N Koşul Döngüden Çıkış Şekil 7. Do-Loop Akış Şeması Bu deyimin şartı döngünün çıkışı olan Loop deyiminde kontrol edilmektedir. Dolayısıyla Loop a gelene kadar döngüdeki komutlar bir kez çalıştırılmış olacaktır. Yine burada da While veya Until deyimlerinden birisi kullanım amacına göre seçilmelidir. Örnek-8: 1 den başlayarak kaç sayının karesi 100 den büyüktür şeklinde bir soruyu çözmek istersek şöyle bir algoritma kurabiliriz. Dim sayi, kare As Integer = 1 Do Console.WriteLine(sayi & " Karesi " & kare) sayi += 1 kare = sayi*sayi Loop While kare <= 100 Console.WriteLine( Program Sonu ) VB Deyim Yapısı Do [ Continue Do ] [ işlemler] [ Exit Do ] Loop { While Until } koşul Bu program çalıştırıldığında Örnek-6 dan farklı olarak 11 in karesini de hesapladığını görebiliriz. 10 un karesini hesapladığında kare nin değeri 100 olacağından ve bu şartında TRUE değerini döndürdüğünden tekrar Do satırına dönülür ve 11 in kareside hesaplanarak yazdırılır. Ancak bu kez kare nin değeri 121 olacağından While FALSE değeri döndürecek ve işlemler Loop tan sonraki satır olan yazdırma komutu ile devam edecektir. 8

Özet Döngüler tekrarlı işlem gerektiren her program parçasının can kurtaran bileşenidir. Döngülerin veri girişinden verilerin dosyalardan okutulmasına yönelik birçok kullanım alanı bulunmaktadır. Farklı döngü çeşitleri ile çok kısa ve hafızada kapladığı boyut olarak çok az yer tutan dolayısıyla hafızaya yüklenmesi ve çalıştırılması kolay program tasarımlarına imkan sağlar. Sayısal değerler kuulanılacaksa ve sayılar sabit değerlerle artcak veya ekilecekse Fo-Next döngülerini kullanmak gerekir. Sayısal işlemler sonucu oluşacak değerleri veya öngörülemeyen sayıda döngüsel işlemi yapacak program parçalarını kullanmak gerekiyorsa Do While/Until - Loop döngülerini kullanmak gerekir. Bazı programlarda döngü içerisindekiişlemlerin en az birkez çalıştırılması gerekebilir, bu gibi durumlarda ise Do- Loop While/Until döngülerini kullanmak gerekir. Bu döngüye örnek olarak şifrenin alınması ve kontrol edilmesi en iyi örneklerden birisi olabilir. Döngü içerisinde alınan şifrenin program içerisindeki sabit değerle veya bir değişkenl içerisindeki veriile karşılaştırılacaksa bu döngü tipini kullanmak en doğru tercih olacaktır. 9