AÖF Soru Bankası
YBS301U · Ünite 3

Visual Basic ile Program Akışını Yönetmek

  • 20 soru-cevap
  • İşlem Tablosu Programlama
1

Visual Basic ile programlama yaparken If-Then-Else gibi bir karar mekanizmasının yerine kullanabileceğiniz diğer bir karar mekanizması nedir?

Select-Case Is karar mekanizması kullanarak If-Then-Else karar mekanizmasıyla kontrol edebileceğiniz blokları yazabilirsiniz.

2

Sub Deneme()
If Sayac < 100 Then
    Devre = 0
    MsgBox "Sayaç 100 değerinin altında."
Else
    Devre = 1
    MsgBox "Sayaç İstenen Değere Ulaştı"
End Sub

Bloğundaki hata nedir?

Blok yapısı kullanıldığında her If deyimine karşılık gelen bir End If olmak zorundadır. Bu blokta End If kullanılmamıştır. 

3

Aşağıdaki kodda hata nerededir?

Sub BasitSoru()
Dim cevap As Integer
cevap = InputBox("Bir sorumuz var: En sevdiğiniz sayı hangisi? Lütfen 1, 2 veya 3'ten birini seçin.")

Select Case cevap
Case 1
MsgBox "Cevabınız: 1. Bu, güzel bir seçim!"
Case 2
MsgBox "Cevabınız: 2. Harika bir tercih!"
Case 3
MsgBox "Cevabınız: 3. Müthiş bir seçim!"
Case Else
MsgBox "Geçersiz bir seçim yaptınız. Lütfen sadece 1, 2 veya 3'ten birini seçin."
End Sub

Select Bloğu mutlaka End Select ile sonlandırılmalı.

4

Aşağıda verilen kod satırı içerisinde MsgBox satırında altı çizili yere gelmesi gereken karar ifadesi nedir?

Sub YasSorgusu()
   Dim yas As Integer
   yas = InputBox("Lütfen yaşınızı girin:")

   MsgBox _________(yas >= 18, "Yetişkinsiniz.", "Henüz        yetişkin değilsiniz.")
End Sub

Burada boş bırakılan yere gelecek ifade IIf olmalıdır. 

5

Aşağıda verilen kod çalıştırılırsa ve kullanıcı 0 girerse ne olur?

Sub RenkSecimi()
   Dim secim As Integer
   secim = InputBox("Favori renginizi seçmek için bir        sayı girin: 1. Kırmızı, 2. Mavi, 3. Yeşil, 4. Sarı")

    MsgBox Choose(secim, "Kırmızı", "Mavi", "Yeşil",        "Sarı")
End Sub

Eğer kullanıcı 0 girerse, Choose fonksiyonu geçerli bir seçenek döndürmez çünkü Choose işlevi 1'den başlayarak belirtilen sıradaki değeri seçer. Choose(0, ...) şeklinde bir çağrı yapıldığında, herhangi bir geçerli değer döndürülemediği için sonuç boş (Null) olacaktır. Bu durumda MsgBox boş bir mesaj gösterebilir veya hata oluşabilir.

6

Aşağıdaki ifadede kullanıcıdan 1 ile 7 arasında bir sayı girmesi istenmektedir. Eğer kullanıcı bunun dışında bir sayı girerse ne olur?

Sub GunSecimi()
   Dim gun As Integer
   gun = InputBox("Haftanın bir gününü seçmek için 1 ile 7 arasında bir sayı       girin:")

   MsgBox Switch( _
      gun = 1, "Pazartesi", _
      gun = 2, "Salı", _
      gun = 3, "Çarşamba", _
      gun = 4, "Perşembe", _
      gun = 5, "Cuma", _
      gun = 6, "Cumartesi", _
      gun = 7, "Pazar", _
   )
End Sub

Bu durumda kullanıcı 8 girdiğinde Switch fonksiyonu belirtilen koşullardan hiçbirine uymadığı için MsgBox boş bir değer döndürecektir, bu da bir hata ya da boş bir mesaj görüntülenmesine neden olabilir. Switch ifadesi yalnızca belirtilen koşullardan birine uyduğu durumda bir değer döner; koşullardan hiçbiri uymuyorsa Null döner.

