BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB,...
Transcript of BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB,...
BLG 1306 Temel Bilgisayar Programlama
Öğr. Grv. M. Mustafa BAHŞI
WEB : mustafabahsi.cbu.edu.tr
E-MAIL : [email protected]
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm AşamalarıP
rog
ram
lam
a
Problem 1- Problemin Analiz Edilmesi 2- Algoritma Kurulması (Geliştirilmesi) 3- Akış Diyagramı (Flow Chart) ile Algoritmanın İfadesi 4- Uygun Programlama Dili ile
Algoritmanın Yazılıma Dönüştürülmesi
5- Derleme ve Hataların Ayıklanması Program
Ele alınan problemin bilgisayar programına dönüştürme adımları
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
1. Problemin Analiz Edilmesi
Problem eksiksiz bir şekilde ele alınmalı, tüm durumlar düşünülmeli ve problemin verileri ile
elde edilmek istenilen çıktılar iyi belirlenmelidir.
2. Algoritma Kurulması (Geliştirilmesi)
Algoritma, ele alınan problemi çözümlemek için gereken işlem adımları ve belirlenen işlem
adımlarının sırasının belirlenmesidir. Herhangi bir problemin çözümlenmesinde temel mantık
işlemelerinden faydalanılır. Algoritma geliştirme aşamasında, geliştirilen algoritmanın;
i. Problemin tanımlandığı tüm durumlar için çalışabilmesi
ii. Basitleştirilmiş ve tüm kullanıcılar tarafından anlaşılır olması
iii. İşlemler yapılma sırasına göre ve doğru mantıksal kurguda olması
gerekmektedir. Ancak bunlar yapıldığında problem istenilen ölçüde çözüme kavuşmuş olacaktır.
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
3. Akış Diyagramı (Flow Chart) ile Algoritmanın İfadesi
Algoritmanın şekiller yardımıyla ifade edilme şekline akış diyagramı denir. Akış diyagramı şekilleri
uluslararasıdır. Akış diyagramı, algoritmanın tüm yazılımcılar tarafından anlaşılmasını sağlayan bir dil
olarak düşünülebilir. Ele alınan problem için geliştirilen algoritmanın yazılıma (programa) kolayca
çevrilmesinde programcılar tarafından kullanılmaktadır.
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
3. Akış Diyagramı (Flow Chart) ile Algoritmanın İfadesi
Şekil Anlamı
İşlem ve Atama
Program Başlangıcı ve Bitişi
Veri Girişi
Oklar
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
3. Akış Diyagramı (Flow Chart) ile Algoritmanın İfadesi
Şekil Anlamı
Görüntü Çıktısı
Yazıcı Çıktısı
Karar Verme
Döngüler
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
3. Akış Diyagramı (Flow Chart) ile Algoritmanın İfadesi
Şekil Anlamı Açıklama
Veri Tabanı
Veri Tabanından okuma ve yazma işlemi yapıldığını gösterir.
Önceden Tanımlı İşlemler
Alt programlar, fonksiyonlar veya prosedürler olarak bilinen büyük yazılımları gösterir.
Bağlayıcı
Bağlayıcı, birçok sayfadan oluşan akış şemalarını birbirine bağlar.
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
4. Uygun Programlama Dili ile Algoritmanın Yazılıma Dönüştürülmesi
Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Şu ana kadar 150’den fazla programlama dili yapılmıştır. Bunlardan bazıları Pascal, Basic, C, C#, C++, Java, Cobol, Perl, Python, Ada, Fortran, Delphi ve 1C Enterprise'dır. (Wikipedia)
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
4. Uygun Programlama Dili ile Algoritmanın Yazılıma Dönüştürülmesi
http://www.ted.com/talks/conrad_wolfram_teaching_kids_real_math_with_computers (VİDEO)
MATLAB (matrix laboratory) sayısal hesaplama ve dördüncü nesil programlama dilidir. MathWorks tarafından
geliştiriliyor. MATLAB, matris işlenmesine, fonksiyonlar ve veri çizilmesine, algoritmalar uygulanmasına, kullanıcı
arayüzü oluşturulmasına ve diğer dillerle yazılmış programlar ile etkileşim oluşturulmasına izin
verir. C, C++, Java, ve Fortran dillerini içerir.
MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe bağlı olarak sembolik
hesaplama yapabilen MuPAD sembolik hesaplama motorunu kullanır. Ek paket, dinamik ve gömülü
sistemler için Simulink‘ i, grafiksel çoklu alan simülasyonunu ve model tabanlı tasarımı ekler.
2004'te, MATLAB akademik ve endüstriyel alandaki kullanıcı sayısı bir milyon civarındaydı. MATLAB
kullanıcıları mühendislik, bilim, ve ekonomi gibi çeşitli alanlardan gelmektedir. MATLAB, yaygın olarak akademik
ve araştırma kurumlarında olduğu kadar endüstriyel işletmelerde de çok kullanılmaktadır. (Wikipedia)
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
5. Derleme ve Hataların Ayıklanması
Yazılım geliştirime (programlama) aşamasında iki hata ile karşılaşılması muhtemeldir. Her
program diline ait belli yazım kuralları olduğundan, yazılımınız içerisindeki yanlış komut yazımı,
hatalı noktalama kullanımı veya eksik kodlama gibi durumlardaki hatalara yazılım hataları denir.
Bunlar düzeltilmeden program zaten çalışmaz. Bunlar kullandığınız programlama diline uygun
olacak şekilde düzeltilerek hata ayıklaması yapılır. Diğer bir hata türü ise algoritma hatalarıdır.
Yazılım hatası olmamasına rağmen programın çalışmaması, hatalı sonuçlar vermesi veya istenilen
tüm durumları karşılamaması gibi durumlarda karşılaşılan hata durumudur. Algoritma hatalarını
test ederken akış diyagramınızın veya kurduğunuz algoritmanın doğruluğunu kontrol etmeniz
gerekmektedir. Eğer bu bölümlerde bir hata yok ise problemin yanlış analiz edilme olasılığı vardır,
buda problemi tekrar ele alarak, programlama aşamalarınızın derlenmesi gerektirir.
Öğr. Gr. M. Mustafa BAHŞI
Bilgisayar ile Problem Çözüm Aşamaları
5. Derleme ve Hataların Ayıklanması
Problemin
Analiz Edilmesi
Algoritmanın
Kurulması
Akış
Diyagramı
Algoritmanın
Yazılıma
Dönüştürülmesi
Yazılım Hataları Algoritma Hataları
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Uygulama 1. Girilen üç sayının ortalamasını hesaplayan ve ekrana yazdıran algorimayı geliştiriniz ve bu
algoritmaya ait akış diagramını çiziniz.
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Algoritma 1.
1. Adım: Başla
2. Adım: Kullanıcıdan sayıBir değişkeni klavye yardımıyla al
3. Adım: Kullanıcıdan sayıİki değişkeni klavye yardımıyla al
4. Adım: Kullanıcıdan sayıÜç değişkeni klavye yardımıyla al
5. Adım: ortalama=(sayıBir+sayıİki+sayıÜç)/3
6. Adım: ortalama değerini ekrana yazdır.
7. Adım: Bitir
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Akış Diyagramı 1.
Başla
sayıBir
sayıİki
sayıÜç
ortalama=(sayıBir+sayıİki+sayıÜç)/3
ortalama
Bitir
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Uygulama 2. Su sıcaklığını ölçüp veri tabanına belirli periyotlarla T değişkeni ile atayan su ısıtma cihazının, su sıcaklığının 40 dereceye kadar ısıtan algoritmatı kurunuz.
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Algoritma 2.
1. Adım: Başla
2. Adım: Veri tabanından T değişkeni al
3. Adım: T değişkenini sıcaklık değişkenine ata
4. Adım: sıcaklık≥40 ise 5. Adım a git değilse 2. Adım a git
5. Adım: lsıtıcıtı kapat
6. Adım: Bitir
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Akış Diyagramı 2.
T
sıcaklık=T
Başla
sıcaklık≥40 Evet
Hayır
Isıtıyı kapat
Bitir Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Uygulama 3. İkinci dereceden cebirsel 𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0 denkleminin katsayılarının kullanıcı tarafından girilmesiyle, reel kökü olup olamadığına karar veren, varsa bulup ekrana yazdıran bir algoritma geliştiriniz ve akış diyagramını çiziniz.
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Algoritma 3.
1. Adım: Başla
2. Adım: Kullanıcıdan 𝑎, 𝑏 ve 𝑐 katsayı sabitlerini klavye yardımıyla al
3. Adım: 𝑎, 𝑏 ve 𝑐 değerleri ile denklemin diskriminant (∆) değerini hesapla ve “delta” değişkenine ata
4. Adım: “delta” değişkeni sıfırdan küçükse 6. Adım’ a, değilse 5. Adım’ a git
5. Adım: Ekrana “Denklemin kökleri reel.” yazdır. 7. Adım’ a git
6. Adım: Ekrana “Denklemin reel kökü yok.” yazdır. 9. Adım’ a git
7. Adım: Birinci ve ikinci kökleri hesapla ve sırasıyla “x1” ve “x2” değişkenlerine ata
8. Adım: “x1” ve “x2” değişkenlerinin değerlerini ekrana yazdır.
9. Adım: Bitir
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Akış Diyagramı 3.
Başla
, ve
delta= 2
delta<0
Denklemin
kökleri reeldir.
Denklemin reel
Kökü yoktur.
x1=
2
x2=
2
Hayır
Evet
x1, x2
Bitir
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
MATLAB Yazılımı 3. (Örnektir…)
a=input('Lütfen a katsayısını giriniz:');
b=input('Lütfen b katsayısını giriniz:');
c=input('Lütfen c katsayısını giriniz:');
delta=b^2-4*a*c;
if delta<0
disp('Denklemin Reel Kökü Yoktur');
else
disp('Denklemin Kökleri Reeldir');
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
fprintf('1. Kök: %g\n2. Kök: %g\n',x1,x2);
end
Öğr. Gr. M. Mustafa BAHŞI
Uygulamalar
Alıştırma
Öğr. Gr. M. Mustafa BAHŞI
Üçüncü uygulamanın algoritmasını, denklemin ikinci dereceden olup olmadığını kontrol edip, değilse ekrana
hata mesajı yazıp kullanıcıdan yeni veri girişi isteyen ve çakışık kök durumunu da tespit edip kullanıcıya
sunan bir algoritma olarak genişletiniz. Kurduğunuz bu algoritmanın akış diyagramını çiziniz.
İyi Çalışmalar…