ALGORİTMA SORULARI VE ÇÖZÜMLERİ
Programlama Temelleri dersinde gösterilen algoritma konusunu daha iyi kavrama adına derste işlediğimiz örneklerin haricinde ekstra örneklere çalışarak ve ufuk açıcı sorulara biraz kafa yorarak algoritmayı daha iyi öğreneceksiniz.
Algoritmayı kafasında iyi oturtan ve öğrenen,gerçek kodlamaya geçtiğinde daha rahat kod yazma imkanı bulacaktır.
Algoritma örnekleri ve yazılıya hazırlık soruları
ALGORİTMA ÖRNEKLERİ
ÖRNEK 1: Klavyeden okunan bir sayının 10 fazla ve 10 eksiğini bulup yazan programın algoritma ve akış şeması şöyledir.
Girdi è Bir sayı (a)
Çıktı è Sayının 10 fazlası (fazla), sayının 10 eksiği (eksik)
1. BAŞLA
2. OKU a
3. fazla = a + 10
4. eksik = a – 10
5. YAZ fazla, eksik
6. BİTİR
Ö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)
Girdi: 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
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
ÖRNEK 3: Kenar uzunlukları verilen bir dik üçgenin hipotenüs uzunluğunu hesaplayan programa ait algoritmanın hazırlanması. (Kenar uzunlukları negatif olarak girildiği durumda veri girişi tekrarlanacaktır)
Girdi: Kısa kenar (a), Uzun Kenar (b)
Çıktı: Hipotenüs (hip)
İşlem: kareler toplamı (a2 + b2) (karetop)
1. BAŞLA
2. OKU a
3. a < 0 ise 2. adımı tekrarla
4. OKU b
5. b < 0 ise 4. adımı tekrarla
6. karetop = (a*a) + (b*b)
7. hip = karetop değerinin karekökü
8. YAZ hip
9. BİTİR
ÖRNEK 4: İki sayının toplamlarının karesini ve küpününü hesaplayıp yazan akış şeması şöyledir.
Girdi è Birinci sayı (a), İkinci sayı (b)
Çıktı è Toplam karesi(topkare), Toplam küpü(topküp)
İşlem è Toplam
1. BAŞLA
2. OKU a,b
3. Toplam = a + b
4. topkare = toplam*toplam
5. topküp = topkare * toplam
6. YAZ topkare, topküp
7. BİTİR
ÖRNEK 5: 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.
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
ÖRNEK 6: Aracın otopark ücretinin hesaplanması. Araçların en fazla 24 saat kaldığını varsayın. (Ücretlendirme: 0 - 2 saat 150 bin, 2 - 8 saat 300 bin, 8-24 saat 500 bin)
1. BAŞLA
2. OKU saat
3. EĞER saat>0 ve saat <= 2 ise ücret=150 TL.
4. EĞER t<=8 ve t>2 ise ücret = 300 TL
5. DEĞİLSE ücret = 500 TL
6. YAZ ücret
7. BİTİR
1. BAŞLA
2. OKU saat
3. EĞER saat>0 ve saat <= 2 ise ücret=150 TL.
4. EĞER t<=8 ve t>2 ise ücret = 300 TL
5. DEĞİLSE ücret = 500 TL
6. YAZ ücret
7. BİTİR
ÖRNEK 7: Beş sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması.
Toplam adı için Top, Ortalama adı için Ort, Girilen sayılar için X, Arttırma için Sayac değişkenleri kullanılırsa.
1. BAŞLA
2. Top = 0, Sayac = 0
3. OKU X
4. Top= Top+X
5. Sayac = Sayac +1
6. EĞER Sayac <5 İSE GİT 3.Adım
7. Ort= Top/5
8. YAZ Top, Ort
9. BİTİR
ÖRNEK 8: 20'den 50'ye kadar olan sayıların toplamını bulan algoritma yazınız.
1. BAŞLA
2. S=20,T=0 (Başlangıçta S=20 ve T=0 olsun )
3. T=T+S (T ile S’yi topla ardından sonucu T’ye eşitle)
4. S=S+1 (Sayıyı bir artır.)
5. S<50 ise GİT 3.adım (Eğer sayı 50'den küçük ise 3.Adım’a git)
6. YAZ T (T'nin değerini göster.)
7. BİTİR
1. BAŞLA
2. S=20,T=0 (Başlangıçta S=20 ve T=0 olsun )
3. T=T+S (T ile S’yi topla ardından sonucu T’ye eşitle)
4. S=S+1 (Sayıyı bir artır.)
5. S<50 ise GİT 3.adım (Eğer sayı 50'den küçük ise 3.Adım’a git)
6. YAZ T (T'nin değerini göster.)
7. BİTİR
ÖRNEK 9: Girilen 3 tamsayıdan en büyüğünü bulan algoritma.
Enb ->en büyük sayı
1. BAŞLA
2. OKU a,b,c
3. enb = a (klavyeden girilen a değerine enb varsayalım)
4. EĞER enb < b İSE enb = b (eğer varsayımımız yanlışsa b’yi enb’ye ata)
5. EĞER enb < c İSE enb = c (eğer varsayımımız yanlışsa c’yi enb’ye ata)
6. YAZ enb
7. BİTİR
ÖRNEK 10: Girilen bir tamsayının tek ya da çift olduğunu bulan algoritma.
(Tam -> parantez içindeki işlemi sonucunu tam sayıya çeviren özel fonksiyondur.)
1. BAŞLA
2. OKU a
3. b = tam (a/2)*2 ( (a/2) sayısının tam kısmını alır ve 2 ile çarpar)
4. EĞER b = a ise YAZ “sayı çift” (eğer a çift ise, tam kısmı alındığında 3.adım sonucu b=a olur)
5. DEĞİLSE YAZ “sayı tek”
6. BİTİR
ÖRNEK 11: 1 ile 100 arasındaki tam sayılardan 2 katının 1 fazlası 5 ile tam bölünebilen kaç sayı bulunduğunu bulan algoritma.
i è sayılar, sayac è şartı sağlayan sayıların sayısı.
1. BAŞLA
2. i = 1, sayac = 0
3. k = i*2 + 1
4. a = tam (k/5)*5
5. EĞER a = k İSE sayac = sayac + 1
6. EĞER i = 100 İSE GİT 8.Adım
7. i = i+1 ve GİT 3.Adım
8. YAZ sayac
9. BİTİR
ÖRNEK 12: Klavyeden girilen,bir öğrencinin numarasını,ismini ve programlama dersinin 3 yazılı sınavından aldığı notları okuyan, bu notların aritmetik ortalamasını bulan,eğer ortalaması 50'ye eşit veya 50'den büyükse ekrana numara,isim,notlar ve yazılı notlarının ortalamasını,küçükse numara,isim ve "tekrar" mesajı yazan programın algoritmasını yazınız.
DeğişkenlerINO:öğrencinin numarasını, AD:öğrencinin ismini, VIZE1:1.vize sınavını,
VIZE2:2.vize sınavını,VIZE3:3.vize sınavını,VIZORT:üç vize sınavının aritmetik ortalamasını
VIZTO:üç vizenin toplamını göstersin.
1- BAŞLA
2- OKU INO,AD,VIZE1,VIZE2,VIZE3
3- VIZTO=(VIZE1+VIZE2+VIZE3)
4- VIZORT=VIZTO/3
5- EĞER VIZORT>=50 İSE GİT 6.Adım
6- YAZ INO,AD,VIZE1,VIZE2,VIZE3,VIZORT
7- DEĞİLSE YAZ INO, AD ve “TEKRAR”
8 BİTİR
DeğişkenlerINO:öğrencinin numarasını, AD:öğrencinin ismini, VIZE1:1.vize sınavını,
VIZE2:2.vize sınavını,VIZE3:3.vize sınavını,VIZORT:üç vize sınavının aritmetik ortalamasını
VIZTO:üç vizenin toplamını göstersin.
1- BAŞLA
2- OKU INO,AD,VIZE1,VIZE2,VIZE3
3- VIZTO=(VIZE1+VIZE2+VIZE3)
4- VIZORT=VIZTO/3
5- EĞER VIZORT>=50 İSE GİT 6.Adım
6- YAZ INO,AD,VIZE1,VIZE2,VIZE3,VIZORT
7- DEĞİLSE YAZ INO, AD ve “TEKRAR”
8 BİTİR
ÖRNEK 13: Klavyeden girilen iki sayıdan en büyüğünü bulup gösteren algoritmayı yazınız.
1. BAŞLA
2. OKU S1,S2 (İlk sayıyı gir ; ;İkinci sayıyı gir.)
1. BAŞLA
2. OKU S1,S2 (İlk sayıyı gir ; ;İkinci sayıyı gir.)
3. S1>S2 ise GİT 4.adım (Sayı 1 sayı 2'den küçükse Adım 4'e git.)
4. S2>S1 ise GİT 5.adım (Sayı 2 sayı 1'den küçükse Adım 5'e git.)
5. YAZ S1 (sayı 1 değerini göster)
6. YAZ S2 (Sayı 2 değerini göster)
7. BİTİR
6. YAZ S2 (Sayı 2 değerini göster)
7. BİTİR
ÖRNEK 14: Bir tamsayının faktoriyelini hesaplayınız.
Girdi : Bir tamsayı
Çıktı : sayının faktoriyel
İlgili formul: Faktoriyel(n)=1*2*...*n
Girdi : Bir tamsayı
Çıktı : sayının faktoriyel
İlgili formul: Faktoriyel(n)=1*2*...*n
1. 1.BAŞLA
2. 2.OKU n (diyelim n=4 girilmiş olsun)
3. 3. F=1
4. F=F*n (İlkdeğer=4 ikincideğer=4*3 ucuncudeğer=4*3*2)
5. n= n-1 (ilkdeğer=3 ikincideğer=2 ucuncudeğer=1)
6. EĞER n >1 İSE GİT 4.Adım (n 1’den büyük olduğu müddetçe 4.adıma git)
7. YAZ F
8. BİTİR
ÖRNEK 15: Bilgisayara girilen 50 öğrencinin adını, soyadını ve sınav notunu kullanarak en yüksek not alan öğrencinin adını, soyadını, en düşük not alan öğrencinin adını, soyadını yazan programın algoritmasını kodlayınız. (YN=Yüksek not, DN= Düşük not)
1. BAŞLA
2. I = 0
3. YN = 0
4. DN = 100
5. I = I + 1
6. Oku AD, SOY, NOTU
7. Eğer notu > YN ise YN = Notu, YAD = AD, YSOY=SOY
8. Eğer notu < DN ise DN= Notu, DAD= AD, DSOY=SOY
9. Eğer I<50 ise GİT 5.ADIM
10. Yaz YAD, YSOY, DAD, DSOY
11. BİTİR
ÖRNEK 16: 1-100 arasındaki çift sayıların toplamını bulan programın algoritmasını yazınız
1. BAŞLA
2. Sayac=2, Toplam=0
3. Toplam=Toplam+Sayac
4. Sayac=Sayac+2
5. EĞER Sayac<=100 İSE GİT 3.Adım
6. YAZ “1-100 Arası Çift Sayıların Toplamı=”, Toplam
7. BİTİR
1. BAŞLA
2. Sayac=2, Toplam=0
3. Toplam=Toplam+Sayac
4. Sayac=Sayac+2
5. EĞER Sayac<=100 İSE GİT 3.Adım
6. YAZ “1-100 Arası Çift Sayıların Toplamı=”, Toplam
7. BİTİR
ÖRNEK 17: Klavyeden girilen iki sayıdan büyük olanını bulup ekrana yazdıran algoritma ve akış
şemasını hazırlayınız.
1) Başla
2) A ve B sayılarını OKU
3) Eğer A = B ise “A B ye eşittir‟ YAZ GİT 6
4) Eğer A > B ise “A B den büyük‟ yaz GİT 6
5) Eğer B> A ise “B A dan büyük‟ yaz GİT 6
6) Bitir
ÖRNEK 18: Bir okuldaki 35 öğretmenin maaşlarını okuyup maaş toplamını ekrana yazdıran algoritma ve akış şemasını hazırlayınız.
1) Başla
2) TM = 0
3) S = 0
4) Maas‟ı oku
5) TM = TM+ Maas
6) S = S +1
7) Eğer S < 35 ise git 4
8) Yaz TM
9) Bitir
ÖRNEK 19: Verilen kenarlarına göre bir üçgenin, ne çeşit olduğunu bulan algoritma ve akış şemasını hazırlayınız.
1) Başla
2) a, b ve c kenarlarını oku.
3) Eğer (a = b) ve (b = c) ise Yaz “eşkenar” Git 6
4) Eğer (a = c) veya (b = c) ise Yaz “ikizkenar” Git 6
5) Yaz “çeşitkenar”
6) Dur
ÖRNEK 20: Klavyeden girilen n sayısının faktoriyelini alan algoritma ve akış şemasını hazırlayınız.
1) Başla
2) N‟i oku
3) Faktor = 1
4) S = 1
5) Faktor = Faktor x S
6) Eğer S <= N ise S = S + 1 git 5
7) Yaz Faktor
8) Dur
ÖRNEK 21: 20'den 50'ye kadar olan sayıların toplamını bulan algoritma yazınız. BAŞLA
A0 --> Başla
A1 --> S=20 : T=0 (Sayı 20 T değeri 0 ile başla)
A2 --> T=T+S (T'ye sayıyı ekle T'yi göster.)
A3 --> S=S+1 (Sayıyı bir artır.)
A4 --> S<50 ise A2'ye git. (Eğer sayı 50'den küçük ise Adım 2'ye git)
A5 --> T'yi göster. (T'nin değerini göster.)
A6 --> BitirÖRNEK 22: 30 ile 90 arasındaki çift sayıların toplamını bulan algoritma yazınız.
A0 --> Başla
A1 --> S=0 : T=0 (Sayı 0, Toplam değeri 0 olsun)
A2 --> S=S+1 (Sayıyı bir artır, sayıyı göster.)
A3 --> T=T+2S+28 (28 sayısına çift sayı olması için sayıyı 2 ile çarp ve toplama ekle, toplamı göster)
A4 --> 2S+28<90 ise git A2 (Eğer Çift sayı 90 değerinden küçük ise Adım 2'ye git)
A5 --> O=T/S (Toplam değeri sayıya böl ve ortalamayı bul)
A6 --> O'yu yaz. (Ortalamayı göster)
A7 --> Bitir
A1 --> S=20 : T=0 (Sayı 20 T değeri 0 ile başla)
A2 --> T=T+S (T'ye sayıyı ekle T'yi göster.)
A3 --> S=S+1 (Sayıyı bir artır.)
A4 --> S<50 ise A2'ye git. (Eğer sayı 50'den küçük ise Adım 2'ye git)
A5 --> T'yi göster. (T'nin değerini göster.)
A6 --> BitirÖRNEK 22: 30 ile 90 arasındaki çift sayıların toplamını bulan algoritma yazınız.
A0 --> Başla
A1 --> S=0 : T=0 (Sayı 0, Toplam değeri 0 olsun)
A2 --> S=S+1 (Sayıyı bir artır, sayıyı göster.)
A3 --> T=T+2S+28 (28 sayısına çift sayı olması için sayıyı 2 ile çarp ve toplama ekle, toplamı göster)
A4 --> 2S+28<90 ise git A2 (Eğer Çift sayı 90 değerinden küçük ise Adım 2'ye git)
A5 --> O=T/S (Toplam değeri sayıya böl ve ortalamayı bul)
A6 --> O'yu yaz. (Ortalamayı göster)
A7 --> Bitir
BUNLARI SİZ ÇÖZÜN
Sıfır –0 girilinceye kadar klavyeden okutulan değerlerin ortalamasını hesaplayıp ekrana yazan programın algoritmasını yazın ve akış şemasını çiziniz.
Adınızı ve soyadınızı ekrana 10 defa yazan programın algoritmasını yazın ve akış şemasını çiziniz.
40 ile 80 arasındaki tek sayıların toplamını bulan ve ortalamasını bulan programın algoritmasını yazın ve akış şemasını çiziniz.
0 yorum:
Yorum Gönder