Algoritma Hazırlama Programlama nereden başlamalı?
PROBLEM ÇÖZME nasıl yapacağız?
bunun için Problem çözme sırası (Problem Solving Cycle) 1. Problemi anlama (Understanding, Analyzing), 2. Bir çözüm yolu geliştirme (Designing), 3. Algoritma yazma (Writing), 4. Program yazma (Writing), 5. Tekrar tekrar test etme (Reviewing)
Sonunda ne elde etmek istiyorsun (Çıktı-Output) Elinde hangi ham veriler var (Girdi-Input) Girdileri istediğin Çıktıya dönüştürecek işlemi (process) belirle Örnek: 2 saatte 190 km yol alan arabanın ortalama hızı nedir? Output: saatte ortalama hız Input: gidilen mesafe ve süre Process: orthız = mesafe/süre
Program yazma, çözülmüş bir problemin bir bilgisayar dili ile kodlarını yazmaktır (coding). Bu, bizim en son işimiz. Peki ilk işimiz? Kodlamadan önce algoritma yazılmalıdır.
Bilgisayar, bir problemi nasıl çözeceğini bilemez. Bundan dolayı kullanıcı bilgisayara problemi nasıl çözeceğini bildirmelidir.
Girdi (Input) İşlem (Processing) Çıktı (Output) Girdi-İşlem-Çıktı türüne en iyi örnekler yemek tarifleridir. Malzemeler ve miktarları, hazırlama - pişirme ve sonuda istenen yemek! Monopoly oyununda zar attıkça sizi yönlendiren talimatlar (2 tur bekle, para öde, 5 geri, 3 ileri git vs birer algoritmadır.
Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne denir. Bir algoritma için aşağıdaki ifadelerin mutlaka doğrulanması gereklidir. Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı olmamalıdır. Belirli bir sayıda adım sonunda algoritma sonlanmalıdır. Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır.
!!!Algoritma sadece bilgisayar programlamada kullanılmaz. Bir fabrika üretiminin algoritması, bir büro çalışma düzeninin algoritması, bir planlı gezinin algoritması...
Algoritmaları bilgisayar programına çeviren iki teknik vardır: Bunlar, kullanılacak programlama diline bağlı değildir. Akış diyagramı (Flowcharts)- Bir işi yapan mantıksal adımları ve adımlar arası geçişlerin grafiksel gösterimi. Satır algoritma (Pseudocode) Programın ana hatlarını ve adımlarını gösteren kısa komutlar.
Akış diyagramı işaretleri (Flowchart symbols) Başlama / Bitirme Başlama / Bitirme Okuma Data Döngü Yazma Aritmetik, mantık işlemi Bağlantı Şart Karar Verme Gidiş yönü
İfade yapıları (Statement structure) Sıralı (Sequence) yapılar işlem hiç satır atlamadan doğrusal bir sıra ile olur Karar (Decision) yapıları İçinde evet - hayır soruları soran ve cevaba göre farklı yönde farklı işlem yapan yapılar Döngü (Looping) yapıları Bir şart gerçekleşinceye kadar tekrar tekrar yapılan işlemler
ALGORİTMA BLOKLARI Başla İki sayı al Input Hayır Eğer şart doğru ise Evet Sayıları topla İşlem 2.işlem adımları 1.işlem adımları Ekrana yaz Output Bitir
Akış diyagramı ÖRNEĞİN; Bir sayının çift mi tek mi olduğu Başla Hayır 2.işlem adımları İki sayı al Sayı çift mi? Evet 1.işlem adımları Pseudocode Program: Girilen iki sayının tek ve çift olduğunu belirleyip yazma Sayıları al Eğer sayı tek ise Tek yaz Eğer sayı çift ise Çift yaz End If Bitiş
1. Başla 2. A sayısını gir 3. B sayısını gir 4. Eğer A>B ise Yaz A sayısı, B sayısından büyüktür 5. Eğer A<B ise Yaz A sayısı, B sayısından küçüktür 6. Eğer A=B ise Yaz A sayısı, B sayısına eşittir 7. Dur Girilen A sayısı Girilen B sayısı Ekrana yazılan sonuç 3 7 A sayısı, B sayısından küçüktür.
Algoritma ne diyorsa onu yap! Ne eksik ne fazla! Any Questions?