KONTROL YAPILARI (CONTROL STRUCTURES)



Benzer belgeler
Uygulama 1) Tur sayısını 1 den klavyeden girilen n e kadar ekrana yazarak birikimli (kümülatif) toplam alan kaynak kodları yazınız.

Uygulama 1) Sabit olarak belirlenen sayıda tekrar eden (5 kez) Visual Basic kaynak kodlarını yazınız.

Program AkıĢ Kontrol Yapıları

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

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Uygulama1) Şart yapısının kullanımı CheckBox1 bileşeninin işaretlendiğinde ekranda Kutu işaretlendi mesajı veren kodları yazınız.

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

MT 373 Visual Basic Programlama Dersi

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

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

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

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

BİLGİSAYAR PROGRAMLAMA DERSİ

BİL-142 Bilgisayar Programlama II

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

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

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.

UYGULAMALAR -2 Select case Yapısı: Select Case case case case case case is case Else End Select Örnek:

Program Akış Kontrol Yapıları

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

PROGRAMLAMA DİLLERİ I

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

Algoritmalar ve Programlama. Algoritma

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


Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

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

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

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

De iflken = InputBox Görüntülenecek Metin Bafllık. InputBox tan gelecek cevap, bir de iflkene aktarılmalıdır. End Sub B R SAYI TUT

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

ALGORİTMA VE PROGRAMLAMA I

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

Timer İle arka plan renk değişimi

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

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

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

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

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

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

Java da İşleçler, Ders #3 (4 Kasım 2009)

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

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

ALGORİTMA VE PROGRAMLAMA I

SİNOP ÜNİVERSİTESİ MESLEK YÜKSEKOKULU MEKATRONİK PROGRAMI

Akış Kontrol Mekanizmaları

C Dersleri Bölüm 3 : Program akışı

1. PL/SQL de kontrol yapıları

Diziler İndisli Değişkenler

SAB104 Bilgisayar Programlama

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

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

Algoritma ve Programlamaya Giriş

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

Algoritmanın Hazırlanması

ALGORİTMA KAVRAMI. Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir.


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

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

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

İÇ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

Nesne Yönelimli Programlama

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

Windows Nasıl Çalışır? Pencereler (window), Hareketler (event) ve Mesajlar (message)

Python Programlama Dili

TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları

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

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

UYGULAMALAR. İkinci liste kutusu (List 2) Birinci liste Kutusu (List 1) Metin Kutusu

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

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

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

PROGRAMLAMAYA GĐRĐŞ I

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

BİLGİSAYAR PROGRAMLAMA DERSİ

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

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

Internet Programming II

BİLGİSAYAR PROGRAMLAMA DERSİ

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Dr. Musa KILIÇ Öğretim Görevlisi

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir.