7

Aşağıdaki kod çalıştırıldığında MsgBox içerisinde ne görülür?

Sub Soru()
   Dim toplam As Integer
   ta = 0

   Dim i As Integer
   For i = 1 To 5
      ta = ta + (i ^ 2)
   Next i

   MsgBox ta
End Sub

MsgBox içerisinde 55 sayısı görülür

8

Aşağıdaki kodda hata nerededir?

Sub Soru()
   Dim toplam As Integer
   ta = 0

   Dim i As Integer
   For i = 5 To 1
      ta = ta + (i ^ 2)
   Next i

   MsgBox ta
End Sub

Bu kodda, For i = 5 to 1 olarak yazıldığından, döngü doğru çalışmayacaktır, çünkü döngünün artış yönü varsayılan olarak yukarı doğrudur ve i değişkeni 5'ten 1'e doğru ilerleyemez.

9

Aşağıdaki kod çalıştırıldığında MsgBox içerisinde ne görülür?

Sub Soru()
   Dim notlar(1 To 5) As Integer
   Dim toplam As Integer
   Dim cevap As Double
   Dim i As Integer

   notlar(1) = 1
   notlar(2) = 1
   notlar(3) = 1
   notlar(4) = 1
   notlar(5) = 1

   toplam = 0
   For i = LBound(notlar) To UBound(notlar)
       toplam = toplam + notlar(i)
   Next i

   cevap = toplam / (UBound(notlar) - LBound(notlar) + 1)

   MsgBox cevap
End Sub

MsgBox içerisinde 1 görülür. Bu 5 sayının ortalamasıdır

10

Bir dizinin indeksinin 0 yerine 1 den başlamasını nasıl sağlarsınız?

Option Base 1 ifadesi kullanarak sağlanır

11

Aşağıdaki kod parçasında ________ şeklinde gösterilen boşluğa ne ifade gelmelidir?

Sub ListeyiYazdir()
   Dim ogrenciler As New Collection
   Dim ogrenci As Variant

    ' Listeye bazı öğrenci isimlerini ekleyelim
   ogrenciler.Add "Ali"
   ogrenciler.Add "Ayşe"
   ogrenciler.Add "Mehmet"
   ogrenciler.Add "Elif"
   ogrenciler.Add "Ahmet"

   ' Listeyi dolaşarak her bir öğrenciyi yazdıralım
   For __________ ogrenci In ogrenciler
       MsgBox "Öğrenci adı: " & ogrenci
   Next ogrenci
End Sub

Each ifadesi gelmelidir.

12

Aşağıdaki programda önemli bir hata vardır. Bu nedir?

Sub HataliKod()
   Dim toplam As Integer
   Dim i As Integer
   toplam = 0
   i = 1
   Do While i <= 10
         toplam = toplam + i
   Loop

MsgBox "Toplam: " & toplam
End Sub

i değeri döngü içerisinde arttırılmadığından sonsuz döngü oluşur. 

13

Aşağıda, Do Until döngüsü kullanarak kullanıcıdan şifre girmesini isteyen ve doğru şifre girilene kadar döngüyü sürdüren bir VBA kodu örneği verilmiştir. Kodun doğru çalışması için  __________________ ile gösterilen yere ne gelmelidir?

Sub SifreDogrulama()
   Dim sifre As String
   Dim dogruSifre As String
   dogruSifre = "12345" ' Doğru şifreyi burada tanımlıyoruz

   Do
      sifre = InputBox("Lütfen şifreyi girin:")

      If sifre = dogruSifre Then
         MsgBox "Şifre doğru. Giriş başarılı!"
      Else
         MsgBox "Hatalı şifre, tekrar deneyin."
      End If

  'buraya ne yazılacak?
   __________________________________
End Sub

Loop Until sifre = dogruSifre  yazılması gerekir

14

