Transcript Giriş
BPR151 ALGORİTMA VE PROGRAMLAMA - I Öğr. Gör. Bayram AKGÜL [email protected] 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 2 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 3 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 4 Program • Bir program girdi olarak bazı verileri alır, onları işler ve sonucu çıktı olarak verir. Girdi (Veri) PROGRAM (Algoritma) Öğr. Gör. Bayram AKGÜL Çıktı (Sonuç) 5 Problem çözümü ilke ve evreleri 1. Gereklilik Analizi • Problem ve Girdi/Çıktıları anlama 2. Dizayn • Problemi çözecek algoritma (çözüm basamakları) oluşturma 3. Kodlama • Algoritmayı bir programlama dilinde kodlama • Biz bu derste C# dilini kullanacağız. 4. Test • Programın doğruluğunu kontrol etme Öğr. Gör. Bayram AKGÜL 6 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 7 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 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 9 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 10 Ö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 11 Örnek-1: Sandviç Yapma (devam) 1. Ekmeği, fıstık ezmesini, reçeli, bıçağı ve tabağı çalışacağın yere koy 2. İki dilim ekmeği tabağa koy 3. Fıstık ezmesini bir ekmeğe sür, sürmek için bıçağı kullan 4. Diğer ekmeğe reçeli sür, sürmek için bıçağı kullan 5. Reçel ve fıstık ezmesi içeriye gelecek şekilde iki dilimi bir biri üstüne koy 6. Sandviçi ye Öğr. Gör. Bayram AKGÜL 12 Ö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 13 Ö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 14 Örnek 2:Fahrenhayt’ı santigrada dönüştürme (devam) 1. Kullanıcıdan dönüştüreceğin Fahrenhayt dereceyi girmesini iste 2. santigrat = (fahrenhayt -32)/1.8 3. Fahrenhayt ve Santigrat dereceleri ekrana yazdır. Öğr. Gör. Bayram AKGÜL 15 Ö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ı sayı2 • toplam sayı1 program Çıktılar – çarpım ortalama Sayıların toplam çarpım ve ortalamaları Öğr. Gör. Bayram AKGÜL 16 Örnek-3: 2 sayının toplam, çarpım ve ortalamasını hesaplama 1. Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste 2. toplam = sayı1 + sayı2 3. çarpım = sayı1 * sayı2; 4. ortalama = toplam / 2; 5. toplam, çarpım ve ortalamayı ekrana yaz Öğr. Gör. Bayram AKGÜL 17 Ö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 18 Örnek-4: bir çemberin çevresini ve alanını hesaplama 1. Kullanıcıdan çemberin yarıçapını girmesini iste 2. çevre = 2 * 3.14 * yarıçap; 3. alan = 3.14 * yarıçap * yarıçap; 4. Çevre ve alanı ekrana yazdır. Öğr. Gör. Bayram AKGÜL 19 Ö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 20 Örnek-5: 2 sayının küçük ve büyük olanını bulma (devam) 1. Kullanıcıdan sayı1 ve sayı2 yi girmelerini iste 2. eğer (sayı1 < sayı2) • • 2.1. küçük = sayı1; 2.2. büyük = sayı2; 3. değilse (yani, sayı1 >= sayı2) • • 3.1. küçük = sayı2; 3.2. büyük = sayı1; 4. küçük ve büyük sayıları ekrana yazdır Öğr. Gör. Bayram AKGÜL 21 Ö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 22 Örnek-6: 3 sayının en küçük olanını bulma (devam) 1. Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste 2. 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; • • 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; 3. değilse (yani, sayı1 >= sayı2) 4. Küçük sayısını ekrana yaz Öğr. Gör. Bayram AKGÜL 23 Örnek-7: 3 sayının en küçük olanını bulma (2. algoritma) 1. Kullanıcıdan sayı1, sayı2 ve sayı3 ü girmelerini iste 2. küçük = sayı1; (sayı1 in en küçük olduğunu farzedelim) 3. eğer (sayı2 < küçük) küçük = sayı2; 4. eğer (sayı3 < küçük) küçük = sayı3; 5. Küçük sayısını ekrana yaz Öğr. Gör. Bayram AKGÜL 24 DINLEDIĞINIZ IÇIN TEŞEKKÜRLER… Öğr. Gör. Bayram AKGÜL 25