slide1
Download
Skip this Video
Download Presentation
KAYNAKLAR :

Loading in 2 Seconds...

play fullscreen
1 / 40

KAYNAKLAR : - PowerPoint PPT Presentation


  • 246 Views
  • Uploaded on

Algoritma Hazırlama ve Akış Diyagramları. KAYNAKLAR : 1- Algoritma Geliştirme ve Programlamaya Giriş , Fahri Vatansever , Seçkin Yayınları , 4. baskı, 200 5 . 2- Algoritmayı anlamak , Mustafa Eker , Nirvana yayınları , 2004. Bilgisayarda Problem Tanımı ve Çözümü.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' KAYNAKLAR :' - aquene


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Algoritma Hazırlama

ve

Akış Diyagramları

KAYNAKLAR:

1- Algoritma Geliştirme ve Programlamaya Giriş, Fahri Vatansever,Seçkin Yayınları,4. baskı, 2005.

2- Algoritmayı anlamak, Mustafa Eker, Nirvana yayınları, 2004.

slide2

BilgisayardaProblem Tanımı ve Çözümü

Bir işlemin, otomasyonun ya da bilimsel hesaplamanın çözülmesi fikrinin ortaya çıkmasına problemdenir.

Bu tip fikirlerde insanların bu sorunları beyinle çözmeleri ya imkansızdır, ya da çok zor ve zaman alıcıdır. Bu tip bir sorunu bilgisayarla çözebilme fikrinin ortaya çıkması bir bilgisayar problemininortaya çıkmasına neden olmuştur.

slide3

PROBLEM ÇÖZÜM AŞAMALARI

Analiz : Sorunun çözülebilmesi için problemin tamamen anlaşılmasını sağlayan çalışmalardır.

Algoritma : Çözümün adımlarla ifade edilmesidir.

Akış Çizgesi : Algoritmanın şekillerle ifade edilmesidir.

Programlama Dili Seçimi : Çözümün netleşmesinden sonra yapılacak işlemleri kolay bir şekilde bilgisayar ortamına aktaracak dilin seçilmesidir.

Programın Yazılması : Seçilen Programlama dilinin kuralları kullanılarak program yazılmaya başlanır.

Derleme : Programlama Dili ile yazılmış programın yazım hatalarının olup olmadığının kontrol edilmesidir.

Çalıştırma : Programın çalıştırılması adımıdır.

Test : Programın Mantıksal olarak test edilmesini sağlar ve içerik olarak her ihtimal için doğru sonuçlar üretip üretmediğini kontrol etmenizi sağlar.

slide4

Program-Programlama

Program Nedir?

Problem çözümü kısmında anlatılan adımlar uygulandıktan sonra ortaya çıkan ve sorunumuzu bilgisayar ortamında çözen ürüne program denir. Bazı durumlarda bu ürüne yazılım denebilir.

Programlama Nedir?

Problem çözümünde anlatılan adımların tümüne birden programlama denilebilir. Çoğunlukla çok iyi tanımlanmış bir sorunun çözümüne dair adımlar ile çözümün oluşturulup bunun bir programlama dili ile bilgisayar ortamına aktarılması Programlama diye adlandırılabilir.

slide5

Programlama Dili (ProgramingLanguage) Nedir?

  • Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kurallar dizisidir.
  • Bazı programlama dilleri:
  • MATLAB, C, C++, Delphi, Pascal, VisualBasic, FoxPro, Java, Lisp, C#
  • Bu dillerden en yaygın kullanılanları MATLAB, Delphi, C++ ve VisualBasicdilleridir.
  • Bir dilin üstünlüğününparametreleri:
  • Kullanılabilirliği,
  • Gelişim hızı,
  • İhtiyaca kolay cevap vermesi,
  • İşletim sistemi ile uyum seviyesi,
  • Derleme işleminin hızlı olması,
  • Az yer kaplaması,
  • Sistemi optimum kullanması…
