Adım Adım Algoritma
Başla… Bitir : Algoritmanın başladığını ve bittiğini belirtmek için kullanılır. 1. Adım => Başla 2. Adım => 3. Adım => 4. Adım => 5. Adım => 6. Adım => 7. Adım => 8. Adım => Bitir
Değişkenler bir programlama dilinde verilerin depolanma alanlarını temsil eder. Tanımlanan her değişkene bellek bölgesinden bir alan ayrılır. Bu bellek bölgesine okuma ve yazma işlemleri ise değişken ismi üzerinden sağlanır. Genel olarak değişkenler aşağıdaki şekilde tanımlanır. <veri tipi> <değişken adı>;
Sayısal, Metin, Karakter, Mantıksal : Kullanılacak değişkenin türünü belirlemek için kullanılır. 1. Adım => Başla 2. Adım => 3. Adım => 4. Adım => 5. Adım => 6. Adım => 7. Adım =>… 8. Adım => Bitir Hafıza Alanı(RAM) ________________________________________________________ Sayısal sayi1 sayi1 adres Metin adres Karakter deger Mantıksal s1 Sayısal d5 deger d5 s1
= : Değişkenlere değer(veri) atamak için kullanılır. 1. Adım => Başla 2. Adım => 3. Adım => 4. Adım => 5. Adım => 6. Adım => 7. Adım => 8. Adım => Bitir Hafıza Alanı ________________________________________________________ Sayısal sayi1 sayi1 adres Metin adres 45 8 2 Konya adres = “Konya” sayi1 = 45 sayi1 = 2 sayi1 = sayi1 + 6
Yaz : Ekranda bilgi veya sonuç göstermek için kullanılır. Hafıza Alanı __________________________________________________ s1 1 6 1. Adım => Başla 2. Adım => Sayısal s1 3. Adım => s1 = 6 4. Adım => Yaz; “sayınız ” 5. Adım => Yaz; s1 sayınız 6. Adım => s1 = s1 - 5 6 7. Adım => Yaz; “5 eksiği =” & s1 5 eksiği = 1 8. Adım => Bitir
3. Adım => Yaz; “iki sayı giriniz” 4. Adım => Oku; a Oku : Kullanıcı girişi için kullanılır. Kullanıcının yazdığı veri okunduktan sonra belirtilen değişkene aktarılır. Hafıza Alanı ________________________________________________________ a b c 8 12 20 1. Adım => Başla 2. Adım => Sayısal a, b, c 3. Adım => Yaz; “iki sayı giriniz” 4. Adım => Oku; a İki sayı giriniz 5. Adım => Oku; b 8 6. Adım => c = a + b 12 Toplam : 20 7. Adım => Yaz; “Toplam : ” & c 8. Adım => Bitir
3. Adım => Yaz; “iki sayı giriniz” 4. Adım => Oku; s1 Oku : Kullanıcı girişi için kullanılır. Kullanıcının yazdığı veri okunduktan sonra belirtilen değişkene aktarılır. Hafıza Alanı ________________________________________________________ s1 s2 s3 23 7 30 1. Adım => Başla 2. Adım => Sayısal s1, s2, s3 3. Adım => Yaz; “iki sayı giriniz” 4. Adım => Oku; s1 İki sayı giriniz 5. Adım => Oku; s2 23 6. Adım => s3 = s1 + s2 7 Toplam : 30 7. Adım => Yaz; “Toplam : ” & s3 8. Adım => Bitir
Algoritmamızın başlangıcını belirtir. 1. Adım => Başla Algoritmamızın başlangıcını belirtir.
Kullanılacak değişkenin türü belirlenir. 2. Adım => Sayısal sayi1, sayi2, sonuc Kullanılacak değişkenin türü belirlenir. Her bir değişken küçük bir depo alanıdır. İçinde sayılar, kelimeler, harfler saklanabilir.
2. Adım => Sayısal sayi1 Hafıza Alanı ________________________________________________________ sayi1
2. Adım => Sayısal sayi1, sayi2 Hafıza Alanı ________________________________________________________ sayi1 sayi2
2. Adım => Sayısal sayi1, sayi2, sonuc Hafıza Alanı ________________________________________________________ sayi1 sayi2 sonuc
3. Adım => Yaz; “İki sayı giriniz” Hafıza Alanı ________________________________________________________ İki sayı giriniz sayi1 sayi2 sonuc
3. Adım => Yaz; “İki sayı giriniz” Hafıza Alanı ________________________________________________________ İki sayı giriniz sayi1 sayi2 sonuc 5
4. Adım => Oku; sayi1 Hafıza Alanı İki sayı giriniz 5 5 sayi1 sayi2 ________________________________________________________ İki sayı giriniz 5 sayi1 sayi2 sonuc 5
4. Adım => Oku; sayi1 Hafıza Alanı İki sayı giriniz 5 5 8 sayi1 ________________________________________________________ İki sayı giriniz 5 sayi1 sayi2 sonuc 5 8
5. Adım => Oku; sayi2 Hafıza Alanı İki sayı giriniz 5 5 8 8 sayi1 ________________________________________________________ İki sayı giriniz sayi1 sayi2 sonuc 5 5 8 8
6. Adım => sonuc = sayi1 + sayi2 Hafıza Alanı ________________________________________________________ İki sayı giriniz sayi1 sayi2 sonuc 5 5 8 13 8 sayi1 + sayi2 sonuc = 13 5 + 8
7. Adım => Yaz; “Toplam değer: ” & sonuc
7. Adım => Yaz; “Toplam değer: ” Hafıza Alanı ________________________________________________________ İki sayı giriniz sayi1 sayi2 sonuc 5 5 8 13 8 Toplam değer:
7. Adım => Yaz; “Toplam değer: ” & sonuc Hafıza Alanı ________________________________________________________ İki sayı giriniz sayi1 sayi2 sonuc 5 5 8 13 8 Toplam değer: 13
Algoritmamızın bittiğini belirtir. 8. Adım => Bitir Algoritmamızın bittiğini belirtir.
7. Adımda sonuç değişkeni aşağıdaki şekilde yazılmış olsaydı.!!! 7. Adım => Yaz; “Toplam değer: ” & “sonuc” Hafıza Alanı ________________________________________________________ İki sayı giriniz sayi1 sayi2 sonuc 5 5 8 13 8 Toplam değer: sonuc
2. Adım => Sayısal sayi1, sayi2, sonuc Klavyeden girilen iki sayının farkını bulan ve sonucunu gösteren algoritmayı yazınız. Hafıza Alanı ________________________________________________________ sayi1 sayi2 sonuc 1. Adım => Başla 23 20 3 2. Adım => Sayısal sayi1, sayi2, sonuc 3. Adım => Yaz; “iki sayi giriniz” 4. Adım => Oku; sayi1 İki sayı giriniz 5. Adım => Oku; sayi2 23 6. Adım => sonuc = sayi1 - sayi2 20 Fark : 3 7. Adım => Yaz; “Fark : ” & sonuc 8. Adım => Bitir
Klavyeden adı girilen kullanıcının ismini ekrana “Selam, ……… Klavyeden adı girilen kullanıcının ismini ekrana “Selam, ……….., ” yazısı ile gösteren programı yazınız.
3.Adım => Yaz; “İsminizi giriniz” Hafıza Alanı ___________________________________________ 1.Adım => Başla Ad 2.Adım => Metin Ad Büşra Gökşen 3.Adım => Yaz; “İsminizi giriniz” 4.Adım => Oku; Ad İsminizi giriniz 5.Adım => Yaz; “Selam, ” & Ad Büşra Gökşen 6.Adım => Bitir Selam, Büşra Gökşen
Önemli olan algoritmadaki her durumu sezebilmek ve bu durumlar için mantık yürütebilmektir. Bahsettiğimiz mantık ve sezgiler program yazdıkça gelişir. Bir çok kişi tarafından programlamanın yetenek işi olduğu söylense bile (ki gerçekte doğrudur) bu yeteneği edinmek resim yapma yeteneğini edinmekten ya da güzel sanatlara karşı bir yeteneği edinmekten çok daha kolaydır. Dikkat Dikkat !!!
DEĞİŞKENLER
Bir değişken küçük bir depo alanıdır Bir değişken küçük bir depo alanıdır. İçinde sayılar, kelimeler, harfler saklanabilir.
Değişken belirlemede kurallar 1. Kural Büyük küçük harfle yazım fark eder. Mesela: IlkNot ile ILKNOT farklıdır. 2. Kural Değişken ismi içinde boşluk,Türkçe karakter ya da özel karakterler yer alamaz. (*,#,&,%,$,ş,ç,ı,İ gibi) 3. Kural İlk karakter mutlaka bir harf olmalıdır. Başka bir önemli nokta, değişken ve sabitlerin adlandırılmasıdır. Bilgisayar sizin değişkenlere ne isim verdiğinizi umursamasa da, hem sizin hem de diğer programcılar için kolay anlaşılacak şekilde isimlendirilme çok önemlidir.
Değişken türleri Sayısal => 45,98,2….. Metin =>”Amasya”,”isim”,”büyük” Karakter =>”b”,”r”,”h”….. Mantıksal =>evet-hayır, doğru-yanlış
Değişkenlerde atama işlemi
Bir değişkene doğrudan veya kullanıcı girişi ile değer atanabilir. Oku; sayi1 yedek = sayi1 sonuc = sayi1 + sayi2 sayi = 45 isim = “Ayşe” Başka bir değişkenin veya hesaplamanın değerini aktarmak Sabit bir değer aktarmak sayi = 45 yedek = sayi1 isim = “Ayşe” sonuc = sayi1 + sayi2
Doğrudan değer atama "=" ile yapılır ve yönü sağdan sola() doğrudur. sonuc = sayi1 + sayi2 sayi1 + sayi2 sonuc = 13 5 + 8
a = 5 => a’nın değeri 5 olur a = a + 5 => a’nın eski değerine 5 eklenir a = a + 1 => a’nın eski değerine 1 eklenir sayi 7 8 6 4 + + - 1 3 2 1.Adım => Başla 2.Adım => sayısal sayi 3.Adım => sayi = 4 4.Adım => sayi = sayi+3 5.Adım => sayi =sayi+1 6.Adım => sayi =sayi-2 9.Adım => Bitir
Klavyeden girilen bir sayının küpünü bulan ve sonucunu gösteren algoritmayı yazınız. Hafıza Alanı __________________________________________________ sayi1 sonuc 2 8 1. Adım => Başla 2. Adım => Sayısal sayi1, sonuc 3. Adım => Yaz; “bir sayı giriniz” 4. Adım => Oku; sayi1 bir sayı giriniz 5. Adım => sonuc = sayi1 * sayi1 * sayi1 2 6. Adım => Yaz; “sayının küpü: ” & sonuc Sayının küpü: 8 7. Adım => Bitir
Klavyeden girilen bir sayının küpünü bulan ve sonucunu gösteren algoritmayı yazınız. Hafıza Alanı __________________________________________________ sayi1 sonuc 5 125 1. Adım => Başla 2. Adım => Sayısal sayi1, sonuc 3. Adım => Yaz; “bir sayı giriniz” 4. Adım => Oku; sayi1 bir sayı giriniz 5. Adım => sonuc = sayi1 * sayi1 * sayi1 5 6. Adım => Yaz; “sayının küpü: ” & sonuc Sayının küpü: 125 7. Adım => Bitir
Matematiksel işlemler İşlem Operatör Örnek Sonuç _________________________________________________________ Toplama + 2 + 4 6 Çıkarma – 3 – 4 –1 Bölme / 4 / 2 2 Çarpma * 3 * 5 15 Üs alma ^ 2 ^ 3 8 Mod (kalan) alma % 5 % 2 1
Matematiksel işlemlerde genel olarak şunlara dikkat ediniz: İşlem önceliği Bir formülde eğer varsa, üs (^) işlemi ilk önce yapılır. Sonra varsa, çarpma (*) ve bölme(/) yapılır. Sonra varsa, toplama(+) ve çıkarma(-) yapılır. Eğer aynı tür işleçler var ise, sol taraftaki önce hesaplanır.
1. Adım: Önce üs işlemi yapılır 2. Adım: Soldaki bölme çarpmadan önceliklidir. 3. Adım: Çarpma ilk önceliğe sahip oldu 4. Adım: Sol taraftaki toplama çıkarma işlemine göre öncelik sahibi 5. Adım: son işlem adımı
Parantez Kullanmak deger = 3 + 4 ^ 5 Önce 4 üzeri 5 işlemi yapılır deger = (3 + 4) ^ 5 Önce 3 ile 4 toplanır Birden fazla parantez kullanabiliriz. Bu durumda da önce içteki parantez yapılır. Parantez kalmayana dek tüm parantezler hesaplanır. Daha sonra da normal öncelikli işlemle yapılır.
ifadesinin algoritma dilindeki karşılığı sonuc = a + b – c + 2 * a * b * c – 7 ifadesinin bilgisayar dilindeki karşılığı: sonuc = (a ^ 2 + b ^ 2) / (2 * a * b)
İlişkisel işlemler < > <= >= == <> İşlem Operatör Örnek Sonuç doğru,true,evet 2 < 4 küçük < yanlış,false,hayır 15 < 7 6 > 14 doğru,true,evet büyük > 4 > 1 yanlış,false,hayır 6<=9 doğru,true,evet <= 7<=7 doğru,true,evet küçükeşit 5<=3 yanlış,false,hayır 8>=4 doğru,true,evet >= 6>=6 doğru,true,evet büyükeşit 7>=9 yanlış,false,hayır 5==5 doğru,true,evet eşit == 4==7 yanlış,false,hayır 3<>6 doğru,true,evet <> eşit değil 4<>4 yanlış,false,hayır
Mantıksal işleçler: Ve(And) Veya(Or) Değil(Not)
Metin işlemleri Çift tırnak içine alınan metinlerin içine istediğimizi yazabiliriz Fakat "3*4“ gibi bir ifade yazsak, hesaplama işlemi yapılmadığı için, bize sonucunu vermez. Çünkü algoritma çift tırnak içindeki değeri sayı olarak değil, metin olarak algılar.
Metinler + veya & işleci ile birleştirilerek tek bir metne dönüşebilirler. Birleşik olarak yan yana görüntülenmemeleri için aralarına bir boşluk (“ “) eklemeyi unutmayınız.
“sonuc” ve sonuc ifadeleri arasındaki fark Hafıza Alanı __________________________________________________ sayi1 sonuc 5 125 1. Adım => Başla 2. Adım => Sayısal sayi1, sonuc 3. Adım => Yaz; “bir sayı giriniz” 4. Adım => Oku; sayi1 bir sayı giriniz 5. Adım => sonuc = sayi1 * sayi1 * sayi1 5 6. Adım => Yaz; “sayının küpü: ” & “sonuc” Sayının küpü: sonuc 7. Adım => Bitir
2. Adım => Sayısal sayi1, sayi2, yas Hafıza Alanı _____________________________________________________________________ 1. Adım => Başla 2. Adım => Sayısal sayi1, sayi2, yas sayi1 sayi2 yas 3.Adım => Metin ad, soyad, isim 8 20 32 32 4.Adım => sayi1 = 8 5.Adım => ad = “Ayşe” ad soyad isim 6.Adım => soyad = “Nerede” Ayşe Nerede Ayşe32yaşında Ayşe-Nerede AyşeNerede Ayşe yas Ayşe Nerede Ayşe 7.Adım => sayi2 = sayi1 * 4 8.Adım => yas = sayi2 9.Adım => sayi2 = sayi2 - 12 10.Adım => isim = ad 11.Adım => isim = ad & soyad Yaşı= 32 12.Adım => isim = ad & “ “ & soyad Ayşe yas 13.Adım => isim = ad & “-“ & soyad AyşeNerede32yaşında 14.Adım => isim = ad & yas & “yaşında” Ayşe Nerede32yaşında 15.Adım => isim = ad & “ “ & “yas” 16. Adım => Yaz; “yaşı= ” & yas 17. Adım => Yaz; isim 18. Adım => Yaz; ad & soyad & yas & “yaşında” 19. Adım => Yaz; ad & “ “ & soyad & yas & “yaşında” 20. Adım => Bitir
Değerlendirme Soruları
KONTROL DEYİMLERİ
Şimdiye kadar yapılan örnekler sadece bir kere çalıştırılıyordu, tek seçenekleri vardı. Bizim girdiğimiz veriye göre akışı değişen bir yapısı yoktu. Bu tür programlar genelde pek bir işe yaramaz. Bilgisayara davranış kazandırmanın yolu “kontrol deyimleri”ni kullanmaktır. İçinde bulunulan duruma göre çalıştırılacak adımlar belirlenmelidir.
Eğer ise – Değilse Komutu Bir karar vermemiz gerektiğinde soruyu sorar, cevabına göre işlemler yaparız. Cevap; EVET ( doğru = true = var = 1 ) veya HAYIR ( yanlış = false = yok = 0 ) olabilir. Şartlara göre algoritma akışının değişmesinde kullanılır. Belirtilen şart doğruysa …… adımdan devam et değilse veya yanlışsa …… adımdan devam et.
Eğer (buraya yazılan şart doğru) ise Komut satırı Komut satırı Komut satırı Eğer bitti Komut satırı Komut satırı Eğer (buraya yazılan şart yanlış) ise Komut satırı Komut satırı Komut satırı Eğer bitti Komut satırı Komut satırı
Eğer (buraya yazılan şart doğru) ise Komut satırı Komut satırı Komut satırı Değilse Komut satırı Komut satırı Eğer bitti Eğer (buraya yazılan şart yanlış) ise Komut satırı Komut satırı Komut satırı Komut satırı Değilse Komut satırı Komut satırı Eğer bitti Komut satırı
Eğer (buraya yazılan şart doğru) ise Komut satırı Komut satırı Komut satırı Değilse Eğer (buraya yazılan şart …….) ise Komut satırı Eğer bitti Komut satırı Eğer (buraya yazılan şart yanlış) ise Komut satırı Komut satırı Değilse Eğer (buraya yazılan şart doğru) ise Komut satırı Komut satırı Eğer bitti Komut satırı