Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BİLGİSAYAR PROGRAMLAMA DERSİ

Benzer bir sunumlar


... konulu sunumlar: "BİLGİSAYAR PROGRAMLAMA DERSİ"— Sunum transkripti:

1 BİLGİSAYAR PROGRAMLAMA DERSİ
DERS NOTU Konu: Algoritmalar

2 BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI
René Descartes Felsefeci Problem Çözme Tekniğinde Descartes’ in Tavsiyesi; 1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının. 2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün. 3. Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyin. 4. Olaya bakışınız çok genel olmalı ve hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olmalıdır.

3 BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI
Bir problemi çözmek için yazılacak programda, genel olarak, aşağıdaki yazılım geliştirme aşamaları uygulanmalıdır. 1. Problemin Analizi: Problemin tam olarak ne olduğunun anlaşılmasıdır. Bu nedenle, problemin çözümünden neler beklendiği ve yaratacağı çözümün girdi ve çıktılarının neler olacağı kesin olarak belirlenmelidir. 2. Algoritma Geliştirme: Problemi çözmek için kullanılacak çözüm adımlarını gösteren bir liste yapılması gereklidir. Bir problemin çözüm adımlarını gösteren bu listeye algoritma denir. Böyle bir liste tasarlanırken, ilk önce problemin ana adımları çıkarılır; daha sonra her adım için, gerekiyorsa, daha ayrıntılı bir çözüm tasarlanmalıdır. 3. Akış Şeması Çizimi: Geliştirilen algoritmanın şekillerle ifade edilmesidir.

4 BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI
4. Programlama Dili Seçimi: Geliştirilen algoritmayı kolay bir şekilde bilgisayar ortamına aktaracak bir bilgisayar programlama dilinin seçilmesidir. 5. Programın Yazılması: Seçilen programlama dilinin kuralları kullanılarak programın yazılması aşamasıdır. 6. Derleme/Yorumlama: Programlama dili komutlarına dönüşmüş çözümün yazım hatalarının olup olmadığının kontrol edilmesi ve programın makina dili komutlarına çevrilmesidir. 7. Çalıştırma: Derlenmiş programın işletim sistemi tarafından hard diskten alınarak belleğe taşındığı ve programın ilk komutunun adresinin Merkezi İşlem Birimine bildirildiği aşamadır. 8. Test/Hata Ayıklama: Programın mantıksal olarak test edildiği ve muhtemel her giriş için doğru sonuçlar üretip üretmediğinin kontrol edildiği aşamadır.

5 (BİLGİSAYAR PROGRAMI) NEDİR? (BİLGİSAYAR PROGRAMLAMA) NEDİR?
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. PROGRAMLAMA (BİLGİSAYAR PROGRAMLAMA) NEDİR? Problem çözümünde anlatılan adımların tümüne birden programlama denir.

6 BAZI PROGRAMLAMA DİLLERİ
PROGRAMLAMA DİLİ NEDİR? Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kurallar dizisidir. BAZI PROGRAMLAMA DİLLERİ MATLAB, Delphi, Pascal, Fortran C, C++, C#, Visual Basic, Java

7 ALGORİTMA Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir. 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.

8 ALGORİTMA “İşine gitmek üzere uyanan birinin yapması gereken işler” için nasıl bir algoritma geliştirilmelidir?

9 ALGORİTMA Yataktan Kalk 2. Pijamalarını Çıkar 3. Duş Al
4. Elbiselerini Giy 5. Kahvaltını Yap 6. Otobüse Bin ve İşe Git

10 Sıra önemli !!! Hatalı Sıralama Doğru Sıralama 1. Adım 1. Adım 2. Adım

