Örnek Sorular evet hayır evet a sayısını verin b sayısını verin b
Transkript
Örnek Sorular evet hayır evet a sayısını verin b sayısını verin b
Örnek Sorular Yandaki program çalıştırıldığında, bilgisayarın kullanıcıya sorduğu sorulara karşılık, kullanıcının sırasıyla Örnek (2006 yılı vize sorusu) Dim a,b as double a = InputBox("Bir sayı verin") Do b = InputBox("Bir sayı verin") If b = -99 Then Exit Do Else Select Case b Case is < a a=b End Select End If Loop MsgBox a (2, 3, 1, 4, -99, 8, 0, 7) sayılarını bilgisayara verebileceğini düşünerek, ekran görüntüsünün ne olacağını bulunuz (10 puan). Cevap: 1 Örnek (2006 yılı vize sorusu) Yukarıdaki programın akış diyagramını çiziniz (15 puan). a,b başlangıç değerlerini 0 kabul et a sayısını verin b sayısını verin evet b=-99 ? hayır hayır b< a ? evet a=b a değerini ekrana yaz Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 9/Sayfa1 Örnek (2007 yılı vize sorusu) Aşağıdaki program çalıştırıldığında ekran görüntüsü ne olur? (10 puan). Dim fa as boolean Dim c,d as byte fa = not(false) Do For c = 4 To 6 step 2 MsgBox (c) For d = 3 To 4 Exit For MsgBox d Next Exit For Next Exit Do MsgBox c Loop Until fa Cevap: 4 Örnek Bilgisayara verilen n adet sayının en büyük değerini bulup sonucu ekrana yazan programı yazınız. Yardım: “Yazacağınız programa 1 adet sayı girdiğinizde en büyük sayı bu sayı olmalıdır” mantığından hareketle bu programı yazabilirsiniz (aşağıdaki iki program bu mantık ile yazılmıştır). Yöntem1: Dim enb As Double = -999999999999999 Dim n, w, sa As Double n = InputBox("Kaç sayı gireceksiniz") For w = 1 To n sa = InputBox("Sayıyı verin") If sa > enb Then enb = sa End If Next MsgBox("Verdiğiniz sayılardan en büyüğü=" & enb) Yöntem2: Dim enb, n, w, sa As Double n = InputBox("Kaç sayı gireceksiniz") enb = InputBox("Sayıyı verin") For w = 2 To n sa = InputBox("Sayıyı verin") If sa > enb Then enb = sa End If Next MsgBox("Verdiğiniz sayılardan en büyüğü=" & enb) Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 9/Sayfa2 Örnek Bilgisayara verilen bir sayının çift olup olmadığını ekrana yazan programı yazınız. Dim u As Double u = InputBox("Bir sayı verin") If u / 2 = u \ 2 Then MsgBox("Verdiğiniz sayı çifttir") Else MsgBox("Verdiğiniz sayı çift değildir") End If Örnek Bilgisayara verilen bir sayının, bir matris ile çarpım sonucunun (sonuç matrisinin) ekrana yazdırılması programını yazınız. Dim sa, su, carpan As Double Dim i, j As Byte sa = InputBox("Matrisin satır sayısını verin") su = InputBox("Matrisin sütun sayısını verin") Dim ilk_matris(sa, su), sonuc_matris(sa, su) As Double carpan = InputBox("Matrisin çarpanını verin") For i = 1 To sa For j = 1 To su ilk_matris(i, j) = InputBox("(" & i & "," & j & ")= değerini verin") sonuc_matris(i, j) = carpan * ilk_matris(i, j) Debug.Write(sonuc_matris(i, j) & " ") Next Debug.WriteLine("") 'matrisin diğer satırına geçmek için kullanıldı Next Farklı yöntem: Aynı program; verilerin alınması (matrisin alınması), matrisin verilen çarpan ile işleme sokulması ve son olarak elde edilen matrisin ekrana yazdırılması işlemlerinin ayrı ayrı yaptırılması şeklinde düşünülebilir. Bu program, yukarıdaki programdan daha uzun olacaktır, fakat sonuç olarak amaca uygundur. Dim sa, su, carpan As Double Dim i, j As Byte sa = InputBox("Matrisin satır sayısını verin") su = InputBox("Matrisin sütun sayısını verin") Dim ilk_matris(sa, su), sonuc_matris(sa, su) As Double carpan = InputBox("Matrisin çarpanını verin") REM Verilerin alınması For i = 1 To sa For j = 1 To su ilk_matris(i, j) = InputBox("(" & i & "," & j & ")= değerini verin") Next Next REM Çarpma işleminin yaptırılması For i = 1 To sa For j = 1 To su sonuc_matris(i, j) = carpan * ilk_matris(i, j) Next Next Rem Sonuç matrisinin yazdırılması Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 9/Sayfa3 For i = 1 To sa For j = 1 To su Debug.Write(sonuc_matris(i, j) & " ") Next Debug.WriteLine("") 'matrisin diğer satırına geçmek için kullanıldı Next Örnek n adet sayının ortalamadan farklarının toplamı sıfırdır. Bu ifadeyi ispat edecek programı yazınız. Dim y, w, k, toplam As Double Dim ortalama, sontop As Double y = InputBox("Kaç sayı var") Dim de(y) As Double For k = 1 To y de(k) = InputBox("Sayıyı verin") toplam = toplam + de(k) Next ortalama = toplam / y For w = 1 To y sontop = sontop + (de(w) - ortalama) Next MsgBox("sonuç=" & sontop) Örnek (2005 yılı vize sorusu) 65 öğrencisi olan bir sınıf için 30 sorunun sorulduğu bir imtihan yapılmıştır. Her öğrenciye ait; ad, soyad ve doğru cevap sayısı bilgisayara girildiğinde, herhangi bir öğrencinin harfli notunu aşağıdaki kriterlere göre bulup ekrana yazan programı yazın. Not: 4 yanlış 1 doğru cevabı götürmektedir. Öğrencilerin bütün sorulara cevap verdiklerini düşünerek programı yazın (15 puan). Net cevap sayısı 25-30 20-24 15-19 10-14 1-9 Harfli Not AA BB CC DD FF Dim ad, soyad As String Dim t, dogru_sayisi, yanlis_sayisi As Double Dim net_sayisi As Double For t = 1 To 1 ad = InputBox("Öğrencinin adını verin") soyad = InputBox("Öğrencinin soyadını verin") dogru_sayisi = InputBox("Öğrencinin doğru cevap sayısını verin") yanlis_sayisi = 30 - dogru_sayisi net_sayisi = dogru_sayisi - (yanlis_sayisi / 4) MsgBox(net_sayisi) Select Case net_sayisi Case 25 To 30 MsgBox("Öğrencinin harfli notu: AA dır") Case 20 To 24 Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 9/Sayfa4 MsgBox("Öğrencinin Case 15 To 19 MsgBox("Öğrencinin Case 10 To 14 MsgBox("Öğrencinin Case 1 To 9 MsgBox("Öğrencinin End Select Next harfli notu: BB dir") harfli notu: CC dir") harfli notu: DD dir") harfli notu: FF dir") Örnek Tek kadranlı hesap makinesinin nesneler ile yazılması. Aşağıda, programın amacına uygun bir form tasarımı gösterilmiştir. Tasarımda sadece üç sayı (1,2 ve 3) ve iki işlem (toplama, çıkarma) gösterilmiştir. Eğer üç sayı ve iki işlem ile istenen yapılabilirse, program dört işlem ve on sayıya kolayca çıkarılabilir. İpucu1: Kadrandaki sayıların soldan sağa doğru yazılması gerektiğinden, sayıların yazılacağı kadran’a (textbox1) bu özelliğin verilmesi gerekir. Bunun için tasarım aşamasında textbox1 nesnesinin özelliklerinden TextAlign, Left durumundan Right durumuna getirilmesi gerekir. İpucu2: General Declerations bölümünde yapılan genel tanımlamalara dikkat edin, bu tanımların diğer yordamlarda da geçerli olabilmesi için böyle yapılmıştır. Public Class Form1 Dim arti_basildi As Boolean = False Dim arti As Boolean = False Dim eksi_basildi As Boolean = False Dim eksi As Boolean = False Dim kadran As Double Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 9/Sayfa5 Private Sub Button1_Click() If (arti_basildi = True) Or (eksi_basildi = True) Then kadran = Val(TextBox1.Text) TextBox1.Text = "1" arti_basildi = False eksi_basildi = False Else TextBox1.Text = TextBox1.Text & "1" End If End Sub Private Sub Button2_Click() If (arti_basildi = True) Or (eksi_basildi = True) Then kadran = Val(TextBox1.Text) TextBox1.Text = "2" arti_basildi = False eksi_basildi = False Else TextBox1.Text = TextBox1.Text & "2" End If End Sub Private Sub Button3_Click() If (arti_basildi = True) Or (eksi_basildi = True) Then kadran = Val(TextBox1.Text) TextBox1.Text = "3" arti_basildi = False eksi_basildi = False Else TextBox1.Text = TextBox1.Text & "3" End If End Sub Private Sub Button4_Click() arti_basildi = True arti = True End Sub Private Sub Button5_Click() eksi_basildi = True eksi = True End Sub Private Sub Button6_Click() If arti = True Then TextBox1.Text = kadran + Val(TextBox1.Text) arti = False ElseIf eksi = True Then TextBox1.Text = kadran - Val(TextBox1.Text) eksi = False End If End Sub End Class Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 9/Sayfa6