algoritmalar (algoritms)

51
Algoritmalar (Algoritms)

Upload: rafi

Post on 16-Jan-2016

62 views

Category:

Documents


0 download

DESCRIPTION

Algoritmalar (Algoritms). Problem. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algoritmalar (Algoritms)

Algoritmalar(Algoritms)

Page 2: Algoritmalar (Algoritms)

Problem

Bir işlemin, otomasyonun yada bilimsel hesaplamanın bilgisayarla çözülmesi fikrinin ortaya çıkmasına problem denir. 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 probleminin ortaya çıkmasına neden olmuştur.

Page 3: Algoritmalar (Algoritms)

Problem Çözümü1. Problemi çözebilmek için öncelikle sorunun çok net

olarak programcı tarafından anlaşılmış olması gerekir. Tüm ihtiyaçlar ve istekler belirlenmelidir. Gerekiyorsa bu işlem için birebir görüşmeler planlanmalı ve bu görüşmeler gerçekleştirilmelidir.

2. Problemin çözümüne ilişkin zihinsel alıştırmalar yapılır. Bu alıştırmaların bilgisayar çözümüne yakın olması hedeflenmelidir. Bir sorunun tabii ki birden fazla çözümü olabilir. Bu durumda bilgisayar ile en uygun çözüm seçilmelidir. Çünkü bazen pratik çözümler bilgisayarlar için uygun olmayabilir.

3. Oluşturulan çözüm Algoritma dediğimiz adımlarla ifade edilmelidir.

4. Bu algoritmanın daha anlaşılabilir olması için Akış Çizelgesi oluşturulmalıdır.

5. Uygun bir programlama dili seçilmeli ve oluşturulan algoritma ve akış çizgesi bu programlama dili aracılığı ile bilgisayar ortamına aktarılmalıdır.

Page 4: Algoritmalar (Algoritms)

Program

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.

Page 5: Algoritmalar (Algoritms)

Programlama

Ç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 olarak adlandırılır.

Page 6: Algoritmalar (Algoritms)

Programlama Dili

Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kurallar dizisidir.

Bazı programlama dilleri

•MATLAB, Delphi, Pascal, Fortran

•C, C++, C#, Visual Basic, Java

Page 7: Algoritmalar (Algoritms)

Algoritma

Bir sorunu (problemi) çözebilmek için gerekli olan sıralı mantıksal adımların tümüne Algoritma denir.

Algoritma doğal dille yazıldığı için formal değildir.

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ı olmamalıdır.

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.

Page 8: Algoritmalar (Algoritms)

Algoritma(devamı) “İşine gitmek üzere uyanan

birinin yapması gereken işler” algoritması:

1.Yataktan kalk2.Pijamalarını çıkar3.Duş al4.Elbiselerini giy5.Kahvaltını yap6.Arabana bin ve işe git

Sıra önemli. 3 ve 4 nolu adımlar yer değiştirirse mesela? (Kim ıslanmak ister? )

Page 9: Algoritmalar (Algoritms)

Sözde Kod (Pseudo Code) Pseudo Code (Sözde Kod), bir

algoritmanın yarı programlama dili kuralı, yarı konuşma diline dönük olarak ortaya koyulması/ tanımlanmasıdır. Bu şekilde gösterim algoritmayı genel hatlarıyla yansıtır.

Örnek:

–(ilkdeğer) e (100) ata.

–eğer(sayı<x)

ise(ilk satıra git)

değilse (son satıra git)

–dön(döngü<girilen_değer)

Page 10: Algoritmalar (Algoritms)

Gerçek Kod (Real Code)

Real Code (Gerçek Kod), algoritmanın herhangi bir programlama diliyle, belirli bir veri yapısı üzerinde gerçekleştirilmiş halidir.

Page 11: Algoritmalar (Algoritms)

Programlama Dili

Bir Problemin Algoritmik çözümünün Bilgisayara anlatılmasını sağlayan, son derece sıkı-sıkıya kuralları bulunan kurallar dizisidir.

Programlama Dilleri için; Farklı problem alanlarına göre farklı dillerden söz etmek mümkündür. Dilin seçimi bu yüzden önemli olabilir. Probleme uygun dilin seçilmesi programın geliştirilmesinde kolaylık ve hızlı çalışma sağlayabilir.

Page 12: Algoritmalar (Algoritms)

Derleyici

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.

Page 13: Algoritmalar (Algoritms)

Derleyici Programları

