BPR151 ALGORİTMA VE PROGRAMLAMA - I Öğr. Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul
Dersin Amacı Bir problemin bilgisayar ortamında çözülebilmesi için gerekli çözüm yönteminin geliştirilebilmesi; Bu yöntemin algoritma ve akış diyagramlarıyla ifade edebilmesi; Yöntemin öğrenilen bir programlama dili ile kodlanıp varsa hatalarının giderilebilmesi hedeflenmiştir. Öğr. Gör. Bayram AKGÜL
Algoritma ve Programlamaya Giriş Genel konular Problem çözümü ilke ve evreleri ,algoritma ve akış şemaları Programlama ortamının kullanımı ve kod yazım kuralları Değişkenler, kontrol deyimleri, döngüler, diziler, alt programlar... Öğr. Gör. Bayram AKGÜL
Program Nedir? Bir program tanımlanmış bir problemi çözmek için hazırlanmış bir yapıdır. Örnek problemler: 1 den N sayısına kadar olan sayıların toplamı N tane sayının en büyük ve en küçük olanını bulma Sayıları sıralama Sınıfın not ortalamasını hesaplama … Öğr. Gör. Bayram AKGÜL
Program Bir program girdi olarak bazı verileri alır, onları işler ve sonucu çıktı olarak verir. PROGRAM (Algoritma) Girdi (Veri) Çıktı (Sonuç) Öğr. Gör. Bayram AKGÜL
Problem çözümü ilke ve evreleri Gereklilik Analizi Problem ve Girdi/Çıktıları anlama Dizayn Problemi çözecek algoritma (çözüm basamakları) oluşturma Kodlama Algoritmayı bir programlama dilinde kodlama Biz bu derste C# dilini kullanacağız. Test Programın doğruluğunu kontrol etme Öğr. Gör. Bayram AKGÜL
Algoritma Nedir? Algoritma; iyi tanımlanmış bir problemin çözümüne ulaşmak için uygulanması gerekli adımların açık, düzenli ve sıralı bir şekilde yazı ile ifade edilmesidir. Diğer bir deyişle; Problemin çözümünde izlenecek yola algoritma denir. Programlama dillerine yol gösteren bir yöntem dizisidir. Genellikle sonlu sayıda işlem sırası içerir. Öğr. Gör. Bayram AKGÜL
Problemi Anlama ve Çözüm Aşamaları Her şeyden önce çözülmesi istenen problem tam olarak anlaşılmalıdır. Problemin anlaşılmasında en ufak bir hata daha sonraki adımların yeni baştan yapılmasını gerektirebilir. Problemin tanımı yapılırken var olan bilgiler, anlamları ve birbirleri ile ilişkileri tanımlanmalıdır. Öğr. Gör. Bayram AKGÜL Öğr. Gör. Bayram AKGÜL 8
Problemi Anlama ve Çözüm Aşamaları (devam) Daha sonra istenilenler belirlenmeli ve bunların var olan bilgiler ile ilişkileri öğrenilmelidir. Son olarak yapılacak işlemler ve çıkacak sonuçlar belirlenir. Mümkün ise örnek veriler ile elde edilen sonuçlar değerlendirilmelidir. Öğr. Gör. Bayram AKGÜL Öğr. Gör. Bayram AKGÜL
Problemi Geliştirme Problemin tanımını tam olarak yaptıktan sonra çözüm için yol aramak gerekir. Genellikle bir problemin birden fazla çözüm yolu olabilir. Bunlardan en uygunu seçilmeye çalışılır. Problem karışık ve büyük olursa alt birimlere bölünmelidir. Her birimin çözümü ayrı ayrı yapılır. Alt birimler arası ilişki sürekli olarak korunmalıdır. Öğr. Gör. Bayram AKGÜL Öğr. Gör. Bayram AKGÜL
Örnek-1: Sandviç Yapma Problem: Fıstık ezmeli ve reçelli sandviç yapmak için bir algoritma yazalım. Girdiler Ekmek (En az 2 dilim) Fıstık ezmesi Reçel Bıçak Sandviçi koymak için tabak Çıktı Bir sandviç Öğr. Gör. Bayram AKGÜL
Örnek-1: Sandviç Yapma (devam) Ekmeği, fıstık ezmesini, reçeli, bıçağı ve tabağı çalışacağın yere koy İki dilim ekmeği tabağa koy Fıstık ezmesini bir ekmeğe sür, sürmek için bıçağı kullan Diğer ekmeğe reçeli sür, sürmek için bıçağı kullan Reçel ve fıstık ezmesi içeriye gelecek şekilde iki dilimi bir biri üstüne koy Sandviçi ye Öğr. Gör. Bayram AKGÜL
Örnek-1: Sandviç Yapma (devam) Adım 1 : Girdilerdir Adım 2-5: İşlemin nasıl yapılacağını açıklar Adım 6: Çıktıdır. Her adımı sırasıyla yapmalıyız 5. adımı 3. adımdan önce yapmamalıyız yoksa sandviç pek çekici olmaz. Öğr. Gör. Bayram AKGÜL
Örnek 2:Fahrenhayt’ı santigrada dönüştürme Problem: Fahrenhayt sıcaklık birimini santigrat derece birimine dönüştürecek bir algoritma yazalım. Girdi (Input) Fahrenhayt derece (°F) sıcaklık Çıktı(Output) Santigrat derece (°C) sıcaklık Öğr. Gör. Bayram AKGÜL
Örnek 2:Fahrenhayt’ı santigrada dönüştürme (devam) Kullanıcıdan dönüştüreceğin Fahrenhayt dereceyi girmesini iste santigrat = (fahrenhayt -32)/1.8 Fahrenhayt ve Santigrat dereceleri ekrana yazdır. Öğr. Gör. Bayram AKGÜL
Örnek-3: 2 sayının toplam, çarpım ve ortalamasını hesaplama Problem: 2 sayının toplam, çarpım ve ortalamasını hesaplayacak algoritma yazalım. Girdi 2 sayı Çıktılar Sayıların toplam çarpım ve ortalamaları toplam sayı1 program çarpım sayı2 ortalama Öğr. Gör. Bayram AKGÜL
Örnek-3: 2 sayının toplam, çarpım ve ortalamasını hesaplama Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste toplam = sayı1 + sayı2 çarpım = sayı1 * sayı2; ortalama = toplam / 2; toplam, çarpım ve ortalamayı ekrana yaz Öğr. Gör. Bayram AKGÜL
Örnek-4: bir çemberin çevresini ve alanını hesaplama Problem: bir çemberin çevresini ve alanını hesaplayan bir algoritma yazalım. Girdi Çemberin yarı çapı Çıktı Çemberin çevresi ve alanı Öğr. Gör. Bayram AKGÜL
Örnek-4: bir çemberin çevresini ve alanını hesaplama Kullanıcıdan çemberin yarıçapını girmesini iste çevre = 2 * 3.14 * yarıçap; alan = 3.14 * yarıçap * yarıçap; Çevre ve alanı ekrana yazdır. Öğr. Gör. Bayram AKGÜL
Örnek-5: 2 sayının küçük ve büyük olanını bulma Problem: 2 sayının küçük ve büyük olanını bulan bir algoritma yazalım. Girdi 2 sayı Çıktı Küçük ve büyük sayılar Öğr. Gör. Bayram AKGÜL
Örnek-5: 2 sayının küçük ve büyük olanını bulma (devam) Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste eğer (sayı1 < sayı2) 2.1. küçük = sayı1; 2.2. büyük = sayı2; değilse (yani, sayı1 >= sayı2) 3.1. küçük = sayı2; 3.2. büyük = sayı1; küçük ve büyük sayıları ekrana yazdır Öğr. Gör. Bayram AKGÜL
Örnek-6: 3 sayının en küçük olanını bulma Problem: 3 sayının en küçük olanını bulacak bir algoritma yazalım Girdi 3 sayı Çıktı Sayılardan en küçük olanı Öğr. Gör. Bayram AKGÜL
Örnek-6: 3 sayının en küçük olanını bulma (devam) Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste eğer (sayı1 < sayı2) 2.1. eğer (sayı1 < sayı3) ise küçük = sayı1; 2.2. değilse (yani, sayı3 <= sayı1) küçük = sayı3; değilse (yani, sayı1 >= sayı2) 3.1. eğer (sayı2 < sayı3) küçük = sayı2; 3.2. değilse (yani sayı3 <= sayı2) küçük = sayı3; Küçük sayısını ekrana yaz Öğr. Gör. Bayram AKGÜL
Örnek-7: 3 sayının en küçük olanını bulma (2. algoritma) Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste küçük = sayı1; (sayı1 in en küçük olduğunu farzedelim) eğer (sayı2 < küçük) küçük = sayı2; eğer (sayı3 < küçük) küçük = sayı3; Küçük sayısını ekrana yaz Öğr. Gör. Bayram AKGÜL
Dinlediğiniz için teşekkürler… Öğr. Gör. Bayram AKGÜL