Örnek

Transkript

Örnek
FBEB-512
C++ ile Nesne Tabanlı
Programlama
Güz 2009
(1. Hafta)
(Yrd. Doç. Dr. Deniz Dal)
Algoritma Geliştirme ve
Akış Diyagramları
BİLGİSAYARLA PROBLEM ÇÖZÜMÜ AŞAMALARI
Analiz
Algoritma Geliştirilmesi
Akış Şeması Çizimi
Programlama Dili Seçimi
Programın Yazılması
Derleme
Çalıştırma
Test
PROBLEM ÇÖZÜMÜ AŞAMALARI (devam)
Analiz : Sorunun çözülebilmesi için problemin
tamamen anlaşılmasını sağlayan ön çalışmalardır.
Algoritma Geliştirilmesi : Geliştirilen çözümün sıralı
adımlarla ifade edilmesidir.
Akış Şeması Çizimi : Geliştirilen 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 programlama dilinin seçilmesidir.
PROBLEM ÇÖZÜMÜ AŞAMALARI (devam)
Programın Yazılması : Seçilen programlama dilinin
kuralları kullanılarak programın yazılmaya başlanmasıdır.
Derleme : Programlama dili ile yazılmış programın
yazım hatalarının olup olmadığının kontrol edilmesi ve
programın makina dili komutlarına çevrilmesidir.
Çalıştırma : Çalıştırma aşamasında işletim sistemi derlenmiş
programı hard diskten alır ve belleğe taşır. Programın ilk
komutunun adresi CPU ya bildirilir ve program çalışmaya
başlar.
Test : Test aşaması programın mantıksal olarak test
edilmesini sağlar ve muhtemel her giriş için doğru
sonuçlar üretip üretmediği kontrol edilir.
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.
Programlama Nedir?
Problem çözümünde anlatılan adımların tümüne
birden programlama denir.
Programlama Dili Nedir?
Bir problemin algoritmik çözümünün bilgisayarda
yazılmasını sağlayan kurallar dizisidir.
Bazı programlama dilleri:
• MATLAB, C, C++, C#
• Delphi, Pascal, Visual Basic,
• Java, Lisp
Algoritma Nedir?
 Belirli bir problemi çözmek için işletilmesi gereken
adımları ve bu adımların hangi sıra ile uygulanacağını
belirleyen prosedüre algoritma denir.
 “İşine gitmek üzere uyanan birinin yapması gereken
işler” algoritması:
1. Yataktan kalk
2. Pijamalarını çıkar
3. Duş al
4. Elbiselerini giy
5. Kahvaltını yap
6. Arabana bin ve işe git
 Sıra önemli. 3 ve 4 nolu adımlar yer değiştirirse