Her bir programlama dilinde kod yazmak için geliştirilmiş çok sayıda derleyici programı vardır. Örneğin C programlama dilinde kod yazmak için dev c++, Turbo C, Borland C, Microsoft Visual Studio gibi…

Page 14: Algoritmalar (Algoritms)

Kaynak ve Amaç Program

Programın, bir programlama diline bağlı olarak hazırlanan simgesel kodlardan oluşan kısmına kaynak program (source code) adı verilir.

Bu kaynak programın derlenip bilgisayarda çalışabilecek makine kodlarına çevrilmiş koduna ise amaç program ismi verilir.

Page 15: Algoritmalar (Algoritms)

Algoritma Yazımı Sözde kod yada diğer deyimle algoritma

hazırlanırken bazı kullanımlar vardır. Bunlar şunlardır:

BAŞLA-DUR: Algoritmanın ilk ve son adımıdır.

OKU: Veri girişinin yapılacağını belirler.

EĞER…İSE…DEĞİLSE….: Şart belirtmek için kullanılır.

GİT… : Belirli bir adıma yönlendirmek için kullanılır.

DÖN..DEN:

DÖNGÜ SONU: Döngüleri belirtmek için kullanılır.

YAZ : Ekrana mesaj yazmak için kullanılır.

Yukarıdaki gösterimlerin İngilizce karşılıkları da algoritma hazırlamada kullanılmaktadır.

Page 16: Algoritmalar (Algoritms)

Tanımlayıcı(değişken) Program yazan kişi tarafından düşünülüp oluşturulan ve

programdaki değişkenleri, sabitleri, kayıt alanlarını, alt programları, vs.. adlandırmak için kullanılan kelimelere tanımlayıcı denir.

Bu kelimeler isimlendirilirken kurallara dikkat edilmelidir:

İngiliz alfabesindeki A-Z veya a-z arası 26 harf kullanılabilir.

0-9 rakamları kullanılabilir.

Sembollerden alt çizgi kullanılabilir. ( _ )

Tanımlayıcı ifadeleri harf veya altçizgi ile başlayabilir ama rakamla başlamaz.

İsimler oluşturulurken boşluk kullanılmamalıdır.

maaş katsayısı değil maas_katsayisi

Page 17: Algoritmalar (Algoritms)

Algoritmada Yapılan İşlemler

Aritmetiksel işlemler

toplama, çıkarma, ..

Mantıksal işlemler (LOGİC)

ve, veya , değil

Page 18: Algoritmalar (Algoritms)

Aritmetiksel işlemler

Toplama a+b Çıkarma a-b Çarpma a*b Bölme a/b Üs alma a^b

Page 19: Algoritmalar (Algoritms)

İşlem önceliği

Matematiksel işlemler içeren kümenizin içindeki matematiksel işaretlerin bir işlem önceliği vardır. İşlem Önceliği Sırası 1. Parantezler ( ) 2. Üs alma a^b 3. Çarpma ve bölme a*b veya a/b 4. Toplama ve çıkarma a+b veya a-b Aynı önceliğe sahip işlemler yan yana

bulunuyorsa işlem önceliği genelde soldan sağa doğrudur. X=2*3/6+2

Page 20: Algoritmalar (Algoritms)

Karşılaştırma İşlemleri

Eşittir = Eşit değildir <> Büyüktür > Küçüktür < Büyük eşittir >= Küçük eşittir <=

Page 21: Algoritmalar (Algoritms)

Mantıksal İşlemler Programlarda, birden fazla karşılaştırma

ifadesi bir anda kullanılmak istenebilir. Bu gibi durumlarda mantıksal ifadeler kullanılması zorunludur.

MANTIKSAL KOMUTLAR

İŞLEMLER VE AND VEYA OR DEĞİL NOT

Page 22: Algoritmalar (Algoritms)

Mantıksal İşlem Sonuçları

Sonuç Rakam olarak Bilgisayar DilindeDoğru 1 True (1)

Yanlış 0 False (0)

Page 23: Algoritmalar (Algoritms)

Örnek

Bir işyerinde çalışan işçiler arasından yalnızca yaşı

23’ün üzerinde olup maaş olarak asgari ücret alanların

isimleri istenebilir. Burada iki koşulun da doğru olması

gerekmektedir. (Asgari ücret >=500)

1nci koşul 2nci koşul

Eğer Yaş>23 ve Maaş>=Asgari ücret ise

Yaz İsim