11 Bisküvili Pasta Yapılışı (ALGORİTMASI )
Bisküvili Pasta Malzemeleri: 1 litre süt 2 paket puding (çikolata parçalı) Kakaolu bisküvi Antep fıstığı (dövülmüş) 1 paket krem şanti Krem şanti yapmak için süt Bisküvili Pasta Tarifi (ALGORİTMASI) Pudingleri bir tencere içine döküp 1 litre süt ilave ederek pişirin. Dikdörtgen borcam içine bisküvileri düzgün şekilde dizin ve üst kısmına puding dökün. Aynı işleme 3 kat olacak şekilde devam edin. Pasta tam olarak soğuduktan sonra krem şantiyi üstündeki tarife göre hazırlayın. Kremayı pastanın üstüne sürün. En üst kısma ise fıstık serpip buzdolabında dinlenmeye alın.

12 Bir Hastanenin Röntgen Çektirme Algoritması

13 Algoritmalarda Kullanılan Temel Terimler
Değişken Atama Sayaç Döngü

14 Değişken Bir program içerisinde bilgileri geçici olarak saklamak ve ihtiyaç duyduğumuzda bu bilgiler üzerinde işlem yapmak için değişkenlerden yararlanırız. Su bardağını bir değişken olarak düşünün. Resimdeki bardakların hepsi aynı hacme sahip özdeş bardaklardır. Fakat; Birinci bardağın %10’ nu dolu ve dolayısıyla bardak değişkeninin değeri %10’dur. İkinci bardağın %35’ i dolu ve dolayısıyla bardak değişkeninin değeri %35’dir. Üçüncü bardağın %75’ i dolu ve dolayısıyla bardak değişkeninin değeri %75’dir. Dördüncü bardağın %90’ i dolu ve dolayısıyla bardak değişkeninin değeri %90’dır.

15 Atama Herhangi bir değişkenin içine bir değeri veya ifadenin/işlemin sonucunu aktarma işlemine atama denir. Sürahinin içindeki su bizim değerimiz veya ifademiz/işlemimizdir. Atama Değişkenimiz Bardak

16 Atama (devam) ‘değişken’ yazan kısım, herhangi bir değişkenin adıdır (Örneğin bardak değişkeni). ‘ifade’ yazan kısımda ise matematiksel, mantıksal veya alfa-nümerik bir ifade olabilir (Sürahi içindeki su). Aradaki ‘=’ sembolü, ‘atama 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 silinerek yeni değere atanır. (Bardak değişkenine %10, %35, %75 … değerlerinde su koymak) Y=9 X=26 X=3 Y=X+5 işleminin sonucunda Y’nin bir önceki değeri silinerek yerine 8 değeri atanır.

17 Sayaç Programlarımızda bazı işlemlerin belirli sayıda yaptırılması veya işlenen/üretilen değerlerin sayılması gerekebilir. Sayma amacıyla kullanılan bu tür değişkenlere sayaç denir. 1. Dolum İşlemi 3. Dolum İşlemi 2. Dolum İşlemi Bardak bir değişkendir aynı zamanda bardağa yapılan su dolum işlemi ise sayaç adı verilen bir değişkendir. Resimdeki örnekte 3 kez dolum işlemi yapılmaktadır.

18 Sayaç (devam) sayac = sayac bilgisayar deyimi ile sayac adlı değişkenin eski (önceki) değerine ‘1’ eklenmektedir. Bulunan sonuç yine kendisine, yeni değer olarak aktarılmaktadır. Bu tür değişkenlere, algoritmada “sayaç” veya “sayıcı” (counter) adı verilir. Yani “sayaç” işlem akışı kendisine her geldiğinde, belirtilen adım değeri kadar artan veya azalan değişkendir.

19 Sayaç(devam) bardak=%10 bardak=%0 sayac=0 sayac=sayac+1 sayac=1

20 Sayaç (devam) bardak=%35 bardak=%75 sayac=sayac+1 sayac=sayac+1

21 Sayaç (devam) bardak=%90 sayac=sayac+1 sayac=4
Bardaktaki su sizin için yeterliyse su doldurma işlemini iki farkı şartla durdurabilirsiniz. Bardaktaki su miktarı %90 olduğunda doldurma işlemini durdur. Eğer sayaç değeri 4 ise doldurma işlemini durdur.

22 Sayaç (devam) Şimdi bardaktaki suyu adım adım boşaltalım. bardak=%90
sayac=sayac-1 sayac=3 sayac=4

