Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları Yrd. Doç. Dr. Andaç MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.

Benzer bir sunumlar


... konulu sunumlar: "BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları Yrd. Doç. Dr. Andaç MESUT Trakya Üniversitesi Bilgisayar Mühendisliği."— Sunum transkripti:

1 BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları Yrd. Doç. Dr. Andaç MESUT Trakya Üniversitesi Bilgisayar Mühendisliği

2 Problem Çözme Günlük hayatımızda ya da bilgisayarda çözmemiz gereken bir problem ile karşılaştığımızda yapılması gerekenler problem çözme tekniği olarak adlandırılmaktadır. Çözüm aşamaları aşağıdaki gibidir. –Problemin hiçbir kuşkuya yer kalmaksızın anlaşılması –Çözüme ulaşmak için gerekli ara işlemlerin belirlenerek sıralanması –Ara işlemlerin sırasıyla uygulanması ve sonucun elde edilmesi

3 Algoritma Verilen herhangi bir problemin çözümüne ulaşmak amacıyla uygulanması gereken adımların hiçbir karışıklığa meydan vermemesi için sıralı ve düzenli bir şekilde yazıyla ifade edilmesine algoritma denilmektedir. Her algoritmanın sadece bir başlangıcı ve bir bitişi bulunmaktadır. Algoritmada adımlar sırasıyla işlenmektedir.

4 Algoritmanın hazırlanması Diğer bir deyişle algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir. Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları göz önünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar.

5 Akış Şeması Sorunun çözümü için oluşturulmuş algoritmanın görsel olarak şekillerle ifade edilmesine akış şeması (flow chart) denilmektedir. Akış şemalarında algoritmanın adımları simgeler şeklinde kutular içine yazılmaktadır ve adımlar arasındaki ilişkiler ve akış yönü oklar ile gösterilmektedir.

6 Akış Şemasının Avantajları 1)Birbiri ile ilgili adımlar arasındaki mantıksal ilişkiyi gösterirler. 2)İzlenmesi ve anlaşılması kolaydır. 3)Şartlara bağlı olarak ortaya çıkan olayların takip edilmesi mümkündür. 4)Belli bir standarda göre hazırlandıklarından herkesçe anlaşılabilir ve birden fazla kişi aynı şema üzerinde çalışabilir.

7 Akış Şeması Hazırlama Kuralları 1)Başlangıç ve bitiş uçları tanımlanmalıdır. 2)Standart semboller kullanılmalıdır. 3)Birbirini kesen akış hatları kullanılmamalıdır. 4)Basit kararlar alınmalıdır. 5)Şema belli bir yönde hazırlanmalıdır.

8 Akış Şeması Elemanları Akış şemasının başlangıcını yada bitişini belirtir. Veri girişi yapılacağını belirtir. Ekranda görüntüleme yapılacağını belirtir.

9 Akış Şeması Elemanları Yazıcıya çıktı olacağını belirtir. Hesaplama ya da değerlerin değişkenlere aktarımını gösterir. Aritmetik ve mantıksal ifadeler için karar verme ya da karşılaştırma durumunu gösterir.

10 Akış Şeması Elemanları Akış Yönü Yapılacak işler birden fazla sayıda yinelenecek ise yani iş akışında döngü var ise bu sembol kullanılır. İki nokta arası ilişkiyi gösterir. Döngü sonunu göstermek için ya da akış şemasının başka bir yere bağlantısını göstermek amacıyla kullanılır. Fonksiyon çağırılacağını belirtir. İş akışının yönünü belirtir.

11 Akış Şemaları Akış şemaları içerik ve biçimlerine göre genel olarak üç grupta sınıflandırılabilirler. 1.Doğrusal akış şemaları 2.Mantıksal akış şemaları 3.Döngü içeren akış şemaları

12 Doğrusal akış şemaları İş akışları, giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup kapsamına girer. Yapısında karar alma ya da döngü ifadeleri içermeyen akış şemalarıdır.

13 Örnek-1 (Ekrana Merhaba Dünya Yazdırma) AlgoritmasıAkış Şeması (doğrusal) Adım 1: Başla Adım 2: Ekrana ‘Merhaba Dünya’ yazdır. Adım 3: Dur Başla Merhaba Dünya Dur (Son- Bitir) C Kodu #include void main() { printf("Hello World"); }

14 Örnek-2 (İki Sayıyı Toplama ve Görüntüleme) AlgoritmasıAkış Şeması (doğrusal) Başla C Dur Adım 1: Başla Adım 2: Birinci sayıyı gir Adım 3: İkinci sayıyı gir Adım 4: İki sayıyı topla Adım 5: Toplam sonucunu ekranda görüntüle Adım 6: Dur Adım 1: Başla Adım 2: A’yı gir Adım 3: B’yi gir Adım 4: C=A+B Adım 5: C’yi ekranda görüntüle Adım 6: Dur Değişkenler: A: Birinci sayı B: İkinci sayı C:Toplam sonucu A B C=A+B