Page 24: Algoritmalar (Algoritms)

Örnek Bir sınıfta Bilgisayar dersinden 65 in

üzerinde not almış olup Seçmeli Yabancı Dil (İngilizce) veya Seçmeli Yabancı Dil (Almanca) derslerinin herhangi birinden 65 in üzerinde not alanların isimleri istenmektedir.

Eğer Bilgisayar notu > 65 VE

(İngilizce > 65 VEYA Almanca > 65) ise

Yaz “Öğrencinin ismini”

Page 25: Algoritmalar (Algoritms)

Örnek Algoritma-Soru

Klavyeden girilen 2 sayıdan büyük olanı yada her ikiside eşit ise " A sayısı, B sayısına eşittir " diye mesaj yazan programı yazınız.

Page 26: Algoritmalar (Algoritms)

Örnek Algoritma

1. Başla

2. A sayısını gir

3. B sayısını gir

4. Eğer A>B ise Yaz A

5. Eğer A<B ise Yaz B

6. Eğer A=B ise Yaz “A sayısı, B sayısına eşittir”

7. Dur

Girilen A sayısı Girilen B sayısı Ekrana yazılan sonuç

3 7 7

Page 27: Algoritmalar (Algoritms)

Aktarma

Herhangi bir ifadenin sonucunu başka bir değişkende göstermedir.

degisken = ifade

ifade kısmında matematiksel, mantıksal veya harfsel (alfasayısal) ifade olabilir.

= sembolü atama operatörüdür. Bu operatör, sağda hesaplanan ifadenin değerini değişken içine (sola) iletir.

Page 28: Algoritmalar (Algoritms)

Örnek 1

Klavyeden girilen üç sayının toplamını bulan algoritma.

Page 29: Algoritmalar (Algoritms)

Örnek 1 - Cevap

1. Başla

2. t=0

3. OKU a

4. t=t+a

5. OKU b

6. t=t+b

7. OKU c

8. t=t+c

9. Yaz t

10.Dur

1. Başla

2. OKU a,b,c

3. Yaz a+b+c

4. Dur

Page 30: Algoritmalar (Algoritms)

Örnek-2

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)

Page 31: Algoritmalar (Algoritms)

Örnek 2 - CevapGirdi: Kısa kenar (a), Uzun Kenar (b)

Çıktı: Alan

1. BAŞLA

2. OKU a

3. a < 0 İSE GİT 2.Adım

4. OKU b

5. b < 0 İSE GİT 4.Adım

6. Alan = a*b

7. YAZ Alan

8. BİTİR

Page 32: Algoritmalar (Algoritms)

Örnek-3

Bir öğrencinin bilgisayar programlama dersinin 2 yazılı sınavından aldığı notları klavyeden okuyan, bu notların ortalamasını bulan, eğer ortalaması 45’e eşit veya 45’den büyükse “geçti”, aksi halde “kaldı” mesajı yazan programın algoritma şu şekildedir.

Page 33: Algoritmalar (Algoritms)

Örnek-3 Cevap

Girdi 1. sınav notu (s1), 2. sınav notu (s2)

Çıktı Sınav ortalaması (so)

1. BAŞLA

2. OKU s1,s2

3. so = (s1 + s2) / 2

4. EĞER so>45 veya so=45 İSE YAZ “Geçti”

5. DEĞİLSE YAZ “Kaldı”

6. BİTİR

Page 34: Algoritmalar (Algoritms)

Örnek 4

Aracın otopark ücretinin hesaplanması. Araçların en fazla 24 saat kaldığını varsayın.

(Ücretlendirme:

0 - 2 saat 5 TL,

2 - 8 saat 7 TL,

8-24 saat 8 TL)

Page 35: Algoritmalar (Algoritms)

Örnek 4 Cevap

1.       BAŞLA2.       OKU saat3.       EĞER saat>0 ve saat <= 2 ise ücret=150 TL.4.       EĞER t<=8 ve t>2 ise ücret = 300 TL5.       DEĞİLSE ücret = 500 TL6.       YAZ ücret7.       BİTİR

Page 36: Algoritmalar (Algoritms)

Döngü

Bazı işlemler belli ardışık değerlerle veya belli sayıda gerçekleştirilmektedir.

Programda belirli komut bütünlerini belirli sayıda yaptırabilmek için döngüler kullanılır.

Algoritma yazarken döngü akış işlemlerinde genellikle sayaç kullanılır.