slide6

PROGRAMLAMA DİLLERİ

Düşük Seviyeli Diller Yüksek Seviyeli Diller

Makine Dili

AssemblyGörsel DillerGörsel Olmayan Diller

Visualbasic

C

DelphiFortran

Html Cobol

Java C++

Visual C Qbasic

MATLAB

Turbo pascal

slide7

DÜŞÜK SEVİYELİ PROGRAMLAMA DİLLERİ

  • Makine Dili
  • Makine dili 0 ve 1 den oluşan bir dildir ve bilgisayarın anladığı yegane dildir. Bu dili direkt kullanmak için hem komutların sayısal karşılıkları ve hem de bilgisayarın bellek adreslemesini de bilmek gerekmektedir. Bu tip dillere düşük seviyeli dil (LowLevelLanguage) adı verilir.
  • Assembly (simgesel) dili:
  • İkili sayı sisteminde yazılmış olan komutları harfli sembollerle ifade ederek üretilenbir dildir. ADD, LDA ve STA gibi…
  • Assembler:
  • Assembly dilini makine diline çevirir.
  • Her programlama dilinin, yazılan programı makine diline çeviren bir derleyicisi ya da yorumlayıcısı vardır.
slide8

AMAÇ PROGRAM

ÇIKTI

PROGRAM

DERLEYİCİ

PROGRAM YERİ

YORUMLAYICI

ÇIKTI

DERLEYİCİ veYORUMLAYICILAR

Derleyici (Compiler) Nedir?

Bir programlama dili ile bilgisayara aktarılan programın bilgisayarın anlayabileceği Makine Diline çevirmeyi sağlayan ve yazılan programda söz dizim hatalarının olup olmadığını bulan yazılımlardır. Her Programlama dili için bir derleyici olması gerekmektedir.C, PASCAL, COBOL, DELPHI derleyicisi olan yüksek seviyeli dillerdir.

Yorumlayıcı (Interpreter) Nedir?

Yorumlayıcılar (Interpreter), yazılan programları makine diline dönüştüren yazılımlardır. Ancak bu dönüşüm, derleyiciden farklı olarak gerçekleştirilmektedir. Yorumlayıcılar her satırı anında makine diline çevirerek çalışır ve dolayısıyla program her çalıştırıldığında her satır yeniden makine koduna dönüştürülür. Bu yüzden yorumlayıcılar yavaş çalışmaktadır. VISUAL BASIC ve MATLAB yorumlayıcısı olan yüksek seviyeli dillerdir.

slide9

Programlama dillerinde işlemler

Bilgisayar programları ile gerçekleştirilen işlemler genel

olarak üç gruba ayrılır:

a. Matematiksel (aritmetik) işlemler

b. Karşılaştırma işlemleri

c. Mantıksal (lojik) işlemler

slide10

Programlama dillerinde işlemler

  • Matematiksel (aritmetik) işlemler: Bilgisayarda en sık kullanılan işlemler matematiksel işlemlerdir. Temel aritmetik işlemler (toplama, çıkarma, çarpma, bölme), matematiksel fonksiyonlar (üstel, logaritmik, trigonometrik, hiperbolik vs.) bu gruba dahildir.
  • Aşağıdaki tabloda matematiksel işlemlerin bilgisayar dilindeki karşılıkları verilmektedir.
slide12

Matematiksel işlemlerde öncelik hakkı:

Tek bir matematiksel deyim içinde birden fazla işlem bir arada bulunabildiğine göre hangi işlemin öncelik hakkına sahip olduğunun bilinmesi yerinde olacaktır.

Aşağıda işlemlerin öncelik listesi verilmiştir.

Öncelikİşlem

1. Parantez

2. Üs alma, soldan sağa doğru

3. Çarpma ve bölme, soldan sağa doğru

4. Toplama ve çıkarma, soldan sağa doğru