15 Mantıksal akış şemaları Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. Hesap düzenleri genellikle basittir. Verilen koşulun doğru yada yanlış olmasına göre iş akışı yönlendirilir. Koşul Evet (Doğru) Hayır (Yanlış)

16 Örnek-3 (Klavyeden Girilen 2 sayıdan birincisi büyük ise çarpma, aksi durumda toplama yapan algoritma ve akış şeması) AlgoritmasıAkış şeması Adım 1: Başla Adım 2: X’i gir Adım 3: Y’yi gir Adım 4: X>Y ise S=X*Y hesapla adım 6’ya git Adım 5: X<=Y ise S=X+Y hesapla Adım 6: S’i görüntüle Adım 7: Dur Değişkenler: X: Birinci sayı Y: İkinci sayı S:Toplam sonucu Başla S Dur X Y S=X+Y X>Y Hayır Evet S=X*Y

17 Döngüsel Akış Şemaları Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. İş akışları genel olarak giriş ya da başlangıç değeri verme, hesaplama, kontrol biçiminde olmaktadır.

18 Örnek-4 (Klavyeden 5 kişinin doğum yılını girip 2013 yılındaki yaşını hesaplayan algoritma ve akış şeması) Algoritması Adım 1: Başla Adım 2: i=1; Adım 3: dy’yi gir Adım 4: yas=2013-dy Adım 5: yas’ı ekrana yazdır Adım 6: i<5 ise i’yi 1 arttır, adım 3’e git Adım 7: Dur Değişkenler: dy : kişinin doğum yılı yas: kisinin yaşı i : sayaç (5 kişi olup olmadığını kontrol eder)

19 Örnek 4 (Devam) Akış şeması I (Döngü ifadesi içermeyen) Akış şeması II (Döngü şekli içeren) i<5 Hayır Evet Başla yas Dur dy yas=2013-dy i=1 i=i+1 Başla yas Dur dy i,1,5,1 yas=2013-dy i i, 1, 5, 1 Döngü Değişkeni Başlangıç değeri Bitiş değeri Artım değeri

20 Örnek 5 (1’den 10’a kadar sayıları ekranda görüntüleyen akış şeması) Kontrol İfadesiyleDöngü İfadesiyle i<10 Hayır Evet Başla i Dur i=1 i=i+1 Başla i Dur i,1,10,1 i

21 Örnek 6 (Girilen 5 sayının karelerini görüntüleyen akış şeması) Kontrol İfadesiyleDöngü İfadesiyle i<5 Hayır Evet Başla kare Dur sayı kare=sayı*sayı i=1 i=i+1 Başla kare Dur sayı i,1,5,1 kare=sayı*sayı i

22 Örnek 7 (Girilen 15 sayıdan pozitif olanların adedini bulup görüntüleyen akış şeması) Kontrol İfadesiyleDöngü İfadesiyle i<15 Evet Başla adet Dur sayı adet=adet+1 i=1, adet = 0 i=i+1 Başla sayı i,1,15,1 i sayı>=0 Hayır Evet adet=adet+1 sayı>=0 Hayır Evet adetDur adet = 0

23 Örnek 8 (50 öğrencinin notlarının ortalamasını bulan akış şeması) Kontrol İfadesiyleDöngü İfadesiyle i<50 Evet Başla ortalama Dur not i=1, toplam=0 i=i+1 Başla not i,1,50,1 i toplam=toplam+not ortalama=toplam/50 toplam=toplam+not ortalama Dur ortalama=toplam/50 Hayır toplam = 0

24 Örnek 9 (Girilen sayının faktöriyelini hesaplayan akış şeması) Kontrol İfadesiyleDöngü İfadesiyle i

25 Örnek 10 (y=x 2 +5x-7 denkleminin x=[-4,4] aralığındaki çözümlerini bulan ve görüntüleyen akış şeması, (x’in artım değeri 0,5’tir.)) Kontrol İfadesiyleDöngü İfadesiyle Başla x,-4,4,0.5 i Dur x<4 Hayır Evet Başla y Dur y=x*x+5*x-7 x=-4 x=x+0,5 y=x*x+5*x-7 y

26 Örnek 11 (girilen sayının tek yada çift olduğunu bulup uygun mesajı görüntüleyen akış şeması) Başla Sayı çifttir Dur sayı sayi%2=0 Hayır Evet kalan=sayi%2 Sayı tektir % simgesi mod alma işlemidir. sayi mod 2 = 0 ise çift sayı olduğunu değilse tek sayı olduğunu ekrana gösteriyoruz. kalan adında bir değişken kullanmadan, kontrol ifadesi içinde sayi % 2 = 0 yazmamız da mümkün olabilirdi. kalan=0