Döngüsel işlemler akış diyagramı bölümünde daha detaylı anlatılacaktır.

Page 37: Algoritmalar (Algoritms)

Aşağıdaki algoritma nasıl bir çıktı verir?

1. Başla

2. sayac=0

3. Eğer sayac>4 ise Git 7

4. sayac=sayac+1

5. Yaz sayac

6. Git 3

7. Dur

Page 38: Algoritmalar (Algoritms)

Aşağıdaki algoritma ne iş yapmaktadır?

1. Başla

2. sayac=0

3. OKU sayi

4. Eğer sayi=0 ise Git 7

5. Eğer mod(sayi,2)=0 ise sayac=sayac+1

6. Git 3

7. Yaz sayac

8. Dur

Page 39: Algoritmalar (Algoritms)

Örnek:

123456

23456

3456

456

56

6

Bu çıktıyı veren algoritmayı tasarlayınız.

Page 40: Algoritmalar (Algoritms)

Cevap

1.basla

2.baslangic=1

3.i=baslangic

4.Yaz i

5.i=i+1

6.eğer i<=6 git 4

7.alt satıra geç

8.baslangic=baslangic+1

9.eğer baslangic<=6 git 3

10.Dur

Page 41: Algoritmalar (Algoritms)

Soru-1

Klavyeden girilen not bilgisinin 0 ile 100 arası olup olmadığını kontrol eden programı yapınız.

Page 42: Algoritmalar (Algoritms)

Soru-2

Klavyeden girilen 20 tam sayı değerin en büyük ve en küçük arasındaki farkı bulup ekrana yazan programın algoritmasını yazınız.

Page 43: Algoritmalar (Algoritms)

Soru-3

Klavyeden girilen bir tam sayı eğer 1 ile 5 veya 7 ile 10 arasında ise, ekrana “Sayınız doğru yerdedir.”, değilse “Sayınız yanlış yerdedir.” yazan algoritamyı yazınız.

(Aralık belirten sayılar da aramaya dâhildir.)

Page 44: Algoritmalar (Algoritms)

Soru-4

Aşağıda verilen algoritmadaki değişkenlerin aldıkları değerleri tek tek belirtiniz.

BAŞLA Sayi1=15 Sayi2=30 Yaz Sayi1, Sayi2 Gecici=Sayi1 Sayi1=Sayi2 Sayi2=Gecici Yaz Sayi1, Sayi2 dur

Page 45: Algoritmalar (Algoritms)

Soru-5

2-16 arasındaki çift sayıların ortalamasını bulan programın algoritmasını yazınız?

Page 46: Algoritmalar (Algoritms)

Soru-6

Klavyeden girilen 10 tabanındaki sayıyı ikilik tabana çeviren programın algoritmasını yazınız.

Page 47: Algoritmalar (Algoritms)

Soru-7

Bir aracın otopark ücretinin hesaplamasını aşağıdaki kurallara göre yapan programın algoritmasını yazınız.

Kurallar:

Araçların en fazla 24 saat kaldığı varsayılacak.

Küçük araçlariçin 1 büyük araçlar için 2 değeri girilecek(Örn:Otomobil için 1, kamyon otobüs için:2)

Ücret tarifesi

0 - 2 saat Küçükler için:4 TL Büyükler için: 6 TL2 - 8 saat Küçükler için:7 TL Büyükler için: 10 TL 8-24 saat Küçükler için:12 TL Büyükler için: 16 TL

Page 48: Algoritmalar (Algoritms)

Soru-8

10 ile 3000 arasındaki sayılardan 3 ve 10 ile tam bölünenlerin toplamını bulan algoritmayı oluşturunuz?

Page 49: Algoritmalar (Algoritms)

Soru-9

Girilen bir tamsayının asal sayı(sadece 1'e ve kendisine tam bölünebilen olup olmadığını bulan programın algoritmasını yazınız.

Örnek;Girilen sayı 5 ise;"5 asal sayıdır" yazmalı .... Girilen sayı 6 ise;"6 asal sayı değildir“ yazmalı

Page 50: Algoritmalar (Algoritms)

Soru 10

Girilen 2 basamaklı tamsayıyı yazıyla yazan programın algoritmasını yazınızz?

Örnek;Girilen sayı 52 ise;"Elli İki" yazmalı

Page 51: Algoritmalar (Algoritms)

Soru-11

Girilen iki adet tamının çarpımını toplama işlemi kullanarak yapan programın algoritmasını yazınız.