Örnek: a=4, b=6, c=8 ve d=10 değerleri için;

İfade Sonuç

c*d/(a*d)+b+c*d/a 28

c*d/a*d+b+c*d/a 226

c*d/a*d+(b+c)*d/a 235

slide13

b. Karşılaştırma İşlemleri:Bilgisayar temel matematiksel işlemlerin yanında karar modelleri de üretebilir. Yani iki büyüklükten hangisinin büyük ya da küçük olduğu ya da birbirine eşit olup olmadığı gibi konularda karar verebilir. Bu karşılaştırma işlemleri nümerik ya da alfanümerik olabilir.

Aşağıdaki tabloda karşılaştırma işlemselleri gösterilmiştir:

slide14

c. Mantıksal (lojik) İşlemler:Bilgisayar temel mantık (VE, VEYA, DEĞİL) işlemlerini de yapabilmektedir. Mantıksal işlem operatörleri hem karar ifadelerinde hem de matematiksel işlemlerde kullanılabilirler.

Aşağıdaki tabloda mantıksal semboller gösterilmiştir:

Aşağıdaki tabloda ise mantıksal işlem sonuçları gösterilmiştir:

slide15

Örnek:Bir işyerinde çalışan işçiler arasından yalnızca yaşı 30’un üzerinde ve asgari ücret alanların isimlerinin ekrana yazılması istenmiş olsun.

Burada iki şart vardır ve bu iki şartın da doğru olması gerekir. Yani;

Eğer yaş>30 VE maaş=asgari ücret ise ekrana “kişinin ismini” yaz.

Yukarıdaki işlem sonucunda bilgisayar, her iki şartı da sağlayan

kişinin adını ekrana yazar.

Soru:

Bir sınıfta “matematik” dersinden 50’nin üzerinde alıp, “bilgisayar” veya “fizik” derslerinin herhangi birinden 60’ın üzerinde not alanların isimlerinin bulunması isteniyor. Buna göre uygun olan ifadeyi yazınız.

slide16

Algoritma Hazırlama

Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Yani algoritma, işlemleri yaptırabilmek (problemleri çözdürebilmek, kontrolleri gerçekleştirebilmek vb.) için bilgisayara öğretilen işlem basamaklarıdır. Doğal dille yazılabileceği için fazlaca formal değildir.

Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir.

  • Bir algoritma için aşağıdaki ifadelerin mutlaka doğrulanması gereklidir.
  • Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı değildir.
  • Belirli bir sayıda adım sonunda algoritma sonlanmalıdır.
  • Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır.
slide17

Algoritma ve programlamada kullanılan

Temel Kavramlar

Algoritma ve programlama dillerinde standart hale gelen terimler şunlardır:

1- Değişken :Belirsiz bir değeri ifade eden değerlere değişken adı verilir. Bir program içerisinde bilgileri tutmak, bu bilgiler üzerinde işlem yapmak için değişkenlerden yararlanılır.

Matematiksel olarak ifade etmeye çalışırsak;Denklemlerde karşımıza çıkan a+b=c ifadesi bizim denklemimiz ve buradaki "a","b" ve "c" ise bizim değişkenlerimizdir. a, b ve c’ye girdiğimiz değerlere göre işlem sonuçlanacaktır.

slide18

Algoritma ve programlamada kullanılan

Temel Kavramlar

2- Fonksiyon :Giriş parametrelerini belli bir işlemden geçirdikten sonra, geriye çıkış parametrelerini döndüren işlevlere fonksiyon denir. Değişkenler, fonksiyonların vazgeçilmez elemanlarıdır.

Örnek: 

Değişkenlerimiz olan a ve b şu değerleri alsın:

a=1 ve b=2 ; fonksiyonumuz ise a+b=c olsun. Fonksiyonumuzun sonucu:  c=1+2=3

Burada "a","b" değişkenini girerek ve "a+b=c" fonksiyonunu