27 Örnek 12 (girilen sayının asal olup olmadığını bulan akış şeması) i

28 i,2,sayı-1,1 i Başla sayı sayi%i=0 Evet Hayır Dur sayi=i Evet Sayı asal Sayı asal değil Hayır Örnek 12 (girilen sayının asal olup olmadığını bulan akış şeması) Döngü içinde verdiğimiz sayi%i=0 koşulu sağlandı ise asal olmadığı kesinleştiğinden, diğer sayılar için döngüyü devam ettirmek gereksizdir. Yandaki akış şemasında verilen çözüm, önceki slaytta verilene göre daha hızlı çalışır (özellikle büyük bir sayı girildiğinde). Bu çözümde k değişkenini kullanmadık. Eğer i döngü değişkeni sayı değerine ulaştıysa hiç tam bölen bulunamadı demektir. Eğer bir bölen bulunursa döngünün içinden çıkılcağı için i değeri sayi değerinden küçük olur. Daha hızlı çalışması sağlanabilir mi?

29 Örnek 13 (girilen 3 sayıdan hangisinin en büyük olduğunu bulan akış şeması) Başla a,b,c Dur En buyuk sayı a’dır a>b Evet Hayır a>c Evet Hayır b>c Evet Hayır En buyuk sayı b’dir En buyuk sayı c’dir

30 Örnek 14 (girilen 10 sayıdan en büyüğünü bulan ve görüntüleyen akış şeması) Kontrol İfadesiyleDöngü İfadesiyle i<10 Evet Başla eb Dur sayı eb=sayı i=1, eb=0 i=i+1 Başla sayı i,1,10,1 i sayı>eb Hayır Evet eb=sayı sayı>eb Hayır Evet eb Dur eb=0

31 Dizi Kavramı Diziler aynı tipteki elemanların yan yana sıralanmasıyla elde edilen bir bilgi kümesidir. İki boyutlu (örn: matris) yada daha çok boyutlu diziler de olabilir. Diziler akış şemalarında indisli gösterilirler: –dizi(0), dizi(1), dizi(2), ……….., dizi(i) –ilk elemanın indisi akış şemalarında 1 olarak gösterilse de, C programlama dilinde 0’dır.

32 Örnek 15 (10 elemanlı bir diziye bilgi girişi yapan ve diziyi görüntüleyen akış şeması) Kontrol İfadesiyleDöngü İfadesiyle i<10 Hayır Evet Başla dizi(i) Dur dizi(i) i=1 i=i+1 Başla dizi(i) Dur dizi(i) i,1,10,1 i i<10 Hayır Evet i=1 i=i+1 i,1,10,1 i

33 Örnek 16 (15 elemanlı bir sayı dizisine bilgi girişi yapılarak elemanların toplamını bulan akış şeması) Başla toplam Dur dizi(i) i,1,15,1 i toplam=toplam+dizi(i)

34 Örnek 17 (15 elemanlı bir sayı dizisine bilgi girişi yapılarak pozitiflerin ortalamasını, negatiflerin adedini bulan ve görüntüleyen akış şeması) Başla poz_ort,neg_adetDur sayı(i) i,1,15,1 i toplam=toplam+sayi(i)poz_adet=poz_adet+1 sayı(i)>=0 Hayır Evet neg_adet=neg_adet+1 poz_ort=toplam/poz_adet

35 Örnek 18 (20 elemanlı bir sayı dizisine bilgi girişi yapılarak 4 ile 25 arasında olanların adedini bulan ve görüntüleyen akış şeması) Başla adet Dur b(i) i,1,20,1 i adet=adet+1 b(i)>=4 ve b(i)<=25 Hayır Evet

36 Örnek 19 Başla sayı(i) Dur sayı(i) i,1,5,1 i g=sayı(i) sayı(i)

37 Algoritma ve Akış Şeması Alıştırma Soruları 1.1 ile 10 arasındaki sayıların karelerinin toplamını ekranda gösterin 2.Girilen pozitif tamsayının kaç basamaklı olduğunu bulup ekranda gösterin 3.Girilen 20 tamsayıdan çift sayıların toplamının tek sayıların toplamına oranını ekranda gösterin 4.Girilen sayının 5’in kuvveti olup olmadığını ekranda gösterin 5.Girilen 50 vize notunu vize dizisine, aynı öğrenci sıralaması ile girilen 50 final notunu da final dizisine yazıp, vizenin %30’u ve finalin %70’i hesabı ile 50 öğrencinin başarı notlarını sırası ile ekranda gösterin


"BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları Yrd. Doç. Dr. Andaç MESUT Trakya Üniversitesi Bilgisayar Mühendisliği." indir ppt

Benzer bir sunumlar


Google Reklamları