Aşağıda, kullanıcıdan sürekli sayı alıp sıfır (0) girildiğinde döngüyü sonlandıran ve girilen tüm sayıların toplamını gösteren VBA kodu bulunmaktadır. Ancak burada eksik bir kod parçası bulunmakta ve ________ şeklinde gösterilmektedir. Bu boşluğa kodun doğru çalışması için ne yazılmalıdır?

Sub SayilariTopla()
   Dim sayi As Double
   Dim toplam As Double
   toplam = 0

   Do While True
        sayi = InputBox("Bir sayı girin (durdurmak için 0 _ girin):")

        If sayi = 0 Then

                 'Boşluğa ne yazmak lazım?
            ________________________


        End If

       toplam = toplam + sayi
    Loop

    MsgBox "Girilen sayıların toplamı: " & toplam
End Sub

Exit Do yazmak lazım

15

Aşağıdaki kod parçası çalıştırıldığında ve kullanıcı sırayla 1 2 3 0 sayılarını bu kod için kullandığında MsgBox içerisinde ne görülür?

Sub Soru()
   Dim sayi As Double
   Dim sonuc As Double
   sonuc= 0

   Do While True
      sayi = InputBox("Bir pozitif sayı girin (bitirmek için  negatif bir sayı girin):")

      If sayi < 0 Then
         Exit Do
      End If

      sonuc = sonuc - sayi
   Loop

   MsgBox "Sonuç : " & sonuc
End Sub

Sonuç : -6 ifadesi görülür

Kullanıcıdan InputBox ile pozitif bir sayı girmesini ister.
Kullanıcı negatif bir sayı girdiğinde, Exit Do ile döngü sonlanır.
Eğer sayı pozitif ise, bu sayı sonuc değişkeninden çıkarılır
Döngü tamamlandığında, tüm eksi sayıların toplamı MsgBox ile gösterilir.

16

Program içerisinde bir yordam çağrıldığında, bu yordamın sonuna gelmeden yordamdan çıkmak için hangi ifade kullanılır?

Exit Sub

17

Aşağıdaki program çalıştırıldığında MsgBox içerisinde ne görülür?

Sub AnaYordam()
   Dim sayi As Integer
   sayi = 10
   AltYordam sayi
   MsgBox "Alt yordamdan sonra ana yordam değeri: " & sayi
End Sub

Sub AltYordam(ByVal deger As Integer)
   deger = deger + 5 * deger
End Sub

MsgBox içerisinde 10 değeri görülür

18

Aşağıdaki kod parçasında ne zaman MsbBox içerisinde Hata görülür?

Sub BolmeIslemi()
   On Error GoTo HataYakalama ' Hata durumunda HataYakalama kısmına git

   Dim sayi1 As Double
   Dim sayi2 As Double
   Dim sonuc As Double

   sayi1 = InputBox("Birinci sayıyı girin:")
   sayi2 = InputBox("İkinci sayıyı girin:")

   ' Bölme işlemi
   sonuc = sayi1 / sayi2
   MsgBox "Bölme sonucu: " & sonuc

   Exit Sub ' Hata olmadığında buraya kadar gelir ve sub sonlanır

   HataYakalama:
   MsgBox "Hata", vbCritical, "Hata"
End Sub

sayı2 değeri 0 olduğunda MsgBox içerisinde Hata yazılır.

19

Sub ve Function yordamları arasındaki fark nedir?

Function parametre döndürür ancak Sub döndürmez

20

Aşağıda verilen programın amacı nedir?

Sub Ornek()
   Dim toplam As Double
   toplam = 0 

   Dim hücre As Range
   For Each hücre In Range("A1:A10")
        toplam = toplam + hücre.Value
   Next hücre

   Range("A11").Value = toplam
End Sub

Excel tablosunda A1 ile A10 hücrelerindeki değerleri toplayıp sonucu A11 hücresine yazan bir koddur.

Ünite 3 sorularını uygulamada çözBu ünitenin çıkmış ve deneme soruları, şıkları ve cevap açıklamaları uygulamada.Uygulamada aç