kullanarak "c" değişkeninin değerini buluyoruz.

slide19

Örnek: Verilen iki sayının toplamını bulan programın algoritması aşağıdaki gibi yazılır:

Algoritma:

A1 : Başla

A2 : X degerini gir

A3 : Y degerini gir

A4 : Z= X+Y

A5 : Z\' yi yaz

A6 : Bitir

Algoritmaya dikkat edilirse işlemlerin sıralanmasında,işlem önceliklerinin göz önünde bulundurulduğu görülür.

slide20

Algoritma ve programlamada kullanılan

Temel Kavramlar

3- Aktarma:Herhangi bir değişkenin içine bir değeri veya ifadenin/işlemin sonucunu gönderme işlemidir.

değişken=ifade

Satırında ‘değişken’ yazan kısım, herhangi bir değişkenin adıdır. ‘ifade’ yazan kısımda ise matematiksel, mantıksal veya alfanümerik ifade olabilir. Aradaki ‘=‘ sembolü, ‘aktarma operatörü’ olarak adlandırılır ve sağdaki ifadenin/işlemin sonucunu soldaki değişkene aktarır. Bu durumda değişkenin -eğer varsa- bir önceki değeri (eski değeri) silinir.

X=3

X=5+4

işleminin sonucunda X’in 3 olan önceki değeri silinerek yerine 9 değeri yazılır.

slide21

Şartlı (Eğer) Yapılar

Bir mantıksal ifadeyi kontrol ederek bunun sonucuna göre mümkün seçeneklerden birini icra edebilen bir komuttur.

Eğeryapısının Üç şekli vardır:

Eğer Şart

Değilse eğer …

Değilse

Eğer Sonu

EğerŞart

1. işlem

2. işlem

3. işlem

:

Eğer Sonu

Eğer Şart

1.işlem;

Değilse

2. işlem

Eğer Sonu

slide22

Örnek:Girilen (okutulan) x ve y değerlerinegöreaşağıdakisonucdeğerinibulanprogramıyazınız

x>y isesonuc= (x-y)

x=y isesonuc=(x+y)7

Değilsesonuc=x+y

A1: Başla

A2: Oku x

A3:Oku y

A4: Eğer x>y sonuc=(x-y)^(1/2)

A5: Değilse, eğer x=y sonuc=(x+y)^7

A6: Değilsesonuc=x+y

A7: Eğer Sonu

A8: Bitir

ÇÖZÜM:

slide23

İç İçe Eğer yapıları:

Örnek:Dışardan uzunlukları girilen üç doğrunun bir üçgen oluşturup oluşturmadığını, bir üçgen oluşturuyorsa üçgenin türünü (eşkenar, ikizkenar, çeşitkenar) belirleyen algoritmayı hazırlayınız.

ÇÖZÜM:

A1: Başla

A2: Oku A, Oku B, Oku C

A3: Eğer (A+B)>C ve (B+C)>A ve (A-B)<C ise

A4: Eğer A=B ve B=C ise

A5: Yaz ‘Eşkenar Üçgen’

A6: Değilse eğer A=B veya B=C veya A=C ise

A7: Yaz ‘İkizkenar Üçgen’

A8: Değilse Yaz ‘Çeşitkenar Üçgen’

A9: Eğer Sonu

A10:Değilse Yaz ‘Üçgen Oluşmaz’

A11: Eğer Sonu

A12: Bitir

slide24

Algoritma ve programlamada kullanılan

Temel Kavramlar

4- Sayaç :Programlarda; bazı işlemlerin belirli sayılarda yaptırılması veya işlenen/üretilen değerlerin sayılması gerekebilir.Örneğin klavyeden girilen bir cümlede kaç sesli harf olduğunu bulan programda, cümlenin her harfi sırayla çağırılır ve sesli harfler kümesine ait olup olmadığı araştırılır. Eğer sıradaki çağırılan harf bu kümeye ait ise bunları sayacak olan değişkenin değeri bir arttırılır.

