BMT 0 Algoritma ve Programlama I 2. Hafta Yük. Müh. Köksal GÜNDOĞDU
Algoritma ve Programlama Yük. Müh. Köksal GÜNDOĞDU 2
Algoritma Kavramı Yük. Müh. Köksal GÜNDOĞDU 3
Algoritma ve Programlama Bilgisayardaki bir işlemin/işlemlerin gerçekleştirilmesinde izlenecek adımlar dizisine algoritma denir. Bir problemi çözmek için bilgisayara öğretilen işlem basamaklarıdır. Algoritma yaklaşımı, ilk olarak 9. yüzyılda yaşamış Türk- İslam matematikçisi ve astronomu Harzemli Mehmet in ikinci derece denklemlerin çözümü için geliştirdiği bir yöntemdir. Algoritma kelimesi de aritmetik problemleri çözme kuralları anlamında Harizmi nin ismine atıfta bulunularak algorizm kelimesinden türetilmiştir. Yük. Müh. Köksal GÜNDOĞDU 4
Algoritma ve Programlama Bir bilgisayar programı birçok görev için yazılır ve çok satırdan oluşur. Algoritma yazmadan yani program üzerinde hiç düşünmeden ve bir taslak çıkarmadan kodlamaya geçilirse birçok hata ile karşılaşılır. Bu sebeple önce programdan istenenler nedir ve işlem adımları nelerdir diye düşünülerek algoritma yazılır. Algoritma bilgisayar programının krokisi gibi düşünülebilir. Algoritma günlük dilde yazılabileceği gibi algoritma için geliştirilmiş diller ile de yazılabilir. Yük. Müh. Köksal GÜNDOĞDU 5
Program Yazma Süreci Yük. Müh. Köksal GÜNDOĞDU 6
Yazılım Geliştirme Aşamaları. Analiz: Önce programdan neler bekleniyor. Giriş verileri nedir? Çıkışta neler isteniyor bunlar belirlenir.. Girdi 2. Girdi Program Çıktı 3. Girdi Yük. Müh. Köksal GÜNDOĞDU 7
Yazılım Geliştirme Aşamaları 2. Algoritma: Bu programın yapacağı işlemlerin adım adım tanımlandığı işlemler sırasıdır. Bu işlemler yazılı olarak(pseudo-kod) ile ifade edilebileceği gibi çeşitli şekiller ile de ifade edilebilirler. İşte algoritmanın şekiller ile ifade edilmesine akış şeması adı verilir.. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli. 2. Çıktı: En azından bir değer üretilmeli. 3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli. 4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli. 5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır. Not: Bir program için 4. özellik geçerli değil. işletim sistemleri gibi program sonsuza dek çalışırlar. Yük. Müh. Köksal GÜNDOĞDU 8
Yazılım Geliştirme Aşamaları Örnek: İki sayının toplamını yazan algoritmayı yazınız. Çözüm: Girdi: Birinci sayı (sayi), İkinci sayı (sayi2) Çıktı: İki sayının toplamı (toplam). Basla 2. sayi değerini gir. 3. sayi2 değerini gir. 4. toplam=sayi+sayi2 5. toplam değerini ekrana yaz. 6. Bitir Yük. Müh. Köksal GÜNDOĞDU 9
Yazılım Geliştirme Aşamaları 3. Kodlama: Akış şeması veya algoritması çıkarılan programın bir programlama dili ile ifade edilmesidir. #include <iostream> using namespace std; int main() { cout << "Merhaba Dunya..."; return 0; } Yük. Müh. Köksal GÜNDOĞDU 0
Yazılım Geliştirme Aşamaları 4.Derleme: Program kodlarının makine diline dönüştürülmesi işlemidir. Dev-C++ Visual Studio NetBeans Eclipse Code::Blocks Yük. Müh. Köksal GÜNDOĞDU
Yazılım Geliştirme Aşamaları 5. Test(Debugging): Programın doğru çalışıp çalışmadığı kontrol edilir. Hatalardan arındırılır. Yük. Müh. Köksal GÜNDOĞDU 2
Yazılım Geliştirme Aşamaları 6. Dökümantasyon: Bu programı ilk defa kullanacak kişiler için belge hazırlanır. Bu kısım proje hazırlama kısmı gibi yaptıklarımızı dökümana dökmek ilerde geliştirmek ve satışını gerçekleştirmek için gerekli olan kısımdır. Daha çok arşive ve pazarlamaya yönelik olur. Çünkü kaydı tutulmayan veriler kaybolup gider. Dökümantasyonunu hazırlayıp çalışmamızı sunabiliriz. İlk başta program hakkında genel bilgiler verilir, program ne amaçladı, ne tür veriler kullandı, ne tür formatlarda oluşturuldu, ne tür çıktılar üretti, algoritması çalışma biçimi akış diyagramı, performansı ve gelecek eklentiler, eksik yanları en zon bu program nasıl kullanılır? Bu konular hakkında dökümanlar hazırlanır. Yük. Müh. Köksal GÜNDOĞDU 3
Algoritmada Kullanılan İşlemler Yük. Müh. Köksal GÜNDOĞDU 4
İŞLEMLER. Matematiksel (Aritmetik ) İşlemler 2. Karşılaştırma (Karar) İşlemleri 3. Mantıksal (Lojik) İşlemler Yük. Müh. Köksal GÜNDOĞDU 5
Matematiksel (Aritmetik ) İşlemler İşlem Matematik Bilgisayar Toplama a+b a+b Çıkarma a b a b Çarpma a.b a*b Bölme a b a/b Üs Alma a b a^b Yük. Müh. Köksal GÜNDOĞDU 6
Matematiksel (Aritmetik ) İşlemler Yük. Müh. Köksal GÜNDOĞDU 7
Matematiksel (Aritmetik ) İşlemler Matematiksel İfadelerin Bilgisayar Dilinde Kodlanması Matematiksel yazılım a+b-c+2abc-7 Bilgisayara kodlanması a+b-c+2*a*b*c-7 a+b 2 -c 3 a+b^2-c^3 a-b/c+2ac-2/a+b a-b/c+2*a*c-2/(a+b) a+b 2ab/b 2-4ac (a+b)^(/2)-2*a*b/b^2-4*a*c) Yük. Müh. Köksal GÜNDOĞDU 8
Matematiksel (Aritmetik ) İşlemler Örnek : a = 4, b = 6, c = 8 ve d = 0 değerleri için bilgisayar dilinde kodlanmış üç denklemin sonuçlarını inceleyiniz.. Denklem c * d / (a*d) + b + c *d / a = 28 2. Denklem c * d / a*d + b + c *d / a = 226 3. Denklem c * d / a*d + (b + c) *d / a =235 Yük. Müh. Köksal GÜNDOĞDU 9
Matematiksel (Aritmetik ) İşlemler Örnek 2: A = 9, B = 6 değerleri için aşağıdaki ifadelerin sonuçlarını bulunuz. İfade A + B^/2 A + B^(/2) (A + B)^/2 (A + B)^(/2) Matematiksel eşdeğeri A A B 2 B (A B) 2 A B = 7 = 3 = 2.5 = 5 Yük. Müh. Köksal GÜNDOĞDU 20
Karşılaştırma (Karar) İşlemleri Matematiksel işlemlerin yanı sıra karar modelleri de söz konusudur. İşlem Sembolü Anlamı = Eşittir <> Eşit değildir > Büyüktür < Küçüktür >= veya => Büyük eşittir <= veya =< Küçük eşittir Yük. Müh. Köksal GÜNDOĞDU 2
Mantıksal İşlem Mantıksal (Lojik) İşlemler Mantıksal işlem operatörleri hem karar ifadelerinde hem de matematiksel İşlemlerde kullanılır. Programlardaki karşılaştırma ifadelerinde birden fazla koşulun belirli bir özellikte sağlanması istenir. Bu durumda araya mantıksal işlem operatörleri konulur. Komut Komut Matematiksel Sembol VE AND and (&). VEYA OR or ( ) + DEĞİL NOT not (~) Yük. Müh. Köksal GÜNDOĞDU 22
Mantıksal (Lojik) İşlemler VE (&) Operatörü: Bütün koşullar doğru ise sonuç doğrudur. Bütün şartların sağlatılması isteniyorsa koşullar arasına (VE) mantıksal operatörü kullanılır. A B A &B, and(a,b) 0 0 0 0 0 0 0 Yük. Müh. Köksal GÜNDOĞDU 23
Mantıksal (Lojik) İşlemler VEYA ( ) Operatörü: Koşullardan herhangi birisi doğru ise sonuç doğrudur. A B A B, or(a,b) 0 0 0 0 0 Yük. Müh. Köksal GÜNDOĞDU 24
Mantıksal (Lojik) İşlemler Mantıksal işlemlerde öncelik sırası şöyledir:. Her zaman parantez içindeki mantıksal işlemler ilk önce yapılır. 2. Değil, yani (~) işleminin diğer mantıksal işlemlere göre önceliği vardır. 3. Son olarak, Ve (&) ve or ( ) işlemleri gerçekleştirilir. İşlem öncelik sıraları Sıra İşlem Komut Parantez içindeki işlemler ( ) 2 DEĞİL NOT 3 VE AND 4 VEYA OR Yük. Müh. Köksal GÜNDOĞDU 25
Mantıksal (Lojik) İşlemler Lojik İşlemlerin bazı özellikleri aşağıdaki gibidir. A+0=0 A.0=0 A+A = A.A =0 A+A=A A.A=A A+= A.=A A+B=B+A A.B=B.A A+(B+C)=(A+B)+C A.(B.C)=(A.B).C A.(B+C)=A.B+A.C A+B.C=(A+B).(A+C) (A+B) =A.B (A.B) =A +B A+A.B=A A.(A+B)=A (A ) =A Yük. Müh. Köksal GÜNDOĞDU 26
Mantıksal (Lojik) İşlemler Örnek : Bir işyerinde çalışan işçiler arasında yalnızca yaşı 23 ün üzerinde olup maaş olarak asgari ücret alanların isimleri istenmektedir. Yük. Müh. Köksal GÜNDOĞDU 27
Mantıksal (Lojik) İşlemler Eger Yaş > 23 & maaş == asgari ücret ise Yaz isim. koşul 2. koşul Yaş Maaş. koşul 2. koşul Sonuç Yaz 20 900 0 0 0 Çalışmaz 9 300 0 0 Çalışmaz 25 950 0 0 Çalışmaz 30 300 Çalışır Yük. Müh. Köksal GÜNDOĞDU 28
Soru: 3 2 3 25 4 2 22* 4 45 ÖRNEKLER ifadesini bilgisayar programlama için kodlayınız. Yük. Müh. Köksal GÜNDOĞDU 29
ÖRNEKLER 2 25 4 2 3 22. 4 45 3 =(25^(/3))/4//(2+3 22*2/4)/45 Yük. Müh. Köksal GÜNDOĞDU 30
ÖRNEKLER Soru2: x 2 y 3 4 z ifadesini bilgisayar programlama için kodlayınız. x=y=z= için sonucunu bulunuz. Yük. Müh. Köksal GÜNDOĞDU 3
ÖRNEKLER x 2 y 3 4 z =(2/(+x 3/(y+4 /z)))^(/2) =(2/(+ 3/(+4 /)))^(/2) =(8/5)^(/2) Yük. Müh. Köksal GÜNDOĞDU 32
Soru 3: a^2/(b*c^(/2)) ÖRNEKLER a=,b=5, c=9 için aşağıdaki ifadenin sonucu ne olur? Yük. Müh. Köksal GÜNDOĞDU 33
ÖRNEKLER a^2/(b*c^(/2)) ^2/5*9^(/2)=/5 Yük. Müh. Köksal GÜNDOĞDU 34
ÖRNEKLER Soru4: 3 4 5 a b a b c ab abc ifadesini bilgisayar programlama için kodlayınız. Yük. Müh. Köksal GÜNDOĞDU 35
ÖRNEKLER 3 4 5 a b a b c ab abc =((a b)^(/5)/(a+b c/a*b)^(/4))^(/3)+ /((+/((+/(a*b*c))^(/2)))^(/2)) Yük. Müh. Köksal GÜNDOĞDU 36
ÖRNEKLER Soru5: a 7 abc a b c abc ifadesini bilgisayar programlama için kodlayınız. Yük. Müh. Köksal GÜNDOĞDU 37
ÖRNEKLER a 7 abc a b c abc =a+(a*b*c)^(/7) /(+/(a+/(b+/(c+/(a*b*c))))) Yük. Müh. Köksal GÜNDOĞDU 38