BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi
Ders Bilgileri Dersin Hocası: Araş. Gör. Ahmet Ardahanlı E-posta: ahmet.ardahanli@hotmail.com Oda: DZ-33
Ders Bilgileri Değerlendirme a. Ara sınav: 40% b. Haftalık ödevler, quizler ve yoklama: 20% c. Final: 40% Kaynak Kitaplar -Süleyman Çiftçi, Matlab, Kodlab yayınları
Bu hafta? 1. Bilgisayarla Problem Çözümünün Aşamaları 2. Algoritma Geliştirme 3. Akış Diyagramları
Bilgisayarla Problem Çözümünün Aşamaları 1. Analiz 2. Algoritma Geliştirme 3. Akış Şeması Çizimi 4. Programlama Dili Seçimi 5. Programın Yazılması 6. Derleme 7. Çalıştırma 8. Test
Bilgisayarla Problem Çözümünün Aşamaları 1. Analiz: Çözülmesi istenen problemin tamamen anlaşılmasını sağlayacak ön çalışmalardır. 2. Algoritma Geliştirme: Problemi çözecek adımların sıralı olarak ifade edilmesidir. 3. Akış Şeması Çizimi: Geliştirilen algoritmanın şekillerle ifade edilmesidir. 4. Programlama Dili Seçilmesi: Geliştirilen algoritmayı kolay bir şekilde bilgisayar ortamına aktaracak bir bilgisayar programlama dilinin seçilmesidir.(c, C#, C++, Matlab, Java )
Bilgisayarla Problem Çözümünün Aşamaları 5. Programın Yazılması: Seçilen programlama dilinin kuralları kullanılarak programın yazılması aşamasıdır. 6. Derleme: Programlama dili komutlarına dönüşmüş çözümün yazım hatalarının olup olmadığının kontrol edilmesi ve programın makina dili (assembly) komutlarına çevrilmesidir. 7. Çalıştırma: Derlenmiş programın işletim sistemi tarafından hard diskten alınarak belleğe taşındığı ve programın ilk komutunun adresinin Merkezi İşlem Birimi (CPU) ne bildirildiği aşamadır. 8. Test: Programın mantıksal olarak test edildiği ve muhtemel her giriş için doğru sonuçlar üretip üretmediğinin kontrol edildiği aşamadır.
Algoritma Geliştirme Algoritma: Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne denir. Algoritma, bir problemin çözümünde izlenecek yol anlamına gelir. Tüm programlama dillerinin temeli algoritmaya dayanmaktadır. Algoritma bilmeden gerçek manada bir programcı olamazsınız. Bunu yaparken 3 temel bileşenimiz vardır. 1. Değişkenler 2. Algoritma 3. Akış Diyagramı
Algoritma Geliştirme-Örnek 1 Verilen iki sayının toplamını bulan bir algoritma yazalım. Değişkenler: birinci sayı: X ikinci sayı: Y iki sayının toplamı: Z A1 : Başla A2 : Klavyeden oku X A3 : Klavyeden oku Y A4 : Z = X + Y A5 : Yaz Z A6 : Dur
Algoritma Geliştirme-Örnek 2 Verilen iki sayının ortalamasını bulan bir algoritma yazalım Değişkenler: birinci sayı: X ikinci sayı: Y iki sayının toplamı: Z iki sayının ortalaması: ortalama A1 : Başla A2 : Klavyeden oku X A3 : Klavyeden oku Y A4 : Z = X + Y A5 : ortalama= Z/2 A6 : ortalama değerini yaz A7 : Dur
Algoritma Geliştirme-Örnek 3 Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması. Kenar uzunlukları negatif olarak girildiği durumda veri girişi tekrarlanacaktır. Değişkenler: birinci kenar uzunluğu: a ikinci kenar uzunluğu: b alan: alan A1 : Başla A2 : Klavyeden oku a A3 : a<0 ise 2. adımı tekrarla A4 : b değerini gir A5 : b<0 ise 4. adımı tekrarla A6 : alan=a*b A7 : alan değerini yaz A7 : Dur
Algoritma Geliştirme-Örnek 4 Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu hesaplayıp yazdıran algoritma ve akış şemasını hazırlayınız. Değişkenler: sayı: S A1 : Başla A2 : Klavyeden oku S A3 : Eğer S > 0 ise Pozitif yaz, A4 : Eğer S < 0 ise Negatif yaz, A5 : Eğer S = 0 ise Sıfıra eşit yaz, A6 : Dur
Algoritma Geliştirme-Örnek 5 N sayısını klavyeden okutarak faktöriyelini hesaplayan algoritmanın hesaplanması Değişkenler: sayı: N Faktöriyel: NFAK Sayaç: ISAYI A1 : Başla A2 : Klavyeden oku N A3 : NFAK=1 A4 : ISAYI=1 A5 : ISAYI=ISAYI+1 A6 : NFAK=NFAK*ISAYI A7 : Eğer ISAYI < N ise 5.adıma dön, A8 : Eğer ISAYI >= N ise NFAK ekrana yaz A9 : Dur
Akış Diyagramları Herhangi bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantıksal adımların söz veya yazı ile anlatıldığı algoritmanın, görsel olarak simge ya da sembollerle ifade edilmiş şekline akış şemaları veya FLOWCHART adı verilir. Akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içine yazılmış olması ve adımlar arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir.
Akış Diyagramları Akış şemalarının hazırlanmasında aşağıda yer alan simgeler kullanılır. Algoritmanın başladığını ya da sona erdiğini belirtmek için kullanılır. Araç belirtmeden giriş ya da çıkış yapılacağını gösterir. (Oku-Yaz) Hesaplama ya da değerlerin değişkenlere aktarımını gösterir. A=A+1 Final=100 Aritmetik ve mantıksal ifadeler için karar verme ya da karşılaştırma durumunu gösterir. Yapılacak işler birden fazla sayıda yinelenecek İse, diğer bir deyişle iş akışında çevrim (döngü) var ise bu sembol kullanılır. Klavye aracılığı ile giriş ya da okuma yapılacağını gösterir.
Akış Diyagramları Akış şemalarının hazırlanmasında aşağıda yer alan simgeler kullanılır. Diskten okuma veya diskete yazmayı gösterir. Oklar işin akış yönünü gösterir.
Akış Diyagramları-Örnek 1 Verilen iki sayının toplamını bulan bir algoritma yazalım. Değişkenler: birinci sayı: X ikinci sayı: Y iki sayının toplamı: Z A1 : Başla A2 : Klavyeden oku X A3 : Klavyeden oku Y A4 : Z = X + Y A5 : Yaz Z A6 : Dur BAŞLA OKU X OKU Y Z=X+Y YAZ Z DUR
Akış Diyagramları-Örnek 2 BAŞLA Verilen iki sayının ortalamasını bulan bir algoritma yazalım Değişkenler: birinci sayı: X ikinci sayı: Y iki sayının toplamı: Z iki sayının ortalaması: ortalama A1 : Başla A2 : Klavyeden oku X A3 : Klavyeden oku Y A4 : Z = X + Y A5 : ortalama= Z/2 A6 : ortalama değerini yaz A7 : Dur OKU X OKU Y Z=X+Y Ortalama=Z/2 YAZ ortalama DUR
Akış Diyagramları-Örnek 3 Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması. Kenar uzunlukları negatif veya 0 olarak girildiği durumda veri girişi tekrarlanacaktır. Değişkenler: birinci kenar uzunluğu: a ikinci kenar uzunluğu: b alan: alan A1 : Başla A2 : Klavyeden oku a A3 : a<0 ise 2. adımı tekrarla A4 : b değerini gir A5 : b<0 ise 4. adımı tekrarla A6 : alan=a*b A7 : alan değerini yaz A7 : Dur a<0 veya a=0 b<0 veya b=0 BAŞLA OKU a a : 0 OKU b b: 0 alan=a*b YAZ alan DUR
Akış Diyagramları-Örnek 4 Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu hesaplayıp yazdıran algoritma ve akış şemasını hazırlayınız. BAŞLA OKU S Değişkenler: sayı: S A1 : Başla A2 : Klavyeden oku S YAZ Pozitif S > 0 S : 0 S < 0 YAZ Negatif A3 : Eğer S > 0 ise Pozitif yaz, S = 0 A4 : Eğer S < 0 ise Negatif yaz, A5 : Eğer S = 0 ise Sıfıra eşit yaz, YAZ Sıfıra eşit A6 : Dur DUR
Akış Diyagramları-Örnek 5 BAŞLA N sayısını klavyeden okutarak faktöriyelini hesaplayan algoritmanın hesaplanması Değişkenler: sayı: N Faktöriyel: NFAK Sayaç: ISAYI A1 : Başla A2 : Klavyeden oku N A3 : NFAK=1 A4 : ISAYI=1 A5 : ISAYI=ISAYI+1 A6 : NFAK=NFAK*ISAYI A7 : Eğer ISAYI < N ise 5.adıma dön, A8 : Eğer ISAYI >= N ise NFAK ekrana yaz A9 : Dur DOĞRU OKU N NFAK=1 ISAYI=1 ISAYI=ISAYI+1 NFAK=NFAK*ISAYI ISAYI<N YAZ NFAK YANLIŞ DUR
Önümüzdeki hafta? Matlab ve Programlama Ortamı Matlab Komut Penceresi Matlab de değişken tanımlama Matematiksel Operatörler ve İşlem Önceliği Bazı hazır matematiksel fonksiyonlar "input" komutuyla MATLAB ortamına dışarıdan veri girişi Uygulamalar