Say = Say + 1

şeklindeki işlemde sağdaki ifadede değişkenin eski(önceki) değerine ‘1’ eklenmekte; bulunan sonuç yine kendisine, yeni değer olarak aktarılmaktadır. Bu tür sayma işlemlerine, algoritmada “sayaç”

veya “sayıcı” adı verilir. Yani “sayaç”; işlem akışı kendisine her geldiğinde, belirtilen adım değeri kadar artan/azalan değişkendir.

slide25

‘Sayaç’ olayına örnek:

X=X+3 Üçer üçer artan bir sayıcıdır

S=S-5 Beşer beşer azalan bir sayıcıdır

Örnek: Aşağıdaki algoritmada 1-5 arası sayılar, sayaç kullanılarak ekrana yazdırılmaktadır. Burada, S : sayaç değişkeni

A1: Başla

A2: S=0

A3: S < 5 ise

A4: S=S+1

A5: Yaz S

A6: Git adım 3

A7: Bitir

slide26

Algoritma ve programlamada kullanılan

Temel Kavramlar

5- Döngü :Birçok programda,bazı işlemler belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yapılmaktadır. Programlardaki belirli işlem bloklarını, verilen sayıda gerçekleştiren işlem akış çevrimlerine döngü denir.

Örneğin 1 ile 100 arasındaki tek sayıların toplamını hesaplayan programda Toplam=1+3+5+…+99 gibi uzun uzadıya yazmak yerine 1 ile 100 arasında ikişer ikişer artan bir döngü açılır ve döngü değişkeni ardışıl toplanır.

slide27

Döngü oluşturma kuralları:

1- Döngü değişkenine başlangıç değeri verilir

2- Döngünün artma veya azalma miktarı belirlenir

3- Döngünün bitiş değeri belirlenir

4- Döngü değişkeni, döngü içinde adım miktarı kadar artırılmalı yada azaltılmalıdır

slide28

‘Döngü’ olayına örnek:

Örnek: Aşağıdaki algoritmada 1-10 arası tek sayıların toplamı hesaplanmaktadır

A1: Başla

A2: Toplam=0

A3: K=1

A4: K<=10 ise

A5: Toplam=Toplam+K

A6: K=K+2

A7: Git adım 4

A8: Yaz Toplam

A9: Bitir

Döngü

slide29

Örnek:Verilen bir sayının faktöryelinihesaplayan programın algoritmasını yazınız (faktöryelihesaplanacak sayı negatif girilmişse yeniden giriş istenecek)

Değişkenler:

Sayının faktöryeli: Faktor , Faktöryeldeğişkeni :X

Faktöryelihesaplanacak sayı :Y

Algoritma:

A1: Başla

A2 : Faktor =1, X=0

A3 : Y\'i gir

A4 : Y<0 ise 3. adimi tekrarla

A5 : X<Y ise

A6: Faktor=Faktor*X

A7: X =X+1

A8: Adım 4’e dön

A9 : Faktordegerini yaz

A10 : Bitir

slide30

Akış Diyagramları (FlowCharts):

Herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir. Akış diyagramları, algoritmaların sembolik olarak gösterimidir. Bilgisayarda gerçekleştirilecek her tür aksiyon ayrı bir sembolle gösterilir.

Başla/Dur

Bilgi girişi

İşlem

Döngü

Karar/Karşılaştırma

Bilgi çıkışı/Belge

Bağlantı

İşlem akış yönü

slide31

Başla

X=?

Y=?

Ort=(X+Y)/2

Ort

yaz

Bitir

Örnek: Verilen iki sayının ortalamasını hesaplayan programın

algoritmasını yazınız ve akış diyagramını çiziniz.

Algoritma:

A1 : Başla

A2 : X değerini gir

A3 : Y değerini gir

