BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB,...

22
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

Transcript of BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB,...

Page 1: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 2: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 3: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 4: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 5: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 6: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 7: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 8: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 9: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 10: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 11: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 12: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 13: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 14: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 15: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 16: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 17: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 18: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 19: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 20: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 21: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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

Page 22: BIL 1306 Temel Bilgisayar Programlamustafabahsi.cbu.edu.tr/dosyalar/konu_ekleri/birinci...MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe

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…