VISUAL BASIC STANDART KÜTÜPHANE FONKSİYONLARI

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Ders - 7 while döngüsü

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Transkript:

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 0 KONTROL YAPILARI (CONTROL STRUCTURES) GĠRĠġ Kontrol yapıları, program akışını değiştirmek için kullanılan yapılardır. Yapısal programlama dillerinde programın işleyişi ilk satırdan son satıra doğru ilerler ve bu işleyiş sırası, şartlı veya şartsız olarak değiştirilebilir. İşte; programın işleyiş yönünün şartlı veya şartsız olarak değiştirilmesi işlemine dallanma (branching) denir. Dallanma işlemini gerçekleştiren komutlara da kontrol komutları denir. Program akışının değişmediği sıralı yapıları saymaz isek seçimli ve tekrarlı yapılar olmak üzere iki farklı tipte kontrol yapısı ve komutları mevcuttur. Programın işleyiş yönünü şartsız olarak değiştirmede GOTO ( Git) deyimi kullanılır. Kullanım Şekli; GoTo <etiket> şeklindedir. Yapısal programlamada GOTO komutunu sık kullanmaktan kaçınmak gerekir. GOTO kullanımı, hata kontrolü ve program takibini zorlaştırır. NOT: GOTO komutu yerine seçimli ve tekrarlı kontrol yapıları kullanılmalıdır. SIRALI YAPI (SEQUENCE STRUCTURE) Sıralı yapı, komutların sırası ile gerçekleştiği en basit kontrol yapısıdır. Program işleyişi ilk satırdan son satıra doğru sırası ile gerçekleşir. Tek girişli, tek çıkışlı basit bir kontrol yapısıdır.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 1 ġekil 3.1. Sıralı Yapı SEÇĠMLĠ (KARAR) YAPILAR (SELECTION STRUCTURES) Seçimli (selection) yapıda bir şarta (koşula) bağlı olarak bir ya da daha fazla seçeneklerden bir tanesine dallanma işlemi gerçekleştirilir. Şartlı dallanma işlemi sayesinde, program şarta bağlı olarak hangi işlemi yapacağına karar verir. Visual Basic, Java gibi dillerde üç adet seçme işlemini gerçekleştiren yapı vardır. Bunlar IF, IF / ELSE, SELECT( SWITCH) CASE yapılarıdır. TEK SEÇĠMLĠ YAPI ( IF/THEN DEYĠMĠ) Koşula bağlı olarak tek bir işlemi yerine getiren yani şartlı dallanma işlemini gerçekleştiren yapıdır. Hemen hemen tüm programlama dillerinde bu işlem için IF deyimi kullanılır. Tek seçimli yapılara örnek verirsek; Eğer Hava yağmurlu Ġse şemsiyeni al. Eğer Yemek pişti Ġse ocağın altını kapat Eğer Aldığın Not 50 den fazla Ġse sınavı geçtin

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 2 Şeklindeki ifadelerde bir koşula bağlı olarak tek bir işlem gerçekleşir. Koşul doğru (true) ise işlem yapılır. Koşul yanlış (false) ise herhangi bir işlem yapılmaz, program işleyişi bir alt satırdan devam eder. ġekil 3.2. Tek Seçimli Yapı (IF/THEN deyimi) Örnek 3.1. Dışardan girilen Sayı sıfırdan büyük ise girilen sayının karesini alan programı yazınız. Algoritması; 1. Başla 2. Sayı gir (sayi) 3. Eğer sayi >0 ise kare=sayi^2 4. Yaz kare yi 5. Dur VB Dilinde Kodlanması; Sayi=Val(Inputbox( Sayı gir )) IF sayi >0 THEN kare=sayi^2 END IF PRINT kare NOT: IF li ifade tek bir satıra sığmıyorsa END IF ile sonlandırılır ÇĠFT SEÇĠMLĠ YAPI ( IF /THEN / ELSE DEYĠMĠ )

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 3 Bu kullanımda eğer (IF) den sonra verilen şart sağlanırsa <işlem 1> şart sağlanmazsa ELSE den sonraki < işlem 2 >gerçekleştirilir. EĞER < koşul > doğru ĠSE < işlem 1 > yap değilse < işlem 2> yap. ġekil 3.3. Çift Seçimli Yapı (IF/THEN/ELSE deyimi) Kullanım ġekli; a). b). IF < Şart >THEN <İşlem 1> ELSE <İşlem 2> IF <Şart> THEN <Yapılacak İşlemler 1> ELSE <Yapılacak İşlemler 2> END IF NOT: Bu kullanım şekilleri arasındaki tek fark If /Then yapısı tek satıra sığmıyorsa End If komutu ile sonlandırılmaktadır. NOT: Koşul kısmında karşılaştırma operatörlerinden =, < >, >, <, >=, <= biri mutlaka kullanılmalıdır. Örnek 3.2. Dışardan girilen nota göre öğrencinin o dersten geçip, geçmediğini ekranda gösteren programı yazınız. Algoritması; 1. Başla

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 4 2. Eğer öğrencinin notu 50 den büyük veya eşitse Yaz Geçti Değilse Yaz Kaldı 3. Dur VB Dilinde Kodlanması; Dim not1 As Integer not1 = Val(InputBox("Notu giriniz")) If not1 >= 50 Then Print "Geçti" End If If not1 < 50 Then Print "Kaldı" End If IIF FONKSĠYONU: IF deyiminin kısıtlı bir şeklidir. Yalnızca iki olasılığın söz konusu olduğu durumlarda IF /THEN/ELSE deyimi yerine IIF fonksiyonu kullanılabilir c). Kullanım ġekli: IIF (Koşul, birinci ifade, ikinci ifade) Örnek 3.3. Örnek 3.2 i IIF Fonksiyonunu kullanarak yazınız. Dim not1 as integer, sonuc as string not1=val(inputbox( Notu giriniz )) sonuc = IIf (not1 >= 50, "Geçti", "Kaldı") Print sonuc Örnek 3.4. Dışardan girilen sayının negatif mi, pozitif mi olduğunu ekranda gösteren programı yazınız. Bu programı 3 farklı şekilde kodlayabiliriz. Doğal olarak üçü de aynı sonucu verecektir. a). sayi=val(inputbox( Sayı Giriniz )) IF sayi<0 THEN

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 5 PRINT Sayı Negatif ELSE PRINT Sayı Pozitif END IF b) c) sayi=val(inputbox( Sayı Giriniz )) IF sayi<0 THEN PRINT Sayı Negatif ELSE PRINT Sayı Pozitif sayi=val(inputbox( Sayı Giriniz )) Print IIF( sayi<0, Sayı Negatif, Sayı Pozitif ) ÇOK SEÇĠMLĠ YAPI ( Ġç Ġçe IF ya da Select Case Yapısı ) Bu yapıda koşula veya koşullara bağlı olarak ikiden fazla seçim varsa Select Case deyimi veya iç içe IF/THEN/ELSE yapıları kullanılır. Yani bu yapıda birden fazla karar yapısı iç içe kullanılır. ġekil 3.4.Çoklu Seçim Yapıları (Select Case Deyimi)

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 6 ĠÇ ĠÇE IF/ ELSEIF YAPISI Daha önce belirttiğimiz gibi koşul sayısı ikiden fazla olduğunda kullanılacak yapılardan biridir. İç içe IF yapısında kontrol edilmesi gereken koşul sayısının bir eksiği kadar IF komutu kullanılır. Kullanım ġekli; IF <Koşul 1> Then Yapılacak İşlemler 1 ELSEIF <Koşul 2> Then Yapılacak İşlemler 2 ELSEIF <Koşul 3> Then Yapılacak İşlemler 3 ELSE Yapılacak İşlemler 4 END IF SELECT CASE YAPISI Girilen değişkenin belirli değerlerine göre yapılacak farklı işlemlerin seçiminde kullanılır. Select Case deyimi tek bir değişkenin değerine göre, sınırsız sayıda işlem yapma imkânı veren bir komuttur. Kullanım ġekli; Select Case değişken Case d1 Değişkenin d1 değeri aldığı durumlarda yapılacak işlemler Case d2 Değişkenin d2 değeri aldığı durumlarda yapılacak işlemler Case d3 to d9

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 7 Case Is > d10 Case Else End Select d3 ve d9 aralığındaki tüm değerler için yapılacak işlemler Değişkenin d10 dan daha büyük değerler aldığında yapılacak işlemler Değişkenin farklı değerler aldığı durumlarda yapılacak işlemler NOT: Koşul sayısının 4 den fazla olduğu durumlarda iç içe IF ya da Select Case yapısı kullanılır. Örnek 3.5: Girilen yaş değerine göre kişinin durumunu aşağıdaki kriterlere göre bulan programı yazınız. Algoritması; 1.Başla

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 8 2.Yaş Değerini gir 3.Eğer Girilen Yaş Değeri 0 ile 5 arasında ise Bebek 4.Değilse-Eğer 5 ile 14 arasında ise Çocuk 5.Değilse-Eğer 15 ile 35 arasında ise Genç 6.Değilse-Eğer 36 ile 45 arasında ise Orta Yaşlı Değilse İhtiyar Yaz 7.Dur Algoritmasını oluşturduğumuz programı 3 farklı komut yapısı ile Visual Basic dilinde kodunu yazarsak; a) Ġç içe IF / THEN / ELSE kullanarak Dim yas As Integer yas = Val(InputBox("Yaşı giriniz")) If yas >= 0 And yas <= 5 Then Print "Bebek" ElseIf yas > 5 And yas <= 14 Then Print "Çocuk" ElseIf yas > 15 And yas <= 35 Then Print "Genç" ElseIf yas > 35 And yas <= 45 Then Print "Orta Yaşlı" Else Print "İhtiyar" End If b) Select Case Deyimini kullanarak; Cls yas = Val(InputBox("Yaşı Giriniz")) Select Case yas Case 0 To 5: Print "BEBEK" Case 6 To 14 MsgBox("ÇOCUK") Case 15 To 35: Print "GENÇ" Case 36 To 45: Print "ORTA YAŞLI" Case Else Print "İHTİYAR"

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 9 End Select c) Switch komutunu kullanarak (Visual Basic 2010 da kaldırıldı); Cls Dim yas as integer, sonuc as string yas = Val(InputBox("Yaşı Giriniz")) Sonuc = Switch(yas <= 5, "BEBEK",yas <= 15, "ÇOCUK", yas <= 35, "GENÇ", _ yas <= 45, "ORTA YAŞLI", yas > 45, "İHTİYAR") Print Sonuc NOT: Visual Basic dilinde kod yazımı bir alt satırdan itibaren devam edecekse boģluk ve _ iģareti konur. Choose FONKSĠYONU: İkiden fazla çoklu seçimlerde IF /THEN/ELSE veya IIF yerine choose fonksiyonu kullanılabilir c). Kullanım ġekli: Choose (Değişken, birinci değer, ikinci değer, üçüncü değer, ) Örnek 3.6: Girilen ay numarasına göre ayın ismini yazan program Dim ay As Integer, sonuc As String ay = Val(InputBox("ay değerini giriniz")) sonuc = Choose(ay, "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık") MsgBox(sonuc)

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 10 Örnek : Select Case komutları ile dört iģlem yapan programı yazınız. Sub Main() Dim sayi1, sayi2 As Integer Dim sonuc As Single Dim islec As String sayi1 = Val(InputBox("birinci sayi")) sayi2 = Val(InputBox("ikinci sayi")) islec = InputBox("işlem operatotorunu giriniz") Select Case islec Case "+" : sonuc = sayi1 + sayi2 Case "-" : sonuc = sayi1 - sayi2 Case "*" : sonuc = sayi1 * sayi2 Case "/" : sonuc = sayi1 / sayi2 Case "^" : sonuc = sayi1 ^ sayi2 End Select MsgBox("sonuc=" & sonuc) Uygulama Örneği: Aşağıdaki hesap makinesini gerçekleştiriniz.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 11 Public Class Form1 Dim sayi1 As Single Dim sayi2 As Single Dim sonuc As Double Dim islec As String Private Sub cmd0_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd0.click text1.text = text1.text & "0" Private Sub cmd1_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd1.click text1.text = text1.text & "1" Private Sub cmd2_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd2.click text1.text = text1.text & "2" Private Sub cmd3_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd3.click text1.text = text1.text & "3" Private Sub cmd4_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd4.click text1.text = text1.text & "4" Private Sub cmd5_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd5.click text1.text = text1.text & "5" Private Sub cmd6_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd6.click text1.text = text1.text & "6" Private Sub cmd7_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd7.click text1.text = text1.text & "7" Private Sub cmd8_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd8.click text1.text = text1.text & "8" Private Sub cmd9_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmd9.click text1.text = text1.text & "9" Private Sub cmdesit_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdesit.click

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 12 sayi2 = Val(text1.Text) Select Case islec Case "+" : sonuc = sayi1 + sayi2 Case "-" : sonuc = sayi1 - sayi2 Case "*" : sonuc = sayi1 * sayi2 Case "/" : sonuc = sayi1 / sayi2 Case "^" : sonuc = sayi1 ^ sayi2 End Select text1.text = sonuc Private Sub cmdtopla_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdtopla.click sayi1 = Convert.ToSingle(text1.Text) text1.clear() islec = "+" Private Sub cmdnokta_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdnokta.click text1.text = text1.text & "." Private Sub cmdcikar_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdcikar.click sayi1 = Convert.ToSingle(text1.Text) text1.clear() islec = "-" Private Sub cmdus_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdus.click sayi1 = Convert.ToSingle(text1.Text) text1.clear() islec = "^" Private Sub cmdkarakok_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdkarakok.click text1.text = Math.Sqrt(Val(text1.Text)) Private Sub cmdclear_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdclear.click text1.clear() Private Sub cmdcarp_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdcarp.click sayi1 = Convert.ToSingle(text1.Text) text1.clear() islec = "*" Private Sub cmdbol_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdbol.click sayi1 = Convert.ToSingle(text1.Text) text1.clear() islec = "/"

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 13 Private Sub cmdyuzde_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cmdyuzde.click text1.text = (Val(text1.Text)) / 100 End Class TEKRARLI YAPILAR -DÖNGÜLER (REPETITION STRUCTURES - LOOPS) Algoritma geliştirirken bazı işlemleri sürekli tekrarlanmamız gerekir. Tekrar edilen işlemleri göstermenin ya da ifade etmenin daha kolay ve anlaşılır bir yolu vardır, bu yola döngü ya da tekrarlı yapılar denir. Tekrarlama işleminin kaç kez yapılacağının baştan belli olduğu yapılara tekrar sayısı belli olan döngüler (for next döngüsü gibi), tekrarlamanın bitişinin koşula bağlı olduğu diğer bir ifade ile koşul gerçekleştiği veya gerçekleşmediği sürece işlemlerin tekrar ettiği yapılara tekrar sayısı koģula bağlı döngüler ( Do While.. Loop, Do Until Loop döngüleri gibi ) denir. Örnek vermek gerekirse 1 den 10 a kadar sayıları toplayan bir program yazdığınızda 9 kez tekrarlama yaptırıyorsanız bu tekrarlama sayısının başlangıçta belli olduğu anlamına gelir. Ancak girilen sayı sıfırdan farklı olduğu sürece sayının karesini alan bir programda tekrar sayısını baştan bilemeyiz. TEKRAR SAYISI BELLĠ OLAN DÖNGÜLER Daha önceki bölümlerde işlemleri tekrar etmek için Sayaç kullanmıştık. Sayaç değişkenine başlangıç değerini atadıktan sonra artırma ya da azaltma işlemi yapıyorduk ve sayacın son değerine ulaşıp ulaşmadığını her işlemden sonra kontrol ediyorduk. Döngü yapıları bu işlemleri oldukça basitleştirmektedir. Tekrar sayısının baştan belli olduğu döngülere en güzel örnek For / Next döngü yapılarıdır. Bu yapının akış şeması aşağıda gösterilmiştir.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 14 ġekil 3.5. Tekrar Sayısı Belli Olan Döngüler ( For / Next Deyimi ) Döngü Sonu: Döngü değişkeninin son değere ulaşıp ulaşmadığını kontrol eder. Bir nevi döngü yapısının patronudur. Döngü değiģkeni: Döngü yapısının tekrarının denetlenmesi amacı ile kullanılan değişkendir. Ġlk değer: Döngü değişkeninin alacağı ilk değerdir. Son değer: Döngü değişkeninin alacağı son değerdir. ArtıĢ miktarı: Döngü Değişkeninin ilk değerden son değere kadar alacağı değerlerdeki artış miktarıdır. Artış miktarı belirtilmez ise bu değer bir (1) kabul edilir. Tekrarlanan ĠĢlemler: Döngü içerisinde yapılan işlemlerdir. For / Next Deyiminin Kullanım ġekli; FOR değişken= ilk değer TO Son değer [ Step Artış Miktarı ] * NEXT değişken * ArtıĢ Miktarı ( STEP komutu ) isteğe bağlıdır, belirtilmez ise artım miktarı 1 kabul edilir Örnek 3.9a. 2 den 20 ye kadar olan çift sayıları ekranda gösteren programı döngü ile yazınız. For s=2 to 20 Step 2 Print s; Next s Komut satırlarını yazmamız yeterlidir.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 15 NOT: Programın Ekran Çıktısı şeklindedir. Örnek 3.9b: 1 den 10 a kadar çift sayıların toplamını veren programın konsol uygulaması: Sub Main() Dim i, t As Integer For i = 1 To 10 Step 2 t += i Next Console.WriteLine(t) Console.ReadKey() NOT: For/Next döngüsünden çıkmak için Exit For deyimi kullanılır. Örnek 3.10. Aşağıdaki programın ekran çıktısı ne olur. Dim i As Integer For i = 1 To 10 If i = 6 Then Exit For Döngüden çıkılıyor End If Print i; Next i Print "döngüden çıkıldığında i değeri ="; i Program normalde 1 den 10 kadar yazması gerekirken i=6 değerine ulaştığında döngüden çıkılır ve Programın ekran çıktısı şeklindedir Örnek 3.11. 5 defa ekrana HANZAR yazan programı döngü ile yapınız. Dim i As Integer For i = 1 To 5 Print "hanzar"

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 16 Ekran çıktısı: Next i Örnek 3.12. Dışardan girilen sayının faktöriyelini alan programı yazınız. Algoritması; 1. Başla 2. Faktöriyeli alınacak Sayıyı gir ( N ) 3. Faktöriyel değişkenini 1 e eşitle (Fakt=1) 4. Döngü oluştur ( For I= 1 TO N ) 5. Döngü içerisinde gerçekleşecek işlemi yaz. ( Fakt=Fakt * I ) 6. Döngüyü Sonlandır ( Next I ) 7. Sonucu göster ( Fakt ) 8. Dur VB Dilinde Kodlanması; Dim n As Integer, fakt As Integer n = Val(InputBox("faktöriyeli alınacak sayıyı giriniz")) fakt = 1 For i = 1 To n fakt = fakt * i Next i Print n; "!=" ; fakt Programın Ekran Çıktısı; 5 sayısı girildiğinde yandaki sonuç elde edilmiştir. Örnek 3.13. 0 dan 100 e kadar olan tek sayıların toplamını bulan programı yazınız. Algoritması ;

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 17 1. Başla 2. Toplam değişkenini sıfıra eşitle(top=0) 3. Sadece tek sayıları sayan Döngüyü başlat (For a=1 to 100 step 2) 4. Tek sayıları birbiri ile topla (Top=Top + a) 5. Döngüyü sonlandır ( Next a) 6. Toplam değeri ekranda göster 7. Dur VB Dilinde Kodlanması; Cls Top=0 For a=1 To 100 Step 2 Top=Top+a Next a Print Toplam= ; Top Programın ekran çıktısı; Toplam=2500 olarak elde ettik. Örnek 3.14. Klavyeden girilen iki pozitif tamsayının çarpımını çarpma operatörü kullanılmadan bulan programı yazınız. Algoritması ; 1. Başla 2. Toplama değişkenini sıfıra eşitle { Carp=0 } 3. Birbiri ile çarpılacak olan sayıları gir { S1, S2 } 4. Döngüyü başlat {1 den ilk sayıya kadar -- For I= 1 To S1 } 5. İkinci sayıyı kendisiyle topla { Carp=Carp+S2 } 6. Döngüyü sonlandır { Next I } 7.Toplam sonucunu ekrana yaz ( S1*S2=Carp) 8. Dur VB Dilinde Kodlanması; Cls Dim Carp as integer, S1 as integer, S2 as integer, I as integer Carp=0 S1=Val( Inputbox( 1.Sayıyı Giriniz: ))

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 18 S2=Val( Inputbox( 2.Sayıyı Giriniz: )) For I= 1 To S1 Carp=Carp+S2 Next I Print S1; * ; S2 ; = ; Carp Program, Örneğin 3*4 işlemini, çarpma operatörünü kullanmadan 4 sayısını 3 kez toplayarak gerçekleştirir. Örnek: Dim numara = {125, 138, 156, 205, 308, 947} Dim dizi As Integer For Each dizi In numara Console.Write(dizi & " ") Next Console.ReadKey() Programın ekran çıktısı: TEKRAR SAYISI KOġULA BAĞLI DÖNGÜLER İşlemlerin ne kadar tekrarlanacağının baştan belli olmadığı ancak bir koşulun doğru ya da yanlış olmasına bağlı olarak tekrar sayısının belirlendiği bu döngüleri, koşul kontrolünün yapıldığı yere göre ikiye ayırırız. Birincisinde program başında koşul kontrolü yapılır,

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 19 diğerinde ise bir defa işlem yapıldıktan sonra koşulun doğru ya da yanlış olmasına göre işlem tekrarı yapılır. Koşul denetiminin döngü başında gerçekleştiği yapılarda Do While / Loop, Do Until / Loop ve While / End While deyimleri kullanılırken, koşul denetiminin bir defa işlem gerçekleştikten sonra yapıldığı döngülerde Do / Loop While ve Do / Loop Until deyimleri kullanılır. Bu deyimlerin akış şemaları ile gösterimi aşağıda verilmiştir. ġekil 3.6. Do / Loop döngülerinin Akış şemaları ile gösterimi NOT: Do While / Loop döngüsü ile While / End While döngüsü aynı işleve sahiptir. Ancak While / End While döngüsü yerine daha hızlı çalışan Do While / Loop döngüsü tercih edilir.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 20 DO - LOOP DÖNGÜLERĠNĠN KULLANIM ġekġllerġ a) Do While (koşul) Loop (İşlemler) Sürece < koģul > yap (iģlemler) Verilen koşul doğru olduğu sürece belirtilen işlemler tekrar edilir. Verilen Koşul koşul kontrol doğru işlemi olduğu döngünün sürece belirtilen başında yapılır. işlemler tekrar edilir. Koşul kontrol işlemi döngünün baģında yapılır. b) Do (İşlemler) Loop While (Koşul) Tekrarla (iģlemler) ta ki <koģul> Bir defa işlem yapıldıktan sonra koşul doğru olduğu sürece belirtilen işlemler tekrar edilir. Koşul kontrol işlemi döngünün sonunda yapılır. c) Do Until (Koşul) Loop (İşlemler) Sürece < koģul > yap (iģlemler) Verilen koşul yanlıģ olduğu sürece belirtilen işlemler tekrar edilir. Koşul kontrol işlemi döngünün baģında yapılır. d) Do (İşlemler) Loop Until (Koşul) Tekrarla (iģlemler) ta ki <koģul> Bir defa işlem yapıldıktan sonra koşul yanlıģ olduğu sürece belirtilen işlemler tekrar edilir. Koşul kontrol işlemi döngünün sonunda yapılır. NOT: While ifadesi koşul doğru olduğu sürece işlem yapılacağını, Until ifadesi ise koşul yanlış olduğu sürece işlem yapılacağını belirtir. Örnek 3.15. Aşağıdaki programların ekran çıktılarını dikkatle inceleyiniz.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 21

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 22 NOT: Döngü yapılarında muhakkak döngüden çıkışı gerçekleştirecek yani koşulu sağlayacak bir ifade döngü içerisinde bulunmalıdır. Aksi takdirde program çıktı vermez, kısır döngüye girer. Örnek 3.16. AĢağıdaki programın ekran çıktısı ne olur. Program normalde 1 den 10 kadar olan sayıların toplamını yapıyor ancak değişkenler ilk değerlerini aldıktan sonra Exit Do ifadesi döngüden çıkmamıza neden olur ve Ekrana t nin değerini 1 olarak yazılır. Programdan Exit Do ifadesini çıkarırsak ekrana 55 değerini yazar. NOT: Do / Loop döngülerinden çıkmak için Exit Do deyimi kullanılır. Örnek 3.18. Dışardan girilen sayı sıfırdan farklı olduğu sürece o sayının karesini alan programı yazınız. Algoritması; 1. Başla 2. Döngüyü başlat 3. Sayı gir 4. Karesini al (Kare=Sayi^2) 5. Sonucu ekranda göster 6. Döngü kontrolü yap (sayi <>0) 7. Dur VB Dilinde Kodlanması;

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 23 Dim sayi As Integer Do sayi = Val(InputBox("bir sayı giriniz")) Kare = sayi ^ 2 Print Kare Loop While sayi <> 0 ĠÇ ĠÇE DÖNGÜ KULLANIMI Birden fazla döngü ve kontrol yapısını iç içe kullanabiliriz. Sıralama, matris veya tablo gibi iki üç boyutlu işlemlerin yapıldığı uygulamalarda sıklıkla iç içe döngüleri kullanırız. İç içe döngü yapıları, bir döngü içerisinde başka bir döngü ya da döngülerin kullanıldığı yapılardır. İç içe döngülere verebileceğimiz en güzel örneklerden biri zaman sistemimizdir. Bir gün, 24 saatten, 1 saat 60 dakikadan, 1 dakika 60 saniyeden ibarettir ve hepsi iç içedir. Zaman sisteminde en içteki döngüyü saniye temsil etmektedir. Saniye en son değerine ulaştığında yani 60 değerini aldığında dıştaki döngü bir artar yani dakika bir artar. Dakika en son değerine ulaştığında dıştaki döngü yani saat bir artar. Saat son değerine ulaştığında yani 24 olduğunda bir gün tamamlanmış olur. ġekil 3.7. Bir yıllık zaman döngümüz

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 24 Zaman sistemimize dikkat edilirse, saniye tamamlanmadan dakika, dakika tamamlanmadan saat başlamaz. Yani dakika saniyenin, saat dakikanın önüne geçmez, birbirine karışmaz. Benzer şekilde ç içe döngü kurulurken dikkat edilmesi gereken en önemli nokta, içteki döngü tamamen bitmeden dıştaki döngüye geçilmemesidir. Yani döngülerin birbiri ile çakışmamasına dikkat edilmelidir. ġekil 3.8. İç içe For / Next Döngüleri ġekil 3.9. İç içe Do/ Loop Döngüleri NOT: İç içe döngülerde For / Next döngüsü ile Do / Loop döngüleri birlikte kullanılabilir Örnek 3.19. Şekildeki Çarpım Tablosunu oluşturup ekranda gösteren programı yazınız.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 25 İç içe For / Next döngülerine en güzel örnek çarpım tablosudur. İçteki döngünün her tamamlanışından sonra dıştaki döngü otomatik olarak bir artar. Dıştaki döngü değişkeni i=1 iken içteki döngü değişkeni j, 1 den 10 a kadar değer alır. j=10 olduktan sonra i değişkeni 2 değerini alır. i=2 iken j değişkeni tekrar 1 den 10 a kadar değer alır ve bu işlem 10 kez tekrarlanır. Yani toplam 100 kez çarpma işlemi gerçekleşir. Algoritması; VB Dilinde Kodlanması; Örnek 3.22. Aşağıdaki ekran çıktısını veren programı yazınız.

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 26 Programın VB Dilinde Kodlanması; a = "BULENT" For i = 1 To Len(a) harf = Mid(a, i, 1) For j = 1 To i Print harf; Next j Print Next i NOT: Örneğimizde MID komutu String bir ifadenin (a), istenilen bir karakterinden başlamak üzere (i), istenilen sayıda (1) karakterini alır ve değişkene (harf) aktarır. Konsol Uygulama Kodu: Dim a As String = "BULENT" Dim harf As Char For i = 1 To Len(a) harf = Mid(a, i, 1) For j = 1 To i Console.Write(harf) Next j Console.WriteLine() Next i Console.ReadKey() Örnek 3.23. Dışardan girilen 8 adet sayı içerisinden pozitif ve negatif olanların sayısını bulan programı yazınız. Algoritması; 1) Başla 2) Pozitif ve negatif sayı âdeti değişkenlerini (po, ne) sıfıra eşitle. 3) Döngüyü başlat {For i=1 to 8 } a) Sayı gir b) Eğer girilen sayı sıfırdan büyükse po yu 1 artır {po=po+1} c) Eğer girilen sayı sıfırdan küçükse ne yi 1 artır {ne=ne+1} 4) Döngüyü Sonlandır { Next i }

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 27 5) Pozitif ve Negatif sayıların adedini ekrana yaz { po, ne } 6) Dur VB Dilinde Kodlanması; Dim i As Integer, a As Integer, po As Integer, ne As Integer po = 0: ne = 0 For i = 1 To 8 a = Val(InputBox("sayi giriniz")) If a > 0 Then po = po + 1 End If If a < 0 Then ne = ne + 1 End If Next i Print "pozitif sayıların sayısı..:"; po Print "negatif sayıların sayısı..:"; ne

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 28 Diyalog Pencereleri INPUTBOX fonksiyonu, kullanıcının ekrandan bilgi girişini sağlar. Bu fonksiyonun genel formu aşağıdaki şekildedir : INPUTBOX (Mesaj, Açılacak formun başlığı, Giriş kutusunda başlangıçta bulunması istenen değer, Giriş formunun sol üst köşesinin X,Y koordinatları) Örnek: ad = InputBox("adinizi girin", "ögrenci girisi", "umit", 0, 0) MessageBox.Show Kullanım Ģekli: MessageBox.Show (Kullanıcıya verilecek mesaj, Form Başlığı, Butonlar, İkon, Varsayılan buton) Örnek: MessageBox.Show("siralama yapildi", "ornek mesaj kutusu", 2, 64) veya

Öğr.Gör.Bülent ÇOBANOĞLU, Visual BASIC Ders Notları-I 29 MessageBox.Show("siralama yapildi", "ornek mesaj kutusu", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Information) Örnek bir uygulama: Bir kafedeki garsona sipariş almada yardımcı olacak bir program yazalım. { Basılan mesaj kutusundan alınan mesaja göre iş yapan bir program olacak} Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If MessageBox.Show("Kahve İstermisniz?", "VBasic Cafe", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = MsgBoxResult.Yes Then MessageBox.Show("Evet, isterim") Else MessageBox.Show("Hayır, teşekkürler") End If Me.Close() End Class