A4 : Ort = (X+Y)/2

A6 : Ortdeğerini yaz

A7 : Bitir

Akış diyagramı:

slide33

Örnek: Girilen bir sayının Negatif, Pozitif veya Sıfır olduğunu bulan algoritmayı yazınız ve akış diyagramını çiziniz.

Bir sayının pozitif, negatif veya sıfır olduğunu bulmak için sıfır(0) ile test edilmesi gerekir.Algoritma: Akış Diyagramı:

A1: Başla

A2: Sayıyı (X) giriniz

 A3: Eğer X > 0 ise \'POZITIF\' yaz A4: Eğer X < 0 ise \'NEGATİF\' yaz A5: Eğer X = 0 ise \'SIFIR\' yaz. A6: Bitir

Başla

X=?

doğru

X>0

‘POZITIF’

yaz

yanlış

doğru

X<0

‘NEGATİF’

yaz

yanlış

‘SIFIR’

yaz

Bitir

slide35

Örnek: 1\'den 100\'e kadar olan sayıların toplamlarını ve ortalamasını veren programın algoritmasını yazınız ve akış diyagramını çiziniz.

A1: Başla

A2: Say=0

A3: Toplam=0

A4: Say=Say+1

A5: Toplam=Toplam+Say

A6: Say=100 değilse Adım 4’e git

A7: Ortalama=Toplam/Say

A8: Yaz Toplam, Ortalama

A9: Bitir

slide36

Örnek:Ax+b=0 seklinde verilen 1.derece denklemin çözümünü veren programın

algoritmasını yazınız ve akış diyagramını çiziniz (A=0 girilmiş ise veri girişi yinelenecektir).

A1: Başla

A2: A değerini giriniz

A3: A=0 ise Adım 2’ye git

A4: B değerini giriniz

A5: X=-B/A

A7: Yaz X

A9: Bitir

Evet

A=0

Hayır

slide37

Örnek: 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:

Dikdörtgenin kısa kenarı : a, Dikdörtgenin uzun kenarı : b,

Dikdörtgenin alanı : Alan

Algoritma: Akış Diyagramı:

A1 : Başla

A2 : a değerini gir

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

A8 : Bitir

slide38

Örnek: 1\' den 100\'e kadar sayıların karelerini, kareköklerini, küplerini, küpköklerini sırasıyla bulup ekrana yazdıran ve ayrıca 1’den 100’e kadar olan sayıların ortalamasını da hesaplayan programın algoritmasını ve akış diyagramını hazırlayınız.

Algoritma:

slide39

Örnek:

F(x) fonksiyonunun değeri X\'in aldığı değerlere göre aşağıda verilmiştir. X\'in değeri 0-10 arasın da 0.5 aralıklarla arttığına göre her bir X değeri için F(x) fonksiyonunu hesaplayan programın akış diyagramını çiziniz.

0< X < 2 f(x)= X

2< X < 3 f(x)=X -X3 -22

3< X <4 f(x)=X2 -2X+13

4< X f(x)=X4 -3X2 -43

Algoritma:

slide40

OTOMATİK DÖNGÜ YAPISI:

Döngü yapısında EĞER....GİT... yerine

DÖNGÜ....DÖNGÜ SONU yapısını da kullanabiliriz.

K=1

Eğer K<=10 ise

Toplam=Toplam+K

K=K+2

Git adım 4

DÖNGÜ K=1:2:10

Toplam=Toplam+K

DÖNGÜ SONU

Sağdaki DÖNGÜ yapısında K döngü değişkeninden sonraki rakam başlangıç değerini, ortadaki rakam artış miktarını ve son rakam da bitiş değerini gösteriyor. DÖNGÜ SONU’na gelindiği zaman otomatik olarak DÖNGÜ’ye dönülüyor ve artış otomatik olarak yapılıyor. Şart doğru olduğu sürece de aradaki işlemler yapılıyor.