mesela? (Kim ıslanmak ister? )
Algoritma Geliştirmede ve Programlamada
Kullanılan BazıTemel Kavramlar
1 – Değişkenler
2 – Atama Operatörü
3 – Fonksiyonlar
4 – Sayaçlar
5 – Döngüler
Algoritma Geliştirmede ve Programlamada
Kullanılan BazıTemel Kavramlar (devam)
1- Değişken : Bir program içerisinde bilgileri tutmak ve bu bilgiler
üzerinde işlem yapmak için değişkenlerden yararlanılır.
Örneğin c=a+b ifadesindeki "a","b" ve "c" bizim değişkenlerimizdir.
Algoritma Geliştirmede ve Programlamada
Kullanılan BazıTemel Kavramlar (devam)
2-Atama: Herhangi bir değişkenin içine bir değeri veya ifadenin/işlemin
sonucunu aktarma 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 alfa nümerik bir ifade olabilir.
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 (eski değeri) silinir.
X=3
Y=X+5
işleminin sonucunda Y‟nin bir önceki değeri silinerek yerine 8 değeri yazılır.
Algoritma Geliştirmede ve Programlamada
Kullanılan BazıTemel Kavramlar (devam)
3- 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 c = a+b olsun.
Fonksiyonumuzun sonucu: c=1+2=3
Burada "a","b" değişkenini girerek ve "c=a+b" fonksiyonunu
kullanarak "c" değişkeninin değerini buluyoruz.
Algoritma Geliştirmede ve Programlamada
Kullanılan BazıTemel Kavramlar (devam)
4- Sayaç : Programlarımızda bazı işlemlerin belirli
sayıda 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 çağrılan harf bu kümeye ait ise bunları
sayacak olan değişkenin değeri bir artırılır.
Algoritma Geliştirmede ve Programlamada
Kullanılan Bazı Temel Kavramlar (devam)
sayac = sayac + 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 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/azalan
değişkendir.
‘Sayaç’ kullanımına örnek:
sayac=sayac+3
Üçer üçer artan bir sayıcıdır
sayac=sayac-5
Beşer beşer azalan bir sayıcıdır
Örnek: Aşağıdaki algoritmada 1-5 arası sayılar (1 dahil, 5
hariç), sayaç kullanılarak ekrana yazdırılmaktadır. Burada,
sayac sayaç değişkenidir.
A1: Başla
A2: sayac=1
A3 : Eğer sayac=5 ise adım 7 ye git
A4: sayac i ekrana yaz
A5: sayac=sayac+1
A6: 3.adım’ a git
A7: Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Algoritma Geliştirmede ve Programlamada
Kullanılan Bazı Temel Kavramlar (devam)
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ı,
belirli sayıda tekrarlayan işlem akış çevrimlerine döngü
denir.
Döngü Oluşturma Kuralları:
1- Döngü değişkeninin başlangıç değeri belirlenir.
2- Döngü değişkeninin bitiş değeri belirlenir.
3- Döngü değişkeninin bitiş değerine ulaşıp
ulaşmadığı test edilir.
4- İstenen işlem gerçekleştirilir.
5- Döngü değişkeni, döngü içinde adım miktarı
kadar artırılır yada azaltılır.
‘Döngü’ Kavramına Örnek:
Örnek: Aşağıdaki algoritmada 1-10 arası tek sayıların toplamı
hesaplanmaktadır. (Aşağıdaki algoritmayi çift sayıların toplamına hangi
değişikliği yaparak dönüştürebilirsiniz?)
A1: Başla
A2: toplam=0
A3: sayac=1
A4: Eğer sayac>=10 ise adım 8 e git
A5: toplam=toplam+sayac
Döngü
A6: sayac=sayac+2
A7: Adım 4 e git
A8: toplam ı ekrana yaz
A9: Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek : Dışarıdan girilen iki sayının toplamını bulan programın
algoritması aşağıdaki gibi kurulur:
Algoritma:
A1 : Başla
A2 : A değerini gir
A3 : B değerini gir
A4 : C= A+B
A5 : C' yi ekrana yaz
A6 : Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek : Dışarıdan girilen 3 sayıdan en büyüğünü bulan algoritmayı kurunuz.
Algoritma:
A1 : Başla
A2 : A, B ve C sayılarını dışarıdan gir
A3 : enBuyuk=A
A4 : Eğer enBuyuk<B ise enBuyuk=B yap
A5 : Eğer enBuyuk<C ise enBuyuk=C yap
A6 : enBuyuk değerini ekrana yaz
A7 : Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: 0’dan 100’e kadar olan sayma sayılarının
kümülatif toplamını ekrana yazdıran algoritmayı
geliştiriniz.
A1 : Başla
A2 : toplam=0;sayac=1 baslangıç değerlerini ata
A3 : Eğer sayac=100 ise 6. adıma git
A4 : toplam=toplam+sayac
A5 : sayac=sayac+1 yap ve 3. Adıma geri dön
A6 : toplam’ı ekrana yaz
A7 : Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: Verilen bir sayının faktöriyelini hesaplayan programın
algoritmasını yazınız.
(Faktöriyeli hesaplanacak sayı negatif
girilmişse yeniden giriş istenmelidir.)
Değişkenler:
Sayının faktöriyeli : faktor , Faktöriyel Değişkeni :sayac
Faktöriyeli hesaplanacak sayı :Y
Algoritma:
A1: Başla
A2 : faktor =1; sayac =1
A3 : Y’yi gir
A4 : Eğer Y<=0 ise 3. adima git
Anlamlı Değişken İsimleri
Seçmek Çok Önemli !!!!!!!!!!!!
A5 : Eğer sayac>Y ise adim 8 e git
A6: faktor=faktor*sayac
A7: sayac =sayac+1 yap ve adım 5 e git
A8 : faktor degerini ekrana yaz
A9 : Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Akış Diyagramları (Flow Charts):
Akış diyagramları, algoritmaların sembolik olarak gösterimidir. Bilgisayarda
gerçekleştirilecek her tür aksiyon ayrı bir sembolle gösterilir.
Örnek: Verilen iki sayının ortalamasını hesaplayan programın
algoritmasını yazınız ve akış diyagramını çiziniz.
Başla
Akış diyagramı:
Algoritma:
X=?
A1 : Başla
Y=?
A2 : X değerini gir
A3 : Y değerini gir
Ort=(X+Y)/2
A4 : Ort = (X+Y)/2
Ort
yaz
A6 : Ort degerini yaz
A7 : Bitir
Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: Ax+b=0 şeklinde verilen 1. derece denklemin çözümünü bulan programın
algoritmasını yazınız ve akış diyagramını çiziniz. (A=0 girilmiş ise veri girişi yenilenecektir.)
A1: Başla
A2: A değerini giriniz
A3: Eğer A=0 ise Adım 2‟ye git
A=0
Evet
Hayır
A4: B değerini giriniz
A5: X=-B/A
A6: Yaz X
A7: Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Örnek: 1’den 100’e kadar olan sayıların (100 dahil)
toplamını ve ortalamasını bulan algoritmayı geliştiriniz.
Algoritma:
A1: Başla
A2: sayac=0
A3: toplam=0
A4: sayac=sayac+1
A5: toplam=toplam+sayac
A6: Eğer sayac=100 değilse Adım 4‟e git
A7: ortalama=toplam/sayac
A8: Yaz toplam, ortalama
A9: Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
Uygulama: Daha önce algoritması yazılan ve dışarıdan girilen 3 sayıdan
en büyüğünü bulan programın akış diyagramını çiziniz.
Uygulama: Daha önce algoritması yazılan ve dışarıdan girilen bir
sayının faktöriyelini hesaplayan programın akış diyagramını çiziniz.
Örnek:
F(x) fonksiyonunun degeri X'in aldığı
değerlere göre asağıda verilmiştir. X'in
değeri 0-20 arasında 0.5 aralıklarla
arttığına göre her bir X degeri 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: ??? kurunuz
Örnek : Ax²+Bx+C=0 şeklinde verilen 2. derece denklemin
köklerini bulan programın akış diyagramını çiziniz. (İkinci
derece denklem olmadığı uyarısını nasıl verirsiniz?)
Örnek:10 tane N
sayısının
faktöriyelini
hesaplayan
programın akış
diyagramını
çiziniz.
(Yandaki
diyagramdaki
sorunları
bulunuz.)
Örnek : Kenar uzunlukları dışardan girilen bir ABC üçgenini kenar uzunluklarına
göre inceleyen programın algoritmasını kurunuz.
A1: Başla
A2: A,B,C değerlerini gir
A3: A=B ise A4‟e git değilse A5‟e git
A4: B=C ise A6‟ya git değilse A8‟e git
A5: A=C ise A8‟e git değilse A7‟e git
A6: „Üçgen Eşkenardır‟ yazdir ve A10‟a git
A7: B=C ise A8‟e git, değilse A9‟a git
A8: „Üçgen İkizkenardır‟ yazdir ve A10‟a git
A9: „Üçgen Çeşitkenardır‟ yazdir
A10: Bitir
Hangi amaçlarla kaç değişkene ihtiyaç var?
A1
A2
H
Eşkenar : A=B=C
Başla
İkizkenar: A=B veya
A=C veya
B=C
A,B,C Gir
Çeşitkenar: A=B=C
A3
E
A=B
A5
H
A=C
A7
E
A4
H
B=C
A6
E
Eşkenar
A8
E
H
B=C
İkizkenar
A9
Çeşitkenar
Bitir
A10

Benzer belgeler