tikla-indir

Transkript

tikla-indir
Bilgisayar Programlama
2012-13 / Bahar
Program ve programlama dili nedir?
2
Program ve programlama dili nedir?
• İnsanla bilgisayar arasındaki iletişim aracı
• Programlama dili, programcı ile bilgisayar
arasındaki iletişimi sağlayan bir araç olup
programların yazılımında kullanılan bir
notasyondur (simgeler ve özel komutlar,
komut parçacıkları).
3
Program dönüşümü
• Düşük seviyeli diller (assembly : MOV AL, 61h)
• Orta seviyeli diller (PIC programlama: SUBWF f,d [d = f − W])
• Yüksek seviyeli diller (C/C++, Pascal, QBasic : printf(),
writeln(), PRINT)
4
Bilgisayarda problem çözme
aşamaları:
•
•
•
•
•
•
•
Problemin tanımı
Çözüm yolunun tespiti
Algoritmanın hazırlanması
Akış diyagramının çizilmesi
Programın hazırlanması
Hazırlanan programın test edilmesi
Uygulama
5
ALGORİTMA
Bilgisayar, sadece
programcının kendisine
söylediği şeyi nasıl
yapacağını bilir.
Bundan dolayı programcı
bilgisayara problemi nasıl
çözeceğini bildirmelidir.
Bilgisayara nasıl iş yaptıracak, nasıl
iletişim kuracaksınız?
Bir “Program” ile.
Bilgisayarlar program olmadan
çalışmazlar.
Bilgisayarın dili makine dilidir.
Onunla makine mantığı ile iletişim
kurabiliriz. Bu da algoritma
(talimat, rutin, reçete) ile olur.
Program yazma, çözülmüş
bir problemin bir bilgisayar
dili ile kodlarını yazmaktır
(coding). Bu, en son iştir.
Kodlamadan önce
algoritma yazılmalıdır.
Algoritma
• 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.
• 9. yüzyılda El Harezmî Al-Khowarizmi (Al-Harezmi)
tarafından bulunmuş ve onun adında türetilmiştir.
El Harezmî
•
Tam adı; Ebu Abdullah Muhammed İbni Musa El Harezmî (Farsça: - ‫خوارزمی‬
khvârâzmi, Arapça: ‫أبو عبد هللا محمد ابن موسى الخوارزمي‬Abū Abdullāh Muhammad ibn
Mūsā al-Khwārizmī); matematik, gökbilim ve coğrafya alanlarında çalışmış bir
bilim adamıdır. Fars veya Türk olduğu düşünülmektedir. Genel itibariyle Ortaçağ
İslam dünyasının en büyük bilimsel yeteneklerindendir. Batı Türkistan’da Aral
gölü güneyinde bulunan Harezim bölgesinde 780 yılında dünyaya gelmiş, 850
‘de Bağdat’ta vefat etmiştir.
•
Harezmî, çağına göre üstün özellikler taşıyan eserler meydana getirmiştir. Bu
eserlerin günümüz matematikçilerini bile hayrete düşüren yönleri vardır. Mesela,
açıların ‘’Sinüs’’ gibi trigonometrik fonksiyonlarla ifade edildiğini gösteren
tabloları oluşturmuştur. 10. yüzyılda yaşayan ve tüm dünyaya isminin (El
Harezmî – Al Khrawarizmi) Latince telaffuzunu “Algoritma” olarak söylettiren bu
Müslüman Türk âlimi, cebir matematiğinin de kurucusudur. Zaten, cebir
kelimesi de Harezmî’nin ( El Kitab’ül Muhtasar Fi Hisab’il Cebri ve’l Mukabele )
“Cebir ve denklem hesabı üzerine özet kitap” adlı eserinden gelir.
Algoritma
Problem çözmek için geliştirilen Adım – adım
çözüm yöntemidir.
Verilen bir problemi çözmek için tasarlanan
talimatlar bütünüdür.
Bir sorunun çözümü için sunulan mantıksal ve
sembolik anlatımdır.
Algoritma
Algoritma sadece bilgisayar
programlamada kullanılmaz.
Bir fabrika üretiminin
algoritması, bir büro çalışma
düzeninin algoritması, bir planlı
gezinin algoritması...
Algoritma hazırlığı
• 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.
Örnek 1: Verilen iki sayının
toplamının bulunmasının
algoritması aşağıdaki gibi yazılır.
Algoritmaya dikkat edilirse işlemlerin
sıralanmasında, işlem önceliklerinin
göz önünde bulundurulduğu görülür.
Algoritma
Adım 1 – Başla
Adım 2 – Birinci Sayıyı Oku
Adım 3 – İkinci Sayıyı Oku
Adım 4 – İki Sayıyı Topla
Adım 5 – Dur
Ayrıca algoritma yazımı sorun
çözümünün başladığını gösteren
“Başla” ifadesi ile başlamakta ve
işlemlerin bittiğini belirten “Dur” ifadesi
ile sona ermektedir.
Algoritmadan Beklentiler
• Etkinlik: Bilgisayarlar düşünemez. Bu yüzden algoritmanın her adımı
anlaşılır, basit ve kesin bir biçimde ifade edilmiş olmalıdır. Yorum
gerektirmemeli ve belirsiz ifadelere sahip olmamalıdır. Gereksiz
tekrarlarda bulunmayan diğer algoritmalar içerisinde de kullanılabilir
olmalıdır.
• Sonluluk: Her algoritmanın bir başlangıç noktası, belirli işlem adımı ve
bir bitiş noktası içermelidir. Sonsuz döngüye girmemelidir.
• Kesinlik: İşlem sonucu kesin olmalı, aynı veri için her yeni çalıştırmada
aynı sonucu üretmelidir.
• Giriş/Çıkış: Algoritma giriş (üzerinde işlem yapılacak değerler) ve çıkış
(yapılan işlemler neticesinde üretilen sonuç değerler) değerlerine sahip
olmalıdır.
• Başarım/Performans: Amaç, donanım gereksinimi (bellek kullanımı
gibi), çalışma süresi gibi performans kriterlerini dikkate alarak yüksek
başarımlı programlar yazmak olmalıdır.
Algoritmaları bilgisayar programına çeviren üç
Bunlar, kullanılacak programlama diline bağlı
teknik vardır:
değildir.
• Sözde Kod (Pseudocode) – Programın ana
hatlarını ve adımlarını gösteren kısa komutlar.
•Akış diyagramı (Flowchart)- Bir işi yapan mantıksal
adımları ve adımlar arası geçişlerin grafiksel
gösterimi.
•
• Sıradüzeni grafiği (Hierarchy charts) - Programın
farklı parçalarının birbirleriyle ilişkilerini gösterir.
Pseudo Code (Sözde/Kaba Kod)
•
•
Sözde programlar, doğrudan konuşma dilinde ve programlama mantığı
altında, eğer, iken gibi koşul kelimeleri ve > = < gibi ifadeler ile beraber yazılır.
İyi bir biçimde yazılmış, sözde koddan programlama diline kolaylıkla geçilebilir.
•
ÖRNEK Problem: Verilen bir sıcaklık derecesine göre suyun durumunu belirten
bir sözde program (pseudo kod) yazınız.
•
•
•
•
•
•
•
•
İstenilen programın Pseudo Kodu:
1. Program açıklama mesajı yaz.
2. Kullanıcın sıcaklığı girmesi için bir uyarı mesajı yaz.
3. Girilen Sıcaklığı Oku.
5. Eğer Sıcaklık < 0 ise Durum=“Buz”
6. Eğer Sıcaklık>= 100 ise Durum=“Buhar”
7. Değilse Durum =“Su”
8. Sonucu Yaz.
Algoritma çalışmasında iki önemli görev vardır:
1. Belirli bir problemi çözmek için bir
algoritma tasarlamak
2. Verilen bir algoritmayı analiz etmek
–
–
Bu iki görev birbiriyle ilişkilidir.
Algoritmanın analizi yeni algoritmaların
tasarlanmasını sağlar.
Program geliştirme yöntemi
• Bilgisayar programcılarının program geliştirme
yöntemi aşağıdaki adımlardan oluşur:
1.
2.
3.
4.
5.
6.
Problem
Analiz
Tasarım
Uygulama
Sınama
Bakım
1.Problem
• Bu ilk adımda programcı, problemi
anlamaya çalışır.
• Problemin ne olduğunu, çözümde nelerin
gerekli olduğunu, lazım olan ön bilgileri
belirler.
• Problemi anlamanın çözümün yarısı
olduğu unutulmamalıdır!
Problem çözme sırası
(Problem Solving Cycle)
1. Problemi anlama
(Understanding, Analyzing),
2. Bir çözüm yolu geliştirme
3. Algoritma ve program yazma
4. Tekrar tekrar test etme
(Designing),
(Writing),
(Reviewing)
Polya, George (1957) ‘How To Solve It’,
Princeton University Press, 2nd Edition
Problem Çözmenin Adımları
(Steps in Solving a Problem)
1. İstenenler analizi (Requirements Analysis): Problemi
bütün boyutları ile tanıma ve ne yapılması istendiğini net
olarak anlama, problem çözülebilir mi?
2. Çözüm yolu bulma (Design): Bir çözüm yolu geliştirme
ve algoritmasını yazma.
3. Uygulama (Implementation): Çözüm algoritmasını
uygun bir program diline çevirme
4. Test etme, hatalardan ayıklama, kurma ve bakımını
yapma (Testing, debugging, installing and maintenance)
•Sonunda ne elde
etmek istiyorsun
(Çıktı-Output)
•Elinde hangi ham
veriler var (GirdiInput)
•Girdileri istediğin
Çıktıya dönüştürecek
işlemi (process) belirle
Örnek: 2 saatte 190
km yol alan
arabanın ortalama
hızı nedir?
•Output: saatte
ortalama hız
•Input: gidilen
mesafe ve süre
•Process: orthız =
mesafe/süre
Problem çözme olgusunun
grafiksel gösterimi
Girdi
İşlem
Çıktı
(Input)
(Processing)
(Output)
Girdi-İşlem-Çıktı türüne en iyi örnekler yemek
tarifleridir. Malzemeler ve miktarları, hazırlama pişirme ve sonuda istenen yemek!
Monopoly oyununda zar attıkça sizi yönlendiren talimatlar (2 tur bekle,
para öde, 5 geri, 3 ileri git vs birer algoritmadır.
2. Analiz
• Bu adımda problemi çözüm için verilen değerler ile
programın elde etmesi gereken değerlerin ne
olduğu belirlenmelidir.
• Girdiler ve çıktılar madde madde yazılır.
• Bu girdi ve çıktı arasındaki ilişki belirlenir.
• Belirlenen ilişki formüller ile açıklanabilir.
• Problem adımı başarılı bir şekilde gerçekleşmeden
analiz adımına geçilmemelidir.
• Problem çözümünde ilk iki adım çok önemlidir.
• Çözüm için bir fikir bulunamamışsa problem tekrar
gözden geçirilmelidir.
ÖRNEK: Taban ve yükseklik değerleri
verilen üçgenin alanını hesaplayınız.
PROBLEM:
• Bu problemde üçgen alanını bulmak için
gerekli
olan
formülün
bulunması
zorunludur.
• Formül olduğunu düşünmek çözüm
yöntemi hakkında bir fikir oluştuğu
anlamına gelir.
ÖRNEK: Taban ve yükseklik değerleri
verilen üçgenin alanını hesaplayınız.
ANALİZ
– Girdiler:
• Taban ve Yükseklik
– Çıktılar:
• Alan
ÖRNEK: Taban ve yükseklik değerleri
verilen üçgenin alanını hesaplayınız.
• Verilen değerler ile çıktı arasındaki formüle
edilmiş ilişkiyi belirlemek gerekir.
• Gerekli olan girdileri ve birbirleri arasındaki
ilişkileri belirleyerek bir problemi
modelleme işlemine soyutlama
(abstraction) adı verilir.
Alan=(Taban X Yukseklik)/2
3. Tasarım
• Problemin çözümü için gerekli olan çözüm
aşamalarını mantıksal sıra içerisinde yazılması
aşamasıdır.
• Yapılan işleme algoritma adı verilir.
• İyi bir algoritmanın iki şartı vardır.
– Bütün adımlar mantıksal bir düzen ve sıra içerisinde
verilmeli
– Verilen adımların tamamı çalıştırılabilir olmalıdır.
Tasarım
• Algoritma tasarlanırken bütün problem parçaları aynı
anda çözülmeye çalışılmaz.
• Problem kendi içinde önemli parçalara ya da alt
problemlere ayrılır ve sonra bu alt problemler
çözülerek esas problemin çözümüne gidilir.
• Bu yönteme yukarıdan aşağı tasarım (top-down
design) veya böl ve yönet (divide&conquer) adı verilir.
• Algoritma bütün tanımlamaları içerecek şekilde adım
adım yazılır.
• İlk adım "BAŞLA", son adımda her zaman "DUR" olur.
Böl ve Yönet Metodu
(Divide-and-conquer)
• Çok büyük problemleri parçalara
ayırarak daha kolay çözeriz.
• Çözülecek kadar küçülttüğün
parçaları mantıklı bir sıraya koy.
• Her parçayı ayrı modüller olarak
çöz ve birbirine bağla (entegre
olsun)
Tasarım
• Algoritma tasarımının önemli bir parçası
da
algoritmanın
doğru
çalışıp
çalışmadığının adım adım izlenerek
kontrol edilmesidir.
• Bu kontrol etme esnasında erkenden fark
edilen hatalar programcıya hem zaman
kazandıracak, hem de boş yere enerji
harcamasına engel olacaktır.
Aşağıda örnek bir algoritma çalışması
verilmiştir.
• Örnek: Problem “tahtaya adını yazma"
işidir.
• Algoritma aşağıdaki gibi yazılabilir.
Tahtaya adını yazma
1. BAŞLA
2. Yerinden kalk
3. Yönün tahtaya doğru mu?
 Hayırsa Tahtaya Dön
 Evetse adım 4 e git
4. Tahtaya doğru yürü
5. Tahtaya geldin mi?
 Hayırsa adım 4‘e
 Evetse adım 6'ya git
6. Kalemi al
7. Adını yaz
8. DUR
Tahtaya adını yazma
• Burada emirler, belli sorgulamalar yapılarak ve
mantıksal bir sıra içinde verilmiştir.
• Yerinden kalk emri verilmeden ondan yürümesi
istenemez.
• Kalemi almadan adını yaz emrinin verilmesi
doğru olmaz.
• Sorgulamalarla da işlemi yapıp yapmadığı
kontrol edilmiştir.
Tahtaya adını yazma
• Bu örnek, sadece adımların tutarlılığını ve
mantıksal sırasını göstermek içindi.
• Yoksa bilgisayar bu tür işleri yerine
getiremez.
• Esasında kullanıcılar bilgisayarlara belli
girdiler verir.
• Onlarda programcının verdiği adımlara
göre bu girdiler üzerinde matematiksel ve
mantıksal işlemler yaparak bir çıktı
üretirler.
Örnek: Üçgenin Alanı
•
Yukarıdaki verilen üçgen alanını hesaplama
işlemi için gerekli olan algoritma, sözde kod
(pseudocode) kullanarak aşağıdaki gibi
oluşturulabilir.
1.
2.
3.
4.
5.
6.
BAŞLA
Taban değerini al
Yükseklik değerini al
Taban ile yüksekliği çarp sonucu ikiye böl
Sonucu yaz
DUR
Üçgenin Alanı
• Önceki algoritma kendi içerisinde tutarlı ve
mantıksal sıra ile yazılmıştır.
• Değerler verilmeden alan hesabı işlemini
yaptırmak doğru olmazdı.
• Fakat algoritmalarda daha öncede belirtildiği gibi
kısa ve basit kelimelerle emirler verilecektir.
• Böylece uygulama yapılacak program kodlarına
adapte olmak kolaylaşacaktır.
Üçgenin Alanı
1.
2.
3.
4.
5.
6.
BAŞLA
OKU taban
OKU yükseklik
alan= (Taban X Yükseklik)/2
YAZ alan
DUR
Üçgenin Alanı
• Uzun cümleler yazmak yerine kısa basit
kelimelerle ve formülize edilmiş işlemlerle
çözüm sağlanmış oldu.
• Her algoritma BAŞLA emri ile başlar ve
DUR emriyle de biter.
• Dışarıdan verilmesi gereken bilgiler için
OKU, sonuçları göstermek içinde YAZ
emri kullanılabilir.
Örnek: İki sayıyı toplamak için gerekli
programa ait algoritmanın
oluşturulması.
Algoritma:
Başla
Birinci sayıyı gir
İkinci sayıyı gir
İki sayının
toplamını yap
5. Toplamın
değerini yaz
6. Bitir
1.
2.
3.
4.
1.
2.
3.
4.
5.
6.
Başla
X değerini gir
Y değerini gir
toplam = X+Y
toplam’ ı yaz
Bitir
Örnek :
• Beş sayının toplamını ve ortalamasını
veren
programa
ait
algoritmanın
oluşturulması
• Toplam adı için Toplam
• Ortalama adı için Ort
• Girilen sayılar için X
• Arttırma için Sayac kullanılırsa
Algoritma:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Başla
Toplam = 0, Sayac = 0
X’i gir
Toplam= Toplam+X
Sayac = Sayac +1
Eğer Sayac <5 ise 3’e git
Ort= Toplam/5
Toplam ve Ort değerlerini yaz
Bitir
4. Uygulama
• Algoritması oluşturulan programın
herhangi bir dilin (Basic, C, Fortran…)
kurallarına uyarak ve komutlarını
kullanarak yazılma aşamasıdır.
• Sözde kod (Pseudocode), kullanılan
programlama diline dönüştürülür.
5. Sınama
• Program yazıldıktan sonra, uygun aşamalardan
geçirilip, verilen girdilere göre uygun çıktıları
üretip üretmediği kontrol edilir.
• Bu aşamada program girdi olarak verilebilecek
tüm değerlere göre; özellikle de uç değerlere
göre sınanır.
• Örneğin girdi olarak bir tamsayı girilmesi
gereken programda, girilen sayının negatif
olması
halinde
yapılacak
işlemler
tanımlanmamış olabilir.
• Bu gibi durumlar bu aşamada gözden
geçirilmelidir.
6. Bakım
• Sınama aşamasından sonra ortaya çıkan
aksaklıklar varsa bunlar giderilir.
Akış Şemaları
Akış Şemaları (Diyagramları)
•
Herhangi bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantıksal
adımların söz veya yazı ile anlatıldığı 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
•
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.
Akış Şemaları (Diyagramları)
• Bir süreci belirleme veya bir projenin adımlarını planlama için görsel bir
sunum oluşturur.
• Proje ve süreç ile ilgili kişilere ortak bir dil veya bir referans noktası
sağlar.
• Algoritmadaki ifadeler şekillerin içerisine yazılır.
• BAŞLA ve DUR şekilleri hariç her bir şeklin anlamı belli olduğundan
içlerine tekrar anlamla aynı olacak kelime ve ifadeler yazılmaz.
Akış Şeması Şekilleri
Başlama ve bitiş işlemleri
Atama ve hesaplama işlemleri
giriş – okutma işlemleri
Araç belirtemeden
giriş ya da çıkış
yapılacağını gösterir.
görüntüleme – yazdırma işlemleri
Akış Şeması Şekilleri
Karar ve kontrol işlemleri
{eğer (koşul bildirimi veya karar)}
Bağlantı işlemleri
Akış yönünü belirten işlemler
Akış Şeması Şekilleri
Örnek
Ekrana "Merhaba" yazdıran
program
1-Başla
2-Merhaba yaz
3-Dur
BAŞLA
Merhaba
DUR
Program-1
Uyarılar...
• Akış şemalarında tek bir başlangıç simgesi olmalıdır
• Bitiş simgesi birden çok olabilir.
• Karar simgesinin haricindeki simgelere her zaman tek
giriş ve tek çıkış yolu bulunur.
• Bağlaç simgesi sayfanın dolmasından ötürü parçalanan
akış şemasının öğelerini birleştirmede kullanılır.
• Simgeler birbirleri ile tek yönlü okla bağlanırlar.
• Okların yönü algoritmanın mantıksal işlem akışını
tanımlar.
Akış Diyagramları (Şemaları)
Akış Diyagramları (Şemaları)
Akış Diyagramları (Şemaları)
Akış Diyagramları (Şemaları)
Akış şemaları içerik ve biçimlerine göre genel olarak üç
grupta sınıflandırılabilirler.
> Doğrusal Akış Şemaları
> Mantıksal Akış Şemaları
> Döngüsel (iteratif, çevrimli, yineli) Akış Şemaları
Doğrusal Akış Şemaları
İş akışları giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup
kapsamına girer.
Örnek 1: İki sayının çarpımının bulunmasıyla ilgili algoritma aşağıdaki
gibidir.
Değişkenler:
A: Birinci sayıyı
B: İkinci sayıyı
C: İki sayının çarpımını (A*B) göstersin
Algoritma:
Adım 1 – Başla
Adım 2 – A’yı oku
Adım 3 – B’yi oku
Adım 4 – C=A*B’yi hesapla
Adım 5 – C’yi yaz
Adım 6 - Dur
Doğrusal Akış Şemaları
• Örnek 2: Klavyeden girilen İki sayının toplamını
hesaplayıp yazan algoritma ve akış şemasını
hazırlayınız.
(X: Birinci sayı, Y: İkinci sayı, Z: toplam)
A1 : Başla
A2 : Klavyeden oku X
A3 : Klavyeden oku Y
A4 : Hesapla Z = X + Y
A5 : Yaz Z
A6 : Dur
Örnek 2 – Akış Şeması
BAŞLA
OKU X
OKU Y
Z=X+Y
YAZ Z
DUR
ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız.
ALGORİTMA
1. BAŞLA
2. OKU taban
AKIŞ ŞEMASI
BAŞLA
Taban
3. OKU yukseklik
4. alan= (Taban X
Yükseklik
Yukseklik)/2
alan = (taban X yukseklik)/2
5. YAZ alan
6. DUR
alan
DUR
Mantıksal Akış Şemaları
• Geniş ölçüde mantıksal kararları içeren akış
şemalarıdır. Hesap düzenleri genellikle basittir.
Örnek 3: Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma
durumunu hesaplayıp yazdıran algoritma ve akış şemasını
hazırlayınız.
(S : Sayı)
A1 : Başla
A2 : Oku S
A3 : Eğer S > 0 ise “Pozitif” yaz,
A4 : Eğer S < 0 ise “Negatif” yaz,
A5 : Eğer S = 0 ise “Sıfıra eşit” yaz,
A6 : Dur
Örnek 3 – Mantıksal Akış Şemaları
BAŞLA
OKU S
S<0
S>0
YAZ
“Pozitif”
YAZ
“Negatif
”
S:0
S=0
YAZ
“Sıfıra eşit”
DUR
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.
Döngüsel Akış Şemaları
• Örnek 4: Klavyeden girilen bir yazıyı 5 kez yazdıran
algoritma ve akış şemasını oluşturunuz.
( Y : Yazı, S : Sayaç )
A1 : Başla
A2 : Oku Y
A3 : Yaz Y
A4 : S = S + 1
A5 : Eğer S < 5 ise A3 e git
A6 : Dur
Örnek 4 – Döngüsel Akış Şemaları
BAŞLA
OKU Y
S = 0 , 5, 1
Sayısı bilinen
döngülerde;
başlangıç
değeri, son
değer, artış
sayısı
YAZ Y
S
Döngünün çalıştığı
bölüm
DUR
Algoritma ve
Akış Şemaları ile ilgili
Ek Bilgiler
Algoritmalarda kullanılan Operatörler
Algoritmalarda Matematiksel işlemler
Algoritmalarda Matematiksel işlemler
Algoritmalarda Matematiksel işlemler
Algoritmalarda Matematiksel işlemler
Algoritmalarda Kullanılan Terimler
1) Tanımlayıcı
2) Değişken
3) Sabit
4) Aktarma
5) Sayaç
6) Döngü
7) Ardışık Toplama
8) Ardışık Çarpma
Algoritmalarda Kullanılan Terimler
1) Tanımlayıcı
– Programcı tarafından oluşturulur.
– Programdaki değişkenleri, sabitleri, kayıt alanlarını, özel bilgi tiplerini
vb.
adlandırmak için kullanılan kelimeler
– Tanımlayıcılar, yerini tuttukları ifadelere çağrışım yapacak şekilde
seçilmelidir.
– İngiliz alfabesindeki A-Z veya a-z arası 26 harften
– 0-9 arası rakamlar kullanılabilir
– Sembollerden sadece alt çizgi (_) kullanılabilir.
– Tanımlayıcı isimleri harfle veya alt çizgiyle başlayabilir.
– Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan
oluşamaz.
Algoritmalarda Kullanılan Terimler
2-)Değişken
• Programın her çalıştırılmasında, farklı değerler alan
bilgi/bellek alanlarıdır.
• Değişken isimlendirilmeleri, yukarıda sayılan tanımlayıcı
kurallarına uygun biçimde yapılmalıdır.
Örneğin ;
• Bir ismin aktarıldığı değişken ; ad
• Bir isim ve soy ismin aktarıldığı değişken; adsoyad
• Ev telefon no sunun aktarıldığı değişken; evtel
• Ev adresinin aktarıldığı değişken; evadres
• İş adresinin aktarıldığı değişken; isadres
3-) Sabit
Programdaki değeri değişmeyen ifadelere “sabit” denir.
“İsimlendirme kuralları”na uygun olarak oluşturulan sabitlere,
sayısal veriler doğrudan;
Algoritmalarda Kullanılan Terimler
Algoritmalarda Kullanılan Terimler
4-) Aktarma
Algoritmalarda Kullanılan Terimler
5-) Sayaç
Algoritmalarda Kullanılan Terimler
Algoritmalarda Kullanılan Terimler
6-) Döngü
•Bir çok programda bazı işlemler, belirli ardışık
değerlerle gerçekleştirilmekte veya belirli sayıda
yaptırı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 1000 arasındaki tek sayıların
toplamını hesaplayan programda T=1+3+5 ….
yerine 1 ile 1000 arasında ikişer artan bir döngü
açılır ve döngü değişkeni ardışık toplanır.
Algoritmalarda Kullanılan Terimler
Algoritmalarda Kullanılan Terimler
7-) Ardışık Toplama
Programlarda, aynı değerin üzerine yeni değerler eklemek için
kullanılır.
Toplam değişkeni=Toplam değişkeni + Sayı
Örnek: Klavyeden girilen 5 sayısının ortalamasını bulan programın
algoritması.
1. Başla
2. T=0
3. S=0
4. Eğer S>4 ise git 9
5. S=S+1
6. Sayıyı (A) gir
7. T=T+A
8. Git 4
9. Ortalama=T/5
10. Yaz Ortalama
11. Dur
Algoritmalarda Kullanılan Terimler
8-) Ardışık Çarpma
Ardışık veya ardışıl çarpma işleminde; aynı değer, yeni
değerlerle çarpılarak eskisinin üzerine aktarılmaktadır.
Çarpım değişkeni=Çarpım değişkeni * Sayı
Örnek: Klavyeden girilen N sayısının faktöriyelini hesaplayan
programın algoritmasını yazınız.
1. Başla
2. N sayısını gir
3. Fak=1
4. S=0
5. Eğer S>N-1 ise git 9
6. S=S+1
7. Fak=Fak*S
8. Git 5
9. Yaz Fak
10. Dur
Akış Diyagramlarında Kullanılan Temel Şekiller
Akış Diyagramlarında Kullanılan Temel Şekiller
Akış Diyagramlarında Kullanılan Temel Şekiller
ÖRNEK UYGULAMALAR
ÖRNEK :
• Çalıştığı gün sayısı ve yevmiyesi girilen
işçinin maaşını hesaplayan algoritmayı ve
akış diyagramını yapınız.
PROBLEM
• Bu program çalıştığı gün sayısı ve günlük
yevmiyesi
verilen
işçinin
maaşını
bulacaktır.
• Maaş hesaplanırken işçinin çalıştığı gün
sayısı ile günlük yevmiyesi çarpılarak
maaş hesaplanabilir.
ANALİZ
• Girdiler:
– Gün
– Yevmiye
• Çıktılar:
– Maaş
• İlişki
– Maas=Gun X Yevmiye
TASARIM
ALGORİTMA
1.
2.
3.
4.
5.
BAŞLA
OKU gun, yevmiye
maas=gun x yevmiye
YAZ maas
DUR
AKIŞ ŞEMASI
BAŞLA
Gun, yevmiye
maas = gun X yevmiye
maas
DUR
Örnek: Klavyeden girilen 3 sayının aritmetik
ortalamasını bulan programın algoritma ve akış
şemasını yazın.
BAŞLA
Algoritma;
1. Oku S1,S2 ve S3
2. Toplam=S1+S2+S3
3. Ort =Toplam/3
4. Yaz “Ortalama=”;Ort
5. Dur
Yerine
Ort = (S1+S2+S3)/3
yazılabilir.
10,15,8 değerleri için bellekteki durum ve
ekran çıktısı:
S1
S2
S3
Toplam
Ort
10
15
8
33
11
S1,S2,S3
Toplam =S1+S2+S3
Ort = Toplam/3
Ort
DUR
Ekran Çıktısı
Ortalama=11
Örnek:Ekrana 5 defa “Pamukkale” yazdıran
programın algoritma ve akış şemasını yazın?
BAŞLA
Algoritma;
1. Basla
2. sayac=0
3. YAZ “Pamukkale”, sayac
4. sayac=sayac+1
5. Eğer sayac<5 GİT 3
6. DUR
Sayac=0
Pamukkale
sayac=sayac+1
sayac<5
mi?
E
H
DUR
Örnek: Klavyeden girilen 2 sayıyı karşılaştırıp
sonucu ekrana yazdıran algoritma ve akış
şemasını yazın?
Algoritma;
1. BAŞLA
2. OKU sayi1,sayi2
3. EĞER sayi1>sayi2 İSE YAZ “Sayi1 sayi2’den
büyüktür”
4. Değilse EĞER sayi2>sayi1 İSE YAZ “Sayi2 sayi1’den
büyüktür”
5. DEĞİL İSE YAZ “Sayi1 sayi2’ye eşittir”
6. BİTİR
Örnek: Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana
yazdıran algoritma ve akış şemasını yazın?
Başla
Sayi1, Sayi2
Sayi1> Sayi2
E
Sayi1>
Sayi2 mi?
H
Sayi2> Sayi1
E
Sayi2>
Sayi1 mi?
H
Sayi2= Sayi1
Bitir
Örnek:
Bir öğrencinin numarası, adı ve soyadı,
vize notu ve final notu girilmektedir.
Verilere göre vize notunun %30'ü ile final
notunun %70'i alınarak ortalaması
hesaplanmak isteniyor. Algoritmayı
maddeler halinde yazınız.
Çözüm:
Örnek:
Klavyeden girilen herhangi bir N sayısının
faktöriyelini bulan programın algoritmasını
ve çalışmasını inceleyelim..
Çözüm:
Ev Ödevi 1:
Klavyeden girilen 1-1000 arasındaki asal sayıları
ve kaç adet olduğunu bulup bunları ekrana
yazdıran programın algoritmasını maddeler
halinde yazınız.
Klavyeden 3 kenarı da girilen bir üçgenin çeşidini
(eşkenar, ikizkenar, çeşitkenar) bulan programın
algoritmasını maddeler halinde yazınız.
1-100 arasındaki
1.
2.
3.
i.
ii.
iii.
Tüm sayıların toplamını
Çift sayıların toplamını
Tek sayıların toplamını bulan programın algoritmasını
maddeler halinde yazınız.
Ev Ödevi 1: (devam)
Girilen sıcaklık değerine göre bir suyun katı, sıvı ve gaz olma
durumunu gösteren algoritmanın akış şemasını çiziniz.
5. Bankaya aylık getirisi %8 ile 1000 TL yatırılmıştır. Buna göre;
a) 10 ay sonrasında paranın ne kadar olacağını ve aynı zamanda
her ay sonunda ne kadar olduğunu ekrana yazan algoritmanın
akış şemasını çiziniz.
b) Paranın kaç ay sonra 5000 TL olacağını hesaplayan
algoritmanın akış şemasını çiziniz.
6. Dışarıdan girilen n adet sayının karesinin toplamını alan
algoritmanın akış şemasını çiziniz.
7. Dışarıdan girilen 20 adet sayıdan çift olanları toplayan algoritmanın
akış şemasını çiziniz.
4.

Benzer belgeler

algoritma ve akış şemaları

algoritma ve akış şemaları tüm değerlere göre; özellikle de uç değerlere göre sınanır. • Örneğin girdi olarak bir tamsayı girilmesi gereken programda, girilen sayının negatif olması halinde yapılacak işlemler tanımlanmamış o...

Detaylı

İndir

İndir X değerini gir Y değerini gir toplam = X+Y toplam’ ı yaz Bitir

Detaylı