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
© Copyright 2024 Paperzz