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