Algoritma Örnekleri
Örnek: İki sayının toplamını bulan programın algoritması 1. Çözüm : A1. Başla A2. üç sayı tanımla A3. İki sayı gir A4. Girilen sayıları topla A5. Sonucu ekrana yaz A6. Bitir 2. Çözüm : A2. a,b ve t tanımla A2. a ve b sayılarını oku A3. t=a+b işlemini yap A4. t’yi ekrana yaz A5. Bitir
Örnek: Klavyeden girilen 2 sayının aritmetik ortalamasını hesaplayan programın algoritması 1. Çözüm : A1. Başla A2. Sayıları oku A3. Girilen 2 sayıyı topla A4. Toplamı 2’ye böl A5. Sonucu ekrana yazdır A6. Bitir 2. Çözüm : A2. Sayılar S1, S2, Toplam T olsun A3. S1 v e S2’yi gir A4. T=S1+S2 A5. O=T/2 A6. O’yu ekrana yazdır A7. Bitir
Örnek: Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması. Dikdörtgenin kısa kenarı: a Dikdörtgenin uzun kenarı: b Dikdörtgenin alanı: Alan Çözüm Algoritma: A1. Başla A2. a, b, Alan A3. a değerini gir A4. b değerini gir A7. Alan = a*b A8. Alan değerini ekrana yaz A9. Bitir.
Örnek 5: Bir öğrenci bir dersten aldığı iki sınav notunu klavyeden giriyor. Öğrencinini ortalamasını hesaplayıp, 50 geçme barajına göre “Geçtiniz” veya “Kaldınız” mesajı veren programın algoritmasını hazırlayınız. Çözüm: A1. Başla A2. snv1, snv2, Ort tanımla A3. Snv1’i gir A4. Snv2’i gir A5. Ort= (Snv1 + Snv2) / 2 A6. Ort’yı ekrana yaz A7. Eğer (Ort > 50) ise A8. Ekrana “Geçti” yaz A9. Değilse “Kaldı” yaz A10. Bitir
Örnek: Çapraz döviz kuru hesabi yapan programın algoritmasının oluşturulması. Bu algoritmanın oluşumunda veriler; 1 Amerikan dolarının TL karşılığı, hesaplanacak $ miktarı, çıkış ise verilen $'in TL karşılığı olacaktır. Doların değeri: dol_deg Girilen Dolar miktarı: dolar TL karşılığı: tl Çözüm Algoritma: A1. Başla A2. dol_deg, dolar, tl A3. dol_deg'i gir A2. dol_deg<0 ise 3. adimi tekrarla A3. dolar’ı gir A4. dolar<0 ise 5.adimi tekrarla A5. tl = dol_deg*dolar A6. tl değerini ekrana yaz A7. Bitir
Örnek: Kullanıcının ard arda gireceği 15 sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması Çözüm : A1. Başla A2. Top = 0, Sayaç = 0, X A3. X'i gir A4. Top = Top+X A5. Sayaç = Sayaç +1 A6. Eğer Sayaç <15 ise A3'ye git A7. Ort = Top/15 A8. Top ve Ort değerlerini yaz A9. Bitir.
Örnek: Klavyeden girilen Ad ve Soyad bilgisini 20 defa ekrana yazdıran programın algoritması 1. Çözüm A1. Başla A2. ad, soyad, sayac A3. Sayaç’ı 0 yap A4. Ad Soyad bilgisini oku A5. Ad soyadı ekrana yaz A6. Sayıcı bir artır A7. Eğer sayaç 20’den küçükse A5’e git A8. Bitir 2. Çözüm A1. Başla A2. ad, soyad, sayac A3. Sayaç = 0 A4. Ad Soyad bilgisini oku A5. Ad soyadı ekrana yaz A6. sayac=sayac+1 A7. sayaç < 5 ise A5’e git A8. Bitir
Örnek: Kullanıcının gireceği bir sayının faktöriyelini hesaplayan programın algoritmasının oluşturulması. Sayının faktöriyeli: Fk Faktöriyeli hesaplanacak sayı: Y Sayaç : X Çözüm 1 (Sayaç ile): A1. Başla A2. Fk = 1, X = 0, Y A3. Y'i gir A4. X = X+1 A5. Fk = Fk*X A6. X <= Y ise A4’e geri dön A7. Fk değerini yaz A8. Bitir. Sayının faktöriyeli: Fk Faktöriyeli hesaplanacak sayı: Y Çözüm 2 (Sayaçsız): A1. Başla A2. Fk = 1, Y A3. Y'i gir A4. Y = Y - 1 A5. Fk = Fk * Y A6. Y > 1 ise A4’e geri dön A7. Fk değerini yaz A8. Bitir.
Akış Diyagramları Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış diyagramı adı verilir. Akış diyagramları, yazılımı oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akis diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Bilgisayar programının oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akis diyagramlarının hazırlanmasına başlanabilir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler. Akış diyagramlarının algoritmadan farkı, adımların simgeler seklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir. Akis diyagramlarında kullanılan semboller, anlamları ve kullanış amaçları aşağıda verilmiştir.
Akış Diyagramları
Programlamada kullanılan mantıksal yapılar
Karar Yapısı (Koşullu Yapı)
Tekrarlı Yapı (Döngü) Tekrarlı Yapı
Örnek 1: Dışardan girilen bir sayıyı okuyup bu sayıyı tekrar yazdıran programın akış şemasını çiziniz. Algoritma Akış Diagramı A1. Başla A2. Sayı x olsun A3. x’i gir A4. x’i akrana yaz A5. Bitir.
Örnek 2: Dışarıdan girilen iki sayıyı toplayıp sonucu ekrana yazan programın akış şemasını çiziniz. Algoritma Akış Diyagramı A1. Başla A2. Sayılar X ve Y toplam T olsun A3. X’i gir A4. Y’i gir A5. T = X + Y A6. T’yi ekrana yaz A7. Bitir
Örnek 3: Yarıçap uzunluğu girilen dairenin alanını ve çevresini hesaplayıp sonucunu ekrana yazdıran programın akış semasını çiziniz. Algoritma Akış Diagramı A1. Başla A2. Yarı çap r Alan al, Çevre cev, pi=3,14 olsun A3. r’yi gir A4. al = pi * r * r A5. cev = 2 * pi * r A6. al ve cev ekrana yaz A5. Bitir.
Algoritma Akış Diyagramı Örnek 4: Dolar miktarı ve günlük kur girildiğinde TL miktarını hesaplayan program. Bu algoritmanın oluşumunda girişler; 1 Amerikan dolarının TL karşılığı, hesaplanacak $ miktarı, çıkış ise verilen $'in TL karşılığı olacaktır. Girişlerin 0’dan büyük olması gerekmektedir. Algoritma Akış Diyagramı A1. Başla A2. dol_deg, dolar, tl A3. dol_deg'i gir A4. dol_deg<0 ise 3. adimi tekrarla A5. dolar’ı gir A6. dolar<0 ise 5.adimi tekrarla A7. tl = dol_deg*dolar A8. tl değerini ekrana yaz A9. Bitir
Algoritma Akış Diyagramı Örnek 5: Kullanıcının klavyeden girdiği vize ve final notlarına göre ortalamayı hesaplayıp ekrana yazan, 60 barajına göre “Geçtiniz” veya “Bütünlemeye Kaldınız” mesajı veren programın akış diyagramını hazırlayınız. Algoritma Akış Diyagramı A1. Başla A2. vz, fnl, Ort tanımla A3. vz’i gir A4. fnl’i gir A5. Ort= (vz * 0,4) + (fnl * 0,6) A6. Ort’yı ekrana yaz A7. Eğer (Ort > 60) ise A8. Ekrana “Geçti” yaz A9. Değilse “Bütünlemeye Kaldınız” yaz A10. Bitir
Örnek: 1’den 100’e kadar olan sayıların toplamını hesaplayıp ekrana yazan program Algoritma A1: Başla A2: say, top, ort A3: say=0, top=0 A4: say=say+1 A5: top=top+say A6: say<=100 ise A4’e git A7: ort = top / 100 A8: top ve ort’u ekrana yazdır A9: Bitir
Örnek 7: Kullanıcının gireceği bir sayının faktöriyelini hesaplayan programın algoritmasının oluşturulması. Sayının faktöriyeli: Fak Faktöriyel değişkeni: X Faktöriyeli hesaplanacak sayı: Y Algoritma A1. Başla A2. Fak = 1, X = 0, Y A3. Y'i gir A4. Y<0 ise 2. adimi tekrarla A5. X = X+1 A6. Fak = Fak*X A7. X<Y ise A4’e geri dön A8. Fak değerini yaz A9. Bitir.
VERİ YAPILARI VE VERİ TİPLERİ Her programlama dilinde çeşitli veri yapıları ve veri tipleri mevcuttur. Programcının dilin imkanlarına daha iyi hakim olabilmesi için bu yapıları tanıması zorunludur. SABİTLER(CONSTANTS) Program içinde değeri değiştirilemeyen, çeşitli tipteki veri yapılarıdır. Örneğin 1234 şeklindeki bir sabit , bir tam sayı sabittir. "5666" sabiti veya "Türkiye" sabiti ise string türü sabitler, çift tırnak sembolleri içinde yazılırlar ve matematiksel işlemlere sokulmazlar.
DEĞİŞKENLER(VARIABLES) Programın akışı içerisinde, değerleri sürekli olarak değişebilen veri yapısıdır. Örneğin; x=23 y=12 x=x+3 y=y+x Bu değişkenlere yeni bir değer atanırsa, bu değişkenin önceki değeri silinecektir. DEĞİŞKENLERE İSİM VERME İsim vermek için aşağıdaki kurallar geçerlidir. 1- Değişken isminin ilk karakteri bir harf olmalıdır. 2- Değişken ismi oluşturulurken, diğer karakterler, harf, rakam ya da alt çizgi (-) sembolü olabilir. 3- Kullanılan harflerin küçük ya da büyük harf olmasının önemi yoktur. 4- Değişken isim uzunlukları 255 karaktere kadar olabilir. 5- Değişken isimleri içinde diğer semboller(+,-,/ ,boşluk vb)bulunmamalıdır.
ÖRNEK: Geçerli Değişken İsimleri MAAŞ Yaş1 NetMaas Genel_Toplam Geçersiz Değişken İsimleri 1X A-1 Brut Maaş
DEĞİŞKEN TÜRLERİ INTEGER(TAM SAYI): Bir değişkenin sonunda % sembolü varsa bu değişkenin türü integer olacaktır. Integer değişkenler, bellekte 2 Byte yer kaplar ve alacakları değerler -32768 ile +32767 aralığında olabilir. Integer türü değişkenlerle daha hızlı hesaplama yapılır. ÖRNEK Deflnt A,B D%=5678 A=789 B=50000' Hatalı atama LONG INTEGER (UZUN TAM SAYI) Sonundaki sembol & sembolü olan ya da Deflng sözcüğü ile tanımlanmış olan değişkenlerdir. Bellekte 4 byte yer kaplarlar. Alabilecekleri değerler, -2,147,483,648 ile +2,147,483,647 aralığında olabilir. Örnek: DefLng A-C Bu örnekte, DefLng A,B veya C olan tüm değişkenler A=234555566 Long integer olarak tanımlanmıştır. B=567777777
SINGLE PRECISION(TEK DUYARLIKLI) Değişkenin sonunda SINGLE PRECISION(TEK DUYARLIKLI) Değişkenin sonunda ! sembolü varsa, veya DefSng bildiri deyimi ile tanımlanmışsa bu değişken tek duyarlıklı tipte değişkendir. Bu tip değişkenler, bellekte 4 Byte yer kaplar. Değer aralığı negatif sayılar için -3.402823E-38 ile 3. 402823E-45 arasındadır. Pozitif sayılar içinse bu aralık 1.401298E-45 ile 3. 402823E38 arasındadır. İlk 7 haneye kadar hassastırlar. X!=12390638.234 şeklindeki bir atamada,sonraki 8.234 kısmı yuvarlanacaktır. DOUBLE PRECISION(ÇİFT DUYARLIKLI) İsmi sonundaki sembol # sembolü olan ya da DefDbl bildiri sözcüğü ile tanımlanmış olan değişkenlerdir. STRİNG(KARAKTER ZİNCİRİ) Sonunda $ sembolü bulunan yada DefStr bildiri sözcüğü tanımlanmış olan değişkenlerdir. Genellikle metin bilgileri için kullanılır. ÖRNEK X$=Text12.Text
CURRENCY (PARASAL FORMAT) Değişken ismi sonundaki sembol @ sembolü olan ya da DefCur bildiri sözcüğü ile tanımlanmış olan değişkenlerdir. Ondalık noktadan önce 15 ve ondalık noktadan sonra 4 hane olacak şekilde formatlanmıştır. DATE(TARİH) Tarih ve zaman türündeki bilgileri saklamak için kullanılan değişkenlerdir. 1 Ocak 100 ile 31 Ocak 9999 arasındaki zamanlar için kullanılır. ÖRNEK: DefDate T Tar=#February 3,1996# BYTE Byte değişken türü, 0 ile 255 arasındaki işaretsiz tam sayıları saklamak için kullanılır. DefByte bildiri sözcüğü ile tanımlanır.
BOOLEAN DefBool olarak tanımlanır BOOLEAN DefBool olarak tanımlanır. Sadece Doğru (True) Yanlış(False) değerlerinden birini alabilir. VARİANT DefVar olarak tanımlanmıştır. Bir değişken için hiçbir tip bildiriminde bilinilmamışsa, tipi Variant olarak kabul edilir. Her türlü bilgi (Date,numerik,string)yüklenebilir. Variant tipi bir değişken içine hangi tip veri yüklendiği ise IsNumeric,IsDate vb gibi kontrol edilebilir.
Matematiksel işlemlerin öncelik sıraları 1. Parantez 2. Hazır fonksiyonlar 3. Üs alma işlemi (^) 4. Eksi ( negatifi saptayan işaret ) 5. Çarpma (*) ve Bölme işlemi (/) 6. Toplama (+) ve Çıkarma (-) işlemi Yukarıdaki sıralamada, ortak öncelikte gösterilenlerin öncelikleri, solda bulunan işlemin önce yapılacak olma kuralına bağlıdır. Örneğin toplama ve çıkarma işlemi yukarıdaki tabloda aynı sırada gösterilmiştir. Buna göre aynı işlemde yan yana hem toplama ve hem de çıkarma işlemi varsa, bunlardan solda olanı önce işlem görür. Ayrıca bu sıralamadan farklı olarak parantez içine alınmış olan işlemler her zaman önce işlem görür, parantez içine alınmış yan yana iki işlem varsa, bunlardan da solda olan parantezli işlem önce işleme girer.
Matematiksel Eşitliklerin Yazılışları Matematiksel eşitlikler yukarıda verilen matematiksel operatörler yardımıyla yazılırlar. Burada dikkat edilmesi gereken husus, açılan parantezlerin mutlaka kapatılması gerektiğidir. Eşitliklerin gösterilmesinde mutlaka yuvarlak parantez ( ) kullanılmalıdır, köşeli parantez [ ] kullanılmamalıdır. Matematiksel gösterim Visual Basic gösterimi A=(3*Y)/E HY =R T 3 HY=(RT^3)/23 23
Atama Deyimi( hesaplama) Değişken = aritmetik ifade B = A + 1 AD$ = “1234”, AD$ = “ANKARA”