1. ALGORİTMA VE AKIŞ ŞEMALARI
programlama dilleri 1
- 2. hafta -
Araş. Gör. Nesibe YALÇIN
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
2. 2
Haftalık Ders Planı
― Genel Tekrar
― Sözde Kod- Akış Şeması
― Çok Boyutlu Diziler
― Dizgeler
― İşaretçiler
― Void İşaretçiler
― Dinamik Bellek Yönetimi
― Dosya İşlemleri
― Yapılar
― Yapı ve İşaretçiler
― Bitsel İşlemler
3. 3
Algoritma
― Algoritma, bir problemin çözümünde izlenecek yol anlamına
gelir ve problemin çözümünün adımlar halinde yazılmasıyla
oluşturulur.
― 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 edilmesidir.
― Algoritma, bir programlama dili değildir.
― Algoritma, genellikle matematikte ve programlamada bir işi
yapmak için tanımlanan, belli bir başlangıcı ve sonu olan, açıkça
belirlenmiş basamaklardır.
4. 4
Algoritma
Örnek: Çay demleme algoritması
1. Başla
2. Çaydanlığa su doldur.
3. Ocağı yak.
4. Çaydanlığı ocağa koy.
5. Bir süre suyun kaynamasını bekle.
6. Su kaynadı mı? Kaynamadıysa 5.adıma git. Kaynadıysa 7.adıma git.
7. Çayı demle.
8. Çaydanlığa su ilave et.
9. Çaydanlığı tekrar ocağa koy.
10. Bir süre suyun kaynamasını bekle.
11. Su kaynadı mı? Kaynamadıysa 10.adıma git. Kaynadıysa 12.adıma git.
12. Bir süre çayın demlenmesini bekle.
13. Çay demlendi mi? Demlenmediyse 12.adıma git. Demlendiyse 14.adıma git.
14. Çayı bardaklara servis yap.
15. Dur
5. 5
Algoritma
Örnek: Trafik ışıklarından otomobille geçiş algoritması
1. Başla
2. Trafik lambasına bak.
3. Lamba Yeşil yanıyor mu? Yeşil yanıyorsa 6. adıma git.
4. Lamba Sarı yanıyor mu? Sarı yanıyorsa 2. adıma git.
5. Lamba Kırmızı yanıyor mu? Kırmızı yanıyorsa 2. adıma git.
6. Geç.
7. Dur
6. 6
Algoritma
Her algoritma aşağıdaki kriterleri sağlamalıdır:
1. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
2. Çıktı : En azından bir değer üretilmeli.
3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar
içermemeli.
4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda
bitmeli.
5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği
kadar basit olmalıdır.
―Bir program için 4. özellik geçerli değildir, işletim sistemleri
gibi program sonsuza dek çalışırlar .
7. 7
Algoritma
Algoritmada 3 temel bileşen vardır:
1. Değişkenler: Dışarıdan girilen ve bizim oluşturduğumuz
değerleri tutan elemanlardır.
2. Algoritma: Gerekli adımların mantıksal bir sıra ile
yazılmasıdır.
3. Akış Diyagramı: Adımların geometrik şekillerle ve adımlar
arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir.
8. 8
Algoritma
― Örnek: Verilen bir sayının küpünün bulunmasının algoritması
Adım 1- Başla
Adım 2- Sayıyı oku
Adım 3- Sayının küpünü hesapla
Adım 4- Dur
― Değişkenler:
Sayımız= A
Sayının küpü= B
Algoritma:
Adım 1- Başla
Adım 2- A’ yı oku
Adım 3- B=A*A*A yı hesapla
Adım 4- B’ yi yaz
Adım 5- Dur
9. 9
Algoritma - Örnekler
― Vize ve final notu girilen öğrencinin başarı notunu, vize notunun
%40 ve final notunun %60’ ını alarak bulan algoritmayı yazınız.
1. Başla
2. vize, final oku
3. basarinotu=(vize*40/100+final*60/100)
4. basarinotu’ nu yaz
5. Dur
― Fiyatı girilen ürüne %18 kdv ekleyerek son fiyatı hesaplayan
algoritmayı yazınız.
1. Başla
2. fiyat oku
3. kdv=fiyat*18/100
4. sonfiyat=fiyat+kdv
5. sonfiyat’ı yaz
6. Dur
Değişkenler:
Vize, final, basarinotu
Değişkenler:
fiyat, kdv, sonfiyat
10. 10
Algoritma - Örnekler
― Karenin alan ve çevresini bulan algoritmayı yazınız.
1.Başla
2.kenar oku
3.alan=kenar*kenar
4.cevre=4*kenar
5.alan’ ı yaz
6.cevre’ yi yaz
7.Dur
11. 11
Algoritma - Örnekler
― Klavyeden girilecek iki sayıdan büyük olanından küçük
olanını çıkarıp sonucu ekrana yazacak program için algoritmayı
yazınız.
1.Başla
2.A sayısını oku
3.B sayısını oku
4. Eğer A büyüktür B ise sonuc=A-B
5.Değilse sonuc=B-A
6.sonuc’ u yaz
7.Dur
12. 12
Algoritma - Örnekler
― Klavyeden girilen doğal sayının (0-999.999 aralığındaki)
basamak sayısını bulan programın algoritmasını yazınız.
1. Başla
2. 0-999.999 aralığında sayı oku
3. Eğer (sayı>=0) && (sayı=9)
4. Yaz (‘’1 basamaklı’’)
5. Değilse Eğer (sayı>=10) && (sayı=99)
6. Yaz(‘’2 basamaklı’’)
7. Değilse Eğer (sayı>=100) && (sayı=999)
8. Yaz(‘’3 basamaklı’’)
9. Değilse Eğer (sayı>=1000) && (sayı=9999)
10.Yaz(‘’4 basamaklı’’)
11.Değilse eğer (sayı>=10.000) && (sayı=99.999)
12.Yaz(‘’5 basamaklı’’)
13.Değilse eğer (sayı>=100.000) && (sayı=999.999)
14.Yaz(‘’6 basamaklı’’)
15.Dur
13. 13
Algoritma - Örnekler
― Klavyeden girilen bir N değerine kadar olan pozitif sayıları
toplayan ve sonucu ekrana basan algoritmayı yazın.
1.Başla
2.N’ yi oku
3.toplam=0
4.X=1
5.toplam=toplam+X
6.X=X+1
7.Eğer X<=N ise 5. adıma git
8.toplam’ ı yaz
5.Dur
14. 14
Algoritma - Örnekler
― Klavyeden girilen 10 adet sayının tam bölenlerini bulup
listeleyen bir algoritma geliştiriniz.
1.Başla
2.i=1
3.dizi(i)’ yi oku
4.x=1
5.Eğer dizi(i)%x=0 ise x’ i yaz
6.x=x+1
7.Eğer x<=dizi(i) ise 5. adıma git
8.i=i+1
9.Eğer i<=10 ise 3. adıma git
10.Bitir
15. 15
Akış Şeması
― Algoritma tanımlanırken, ya bir dil kullanılmalıdır ya da
çeşitli sembolik gösterimlerden ve şemalardan yararlanılabilir.
― Algoritmayı ifade etmek için kullanılan simgesel
gösterimlerin başında akış şeması gelmektedir.
― Akış şeması, tasarlanacak algoritmanı şekilsel olarak ortaya
konulmasıdır.
21. 21
10 öğrenci için girilen nota
göre geçip kaldığını bulan
programın akış şeması
22. 22
Uygulama Örnekleri
― Dik kenarları girilen dik üçgenin hipotenüsünü hesaplayan
programın algoritma ve akış diyagramını oluşturunuz.
― Girilen işlem türüne (*, /, –, +) göre iki sayıyı işleme alıp
sonucunu ekrana yazan programın algoritma ve akış diyagramını
oluşturunuz.
― Klavyeden şifre olarak 123 girilene kadar kaç adet tahmin
yapıldığını ekrana yazan algoritma ve akış şemasını geliştiriniz.
23. 23
Uygulama Örnekleri
― Bir n değeri için şeklindeki fonksiyonun
değerini hesaplayıp ekrana algoritma ve akış şemasını
geliştiriniz.
― Bir okulda bulunan 20 sınıftaki 30'ar öğrencinin her birinin 8
dersten aldıkları notların ortalamasını bulan ve öğrenci ismi ile
not ortalamasını ekrana yazan programın algoritması ve akış
şemasını oluşturunuz. Kullanıcının girdiği 10 sayıdan sadece çift
olanları toplayıp ekrana yazdıran algoritma ve akış diyagramını
oluşturunuz.