23 Sayaç (devam) bardak=%35 bardak=%10 sayac=sayac-1 sayac=sayac-1

24 Sayaç (devam) bardak=%0 sayac=sayac-1 sayac=0
Dolayısıyla sayaç değişkeni artan bir değişken olabileceği gibi azalan bir değişkende olabilir.

25 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ı, belirli sayıda tekrarlayan işlem akış çevrimlerine döngü denir.

26 Bardak hacminin %90’nı dolana kadar su doldurma işlemine devam et.

27 Döngü Oluşturma Kuralları:
Döngü değişkeninin başlangıç değeri belirlenir. Döngü değişkeninin bitiş değeri belirlenir. Döngü değişkeninin bitiş değerine ulaşıp ulaşmadığı test edilir. İstenen işlem gerçekleştirilir. Döngü değişkeni, döngü içinde adım miktarı kadar artırılır yada azaltılır. Bardak doldurma işleminde sayaç değişkeni bir döngü değişkeni olarak tanımlanabilir. Sayaç değeri başlangıçta 0 olarak alınırken bitiş değerinin 4 olması istenebilir. Su doldurma işlemi esnasında sayaç değeri test edilir. Sayaç değeri 4’e ulaştığında işlem bitirilir (Döngüden çıkılır).

28 ADIM ADIM ALGORİTMA GELİŞTİRME VE GELİŞTİRİLEN ALGORİTMANIN AKIŞ DİYAGRAMI İLE TEMSİL EDİLMESİ
PROBLEM: 𝐴 𝑥 2 +𝐵𝑥+𝐶=0 şeklinde verilen 2. dereceden bir denklemin köklerini hesaplayarak ekrana yazdıracak bir algoritma geliştiriniz ve akış diyagramını çiziniz.

29 Problemi analiz edelim:
1. Kullanıcı A, B, C sayılarını girecek ve bizden köklerini bulmamızı istenen 2. derecen denklem ortaya çıkacak. Örneğin: 𝐴=3, 𝐵=5, 𝐶=6→3 𝑥 2 +5𝑥+6 2. Matematik bilgimizi kullanarak denklemin diskiriminantının hesaplanması gerekecek. ∆= 𝐵 2 −4∗𝐴∗𝐶 3. Eğer diskiriminant sıfırdan küçük ise (∆<0) bu denklemin kökleri sanal olacak. Diskiriminant sıfıra eşit veya daha büyük ise (∆≥0) kökler aşağıdaki gibi hesaplanacak.

30 Problemin Bilgisayar Programıyla Çözümü İçin
Gerekli Olan Değişkenlerin Tanımlanması

31 Problemin Bilgisayar Programıyla Çözümü İçin Gerekli Olan Algoritma
Adım 1: Başla Adım 2: A,B,C sabitlerini değişkenlere ata Adım 3: Deltayı hesapla Adım 4: Delta<0 ise Adım 5’e, değilse Adım 6’a geç Adım 5: Ekrana ‘’Kökler sanaldır’’ yaz Adım 9’a geç Adım 6: 1. kökü hesapla, x1 değişkenine ata Adım 7: 2. kökü hesapla, x2 değişkenine ata Adım 8: x1 ve x2 değişkenlerini ekrana yaz Adım 9: Bitir

32 Akış Diyagramları (Flow Charts):
Algoritmanın, görsel olarak simge ya da sembollerle ifade edilmiş şekline “akış şemaları” veya FLOWCHART adı verilir. Akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içine yazılmış olması ve adımlar arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir. Programın saklanacak esas belgeleri olan akış şemalarının hazırlanmasına, sorun çözümlenmesi sürecinin daha kolay anlaşılır biçime getirilmesi, iş akışının kontrol edilmesi ve programın kodlanmasının kolaylaştırılması gibi nedenlerle başvurulur. Uygulamada çoğunlukla, yazılacak programlar için önce programın ana adımlarını (bölümlerini) gösteren genel bir bakış akış şeması hazırlanır. Daha sonra her adım için ayrıntılı akış şemalarının çizimi vardır. Akış şemaları en basit şekliyle dikdörtgen kutulardan ve oklardan oluşur. Akış şeması sembolleri ANSI (American National Standards Institute) standardı olarak belirlenmiş ve tüm dünyada kullanılmaktadır.

