ders notu

26.09.2014
EM205 26/9/2014
Programlamaya giriş
Algoritmalar
Amaçlar
• Temel kavramlar
• Algoritmalar
– Algoritma kavramını öğrenmek,
– Algoritmaları ifade edebilmek,
– Temel matematiksel algoritmaları yazabilmek
• C
C programlama dilini etkin bir şekilde programlama dilini etkin bir şekilde
kullanmak
• Nesneye yönelik programlamaya başlangıç
1
26.09.2014
Donanım + Yazılım
Elektronik Tasarım
Elektronik Tasarım
Genel Amaçlı Devre
(General Purpose Computing)
Özel amaçlı devre
Örn: Application Specific
Integrated Circuit (ASIC)
2
26.09.2014
Elektronik Tasarım
Genel Amaçlı Devre
(General Purpose Computing)
Özel amaçlı devre
Örn: Application Specific
Integrated Circuit (ASIC)
a
b
(donanım)
c=(a+b)/2
Elektronik Tasarım
Genel Amaçlı Devre
(General Purpose Computing)
a
b
c
Mikro işlemci
Özel amaçlı devre
Örn: Application Specific
Integrated Circuit (ASIC)
a
b
(donanım)
c=(a+b)/2
(donanım)
3
26.09.2014
Elektronik Tasarım
Genel Amaçlı Devre
(General Purpose Computing)
a
b
c
Özel amaçlı devre
Örn: Application Specific
Integrated Circuit (ASIC)
a
Mikro işlemci
b
(donanım)
c=(a+b)/2
(donanım)
(yazılım)
a,b :giriş
c: çıkış
c=(a+b)/2
Elektronik Tasarım
Genel Amaçlı Devre
(General Purpose Computing)
a
b
c
Mikro işlemci
(donanım)
(yazılım)
Özel amaçlı devre
Örn: Application Specific
Integrated Circuit (ASIC)
a
b
(donanım)
c=(a+b)/2
em221‐222
em212‐315‐316
em204
a,b :giriş
c: çıkış
c=(a+b)/2
em205
em345 ‐ 308
4
26.09.2014
YAZILIM
• Yazılım, elektronik aygıtların belirli bir işi yapmasını sağlayan programların tümüne verilen isimdir. isimdir
• Bir başka deyişle, var olan bir problemi çözmek amacıyla bilgisayar dili kullanılarak oluşturulmuş anlamlı programlar bütünüdür.
• Örnek;
–
–
–
–
Microsoft Word 2010
Microsoft
Word 2010
Pes 2013
Windows 7
Matlab
Problem?
İhtiyaçlar
Girdiler
İstenen çıktılar
Yazılım geliştirme modeli
Yöntem (Algoritma) (Algoritma)
Geliştirme
Program Yazma
(Kod yazma)
Hata ayıklama
Çalışan program
Bakım/
Güncelleme
5
26.09.2014
Problem?
İhtiyaçlar
Girdiler
İstenen çıktılar
Yöntem (Algoritma)
(Algoritma) Geliştirme
Yazılım geliştirme modeli
Kağıt/Kalem
Program Yazma
(Kod yazma)
Hata ayıklama
Çalışan program
Problem?
İhtiyaçlar
Girdiler
İstenen çıktılar
Yöntem (Algoritma)
(Algoritma) Geliştirme
Bakım/
Güncelleme
Yazılım geliştirme modeli
Kağıt/Kalem
PC
Program Yazma
(Kod yazma)
Hata ayıklama
Çalışan program
Bakım/
Güncelleme
6
26.09.2014
Algoritma
• Algoritma, bir problemi çözmek için uygulanması gereken sonlu sayıda adımın net
uygulanması gereken sonlu sayıda adımın net ve sıralı bir şekilde ifadesidir
• Başka bir deyişle; algoritma belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.
• Özellikler: – Her işlem net olmalı ve farklı anlamlar içermemeli.
– Her durumda algoritma sonlu adımda bitmeli.
– En az bir çıkış üretmeli (giriş olmayabilir)
• İki sayının toplamını ekrana yazan algoritma;
1. BAŞLA
2 A sayısını oku
2. A sayısını oku
3. B sayısını oku
4. TOPLAM=A + B işlemini yap
5. TOPLAM değerini ekrana yaz
6. SON
• Klavyeden girilen iki sayıdan büyük olanından küçük olanını çıkarıp sonucu ekrana yazan algoritma,
1. BAŞLA
y
2. A sayısını oku
3. B sayısını oku
4. a. Eğer A büyüktür B; SONUC=A‐B
b. Değilse; SONUC=B‐A
E. SONUC değerini ekrana yaz
F. SON
7
26.09.2014
• Klavyeden girilen bir N sayısının faktöriyelini ekrana yazan algoritma,
1. BAŞLA
2. N OKU
3. F=1
4. X=2
5. F=F*X
6. X=X+1
7. EĞER X<=N İSE 5. ADIMA GİT
8. F YAZ
9. SON
Kullanılan tüm değişkenlerin bir görevi olmalı
Algoritmaların ifade edilmesi
• 1. Akış Diyagramı (Flow Chart)
• 2. Sözde Kode (Pseudo Code)
8
26.09.2014
Akış Diyagramı (Flow Chart)
•
Akış diyagramları algoritmaların şematik olarak gösterilme şeklidir. Akış şemalarında yaygın olarak kullanılan semboller aşağıdaki gibidir.
Başla/Bitir
İşlem (process)
Karar
Giriş
Çıkış
Akış şemasının komutlarının başlangıç ve bitiş gösterimi
Yapılması istenen işlemler
Bazı kararlara bağlı olarak farklı yolların izleneceği durumlar
Veri girişinin klavyeden olacağını gösterir.
Ekranda değer yazdırma. BAŞLA
A
B
TOPLAM ← A+B
TOPLAM
1. BAŞLA
2. A sayısını oku
3. B sayısını oku
4. TOPLAM=A + B işlemini yap
5. TOPLAM değerini ekrana yaz
6. SON
SON
9
26.09.2014
BAŞLA
A, B
Yanlış
A > B
SONUC ← B‐A
Doğru
SONUC ← A‐B
SONUC
SON
1. BAŞLA
2. A sayısını oku
3. B sayısını oku
4 a Eğer A büyüktür B;
4. a. Eğer A büyüktür B; SONUC=A‐B
b. Değilse; SONUC=B‐A
E. SONUC değerini ekrana yaz
F. SON
BAŞLA
N
F←1, X ← 2
F ← F*X
X ← X+1
Doğru
X<=N
Yanlış
SONUC
1. BAŞLA
2. N OKU
3. F=1
4. X=2
5. F=F*X
6. X=X+1
7. EĞER X<=N İSE 5. ADIMA GİT
8. F YAZ
9. SON
SON
10
26.09.2014
1’den N e kadar tam sayıların toplamını bulan program.
N’in tek bir değeri için çalışır.
1’den N e kadar tam sayıların toplamını bulan program.
Birden çok N değeri için çalışır, N=0 girildiğinde program sonlanır.
11
26.09.2014
5 sayının ortalamasını hesaplayan program
‐ Kaç sayı olduğu önceden belli : “for” döngüsü için uygun
5
Ortalama hesaplayan program.
Başlangıçta kaç sayı girileceği belli değil, negatif sayı girilene kadar okuyacak
‐ Döngünün sonlandırılışına dikkat ediniz.
‐ Kaç sayı olduğu önceden belli değil: “while” döngüsü
12
26.09.2014
5 sayının en küçüğünü bulan program
‐ tüm sayıların 999’dan küçük olduğu varsayılıyor.
BAŞLA
sayiA, sayiB
gecici←sayiA
sayiA←sayiB
sayiB←gecici
sayiA, sayiB
A ve B sayılarının değerlerini değiştiren program.
Örn:
A=3, B=8 iken
A=8, B=3 olacak
A←B,
B←A
Yapılamaz Neden?
Yapılamaz. Neden?
SON
13
26.09.2014
Girilen sayının Tek mi, Çift mi olduğuna karar veren program.
BAŞLA
A
TamSayı / TamSayı → TamSayı
B← A/2*2
Yanlış
A==B
Doğru
Örn: 10 / 4 ≠ 2.5
10 / 4 = 2 “çift”
“tek”
A/2*2
A/2
2 yerine %
yerine % (bölümünden kalan) (bölümünden kalan)
operatörü kullanılmalı.
A%2 = A’nın 2’ye bölümünden kalan
SON
BAŞLA
Girilen sayının Onlar Basamağını bulan program.
A
B← A/10
C← B – (B/10*10)
C
SON
14
26.09.2014
BAŞLA
i← 0
i← i+1
i<10
E
10 elemanlı bir dizinin elemanlarının toplamı..
Di
H
Di i=1, 2, … N
TOP← 0
i← 0
ii← ii+1
1
i<10
E
TOP← TOP+Di
H
TOP
SON
BAŞLA
a← 1
b← 1
Fibonacci serisi…
1, 1, 2, 3, 5, 8, 13, 21
, , , , , , ,
i← 0
c← a+b
c
a← b
b← c
i← i+1
E
i<10
H
SON
15
26.09.2014
BAŞLA
D0← 1
D1← 1
Fibonacci serisi…
1, 1, 2, 3, 5, 8, 13, 21
, , , , , , ,
i← 2
i← i+1
E
i<10
Di← Di‐1+Di‐2
H
i← 0
i← i+1
E
i<10
Di
H
SON
Sözde (Pseudo) Kod
• Sözde kod, doğrudan konuşma dilinde ve programlama mantığı altında, eğer, iken
l
t ğ lt d ğ ik gibi ibi
koşul kelimeleri ve > = < gibi ifadeler ile yazılır. İyi bir biçimde yazılmış, sözde koddan, programlama diline kolaylıkla geçilebilir.
16
26.09.2014
Örnek: Verilen bir sıcaklık derecesine göre suyun durumunu belirten PseudoKod.
1. Program açıklama mesajı yaz.
2. Kullanıcın sıcaklığı girmesi için bir uyarı mesajı yaz.
2. Kullanıcın sıcaklığı girmesi için bir uyarı mesajı yaz.
3. Girilen Sıcaklığı Oku.
4. Durumu belirle
Eğer Sıcaklık > 0 ise
Eğer Sıcaklık>= 100 ise
Durum =“Buhar”
Değilse
Durum =“Su”
Durum =
Su
Değilse
Durum=“Buz”
5. Sonucu (Durum) Yaz
17