33 Başlangıç veya Bitiş Sembolü
Programın başında ve sonunda kullanılır. Su doldurma işlemine Başla veya Bitir

34 Veri Girişi Sembolü Klavyeden yapılacak olan veri girişleri için kullanılır. Girilen her bir veri bir değişkende saklanır. Bardak en fazla %90 oranında dolsun

35 Hesaplama ve Atama Sembolü
Her türlü hesaplama ve atama işlemi için kullanılır. Bardağa %10, %35, %75 ve %90 oranlarında su doldur.

36 Karşılaştırma Sembolü
Evet Hayır Programın akışını bir karşılaştırmanın sonucuna göre değiştirmek için kullanılır. Karşılaştırma doğru ise Evet, yanlışsa Hayır yolu takip edilir. Sayaç değeri 4 oldu mu? Evet o zaman doldurma işlemini durdur. Hayır o zaman doldurma işlemine devam et.

37 Bilgi Çıkış Sembolü Ekran üzerinden kullanıcıya bilgi aktarmak amacıyla kullanılır.

38 Oklar Bilgi akışının yönünü belirtmek amacıyla kullanılır.

39 Başla Bardağın Ne Kadar Dolması Gerektiği Kullanıcıdan Al (Örneğin %90 Olsun) Bardağın %90’nı Dolumu? Evet Hayır Bardağa Su Doldur Bitir

40 Ekrana ‘ 𝑥 1 ’ ve ‘ 𝑥 2 ’ değerlerini yazdır
Başla Adım 1 A, B, C sayılarını Kullanıcıdan Al Adım 2 𝑑𝑒𝑙𝑡𝑎= 𝐵 2 −4∗𝐴∗𝐶 Adım 3 𝑑𝑒𝑙𝑡𝑎<0 Evet 𝐴 𝑥 2 +𝐵𝑥+𝐶=0 şeklinde verilen 2. dereceden bir denklemin köklerini hesaplayarak ekrana yazdıracak algoritmanın akış diyagramını çiziniz. Adım 4 Adım 5 Ekrana ‘Kökler Sanal’ Yazdır Hayır 𝑥 1 =(−𝐵+ 𝑑𝑒𝑙𝑡𝑎 )/(2∗𝐴) Adım 6 𝑥 2 =(−𝐵− 𝑑𝑒𝑙𝑡𝑎 )/(2∗𝐴) Adım 7 Ekrana ‘ 𝑥 1 ’ ve ‘ 𝑥 2 ’ değerlerini yazdır Adım 8 Bitir Adım 9

41 ortalama=(sayi1+sayi)/2
Örnek: Verilen iki sayının ortalamasını hesaplayan programın algoritmasını geliştiriniz ve akış diyagramını çiziniz. Algoritma: Adım 1 : Başla Adım 2 : sayi1 değerini gir Adım 3 : sayi2 değerini gir Adım 4 : ortalama = (sayi1+sayi2)/2 Adım 5 : ortalama değerini ekrana yaz Adım 6 : Bitir Akış diyagramı: Başla Adım 1 Adım 2 Sayi1=? Adım 3 Sayi2=? ortalama=(sayi1+sayi)/2 Adım 4 Adım 5 ortalama Bitir Adım 6

42 Adım 2: A değerini giriniz Adım 3: Eğer A 0’a eşit ise Adım 2’ye git
Örnek: 𝐴𝑥+𝐵=0 şeklinde verilen 1. derece denklemin çözümünü bulan programın algoritmasını geliştiriniz ve akış diyagramını çiziniz. (A=0 girilmiş ise veri girişi yenilenecektir.) Başla Adım 1 Adım 2 A=? 𝐴=0 Evet Adım 1: Başla Adım 2: A değerini giriniz Adım 3: Eğer A 0’a eşit ise Adım 2’ye git Adım 4: B değerini giriniz Adım 5: X=-B/A Adım 6: Yaz X Adım 7: Bitir Adım 3 Hayır Adım 4 B=? Adım 5 X=-B/A Adım 6 X Adım 7 Bitir

43 Örnek***: 1’den 100’e kadar olan sayıların (100 dahil) toplamını ve ortalamasını bulan algoritmayı geliştiriniz. Not: Kullanıcı sayıları tek tek girmeyecek program bu toplamı otomatik hesaplayacak. Matematiksel olarak problemin çözümü: 1+2+3+… =𝑇𝑜𝑝𝑙𝑎𝑚 100 tane sayı olduğundan 𝑂𝑟𝑡𝑎𝑙𝑎𝑚𝑎=𝑇𝑜𝑝𝑙𝑎𝑚/100

44 Bu problemin çözümü için aşağıdaki mantıksal yaklaşımı kullanalım.
Başlangıçta Toplam değerini sıfır alalım (Toplam=0). Toplanması gereken sayılar birer birer artımlı olduğundan sayac adı verdiğimiz bir değişken kullanalım. Başlangıçta Toplam=0 ve sayac=0 olsun. sayac değişkeninin değerini bir artıralım (sayac=sayac+1) ve ardından sayac değişkeniyle Toplam değişkenini toplayalım (Toplam=Toplam+sayac). Bu durumda sayac=sayac+1=0+1=1 olurken, Toplam=Toplam+sayac=0+1=1 olur ve bu sayac sayesinde toplanması istenen sayılardan ilkine ulaşmış oluruz. 1+2+3+… =𝑇𝑜𝑝𝑙𝑎𝑚 Şu an için sayac=1 ve Toplam=1 değerindeyiz

45 sayac değişkenini tekrar bir artıralım ve yine ardından sayac değişkeniyle Toplam değişkenini toplayım. Bu durumda sayac=sayac+1=1+1=2 olurken Toplam=Toplam+sayac=1+2=3 olur ve bu sayac sayesinde toplanması istenen sayılardan ikincise ulaşmış olurken 1+2 toplamını bulmuş oluruz. 1+2+3+… =𝑇𝑜𝑝𝑙𝑎𝑚 Şu an sayac=2 ve Toplam=3 değerindeyiz İşleme devam edelim; sayac değişkenini tekrar bir artıralım ve yine ardından sayac değişkeniyle Toplam değişkenini toplayım. Bu durumda sayac=sayac+1=2+1=3 olurken Toplam=Toplam+sayac=3+3=6 olur ve bu sayac sayesinde toplanması istenen sayılardan üçüncüsüne ulaşmış olurken toplamına bulmuş oluruz. 1+2+3+… =𝑇𝑜𝑝𝑙𝑎𝑚 Şu an sayac=3 ve Toplam=6 değerindeyiz

46 sayac değişkeninin değeri 100 oluncaya kadar bu adımları tekrar ettiğimizde sonuca ulaşacağımız kesindir. Ortalamayı bulmak basittir çünkü Ortalama=Toplam/100. Algoritma: A1: Başla A2: sayac=0 A3: toplam=0 A4: sayac=sayac+1 A5: toplam=toplam+sayac A6: Eğer sayac 100’e eşit değilse Adım 4’e git A7: ortalama=toplam/sayac A8: Yaz toplam, ortalama A9: Bitir

47 Ödev-1: 1’den 100’e kadar olan sayıların (100 dahil) toplamını ve ortalamasını bulan algoritmayı geliştirmiş bulunmaktayız. Geliştirmiş olduğumuz bu algoritmanın akış şemasını çiziniz.

48 Kaynaklar: Ahmet Dumlu ders notlari
Matlab İle Programlama (Dr. Deniz Dal) (Öğr. Gör. Dr. Umut Engin)


"BİLGİSAYAR PROGRAMLAMA DERSİ" indir ppt

Benzer bir sunumlar


Google Reklamları