Professional Documents
Culture Documents
Abdullah Elen
PROGRAM Soru1
BEGIN
PRINT “Merhaba Dünya!”;
END
2. Klavyeden girilen negatif bir sayıyı pozitif sayıya çeviren algoritmanın akış diyagramını çiziniz ve sözde
kod olarak yazınız.
PROGRAM Soru2
BEGIN
READ Sayi;
1
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
3. Bir dikdörtgene ait kısa ve uzun kenar ölçülerini klavyeden girilerek, bu dikdörtgenin alanını ve çevresini
hesaplayarak sonuçları ekranda gösteren algoritmanın akış diyagramını çiziniz ve sözde kod olarak
yazınız.
PROGRAM Soru3
BEGIN
READ a;
READ b;
Alan = a*b;
Cevre = 2*(a+b);
4. Klavyeden girilen bir sayının karesini, küpünü, karekökünü ve küp kökünü bulan algoritmanın akış
diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru4
BEGIN
READ Sayi;
Kare = Sayi^2;
Kup = Sayi^3;
KareKok = Sayi^(1/2);
KupKok = Sayi^(1/3);
END
2
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
5. Klavyeden girilen bir sayı için; girilen değer 100’den küçükse karekökünü, diğer durumlarda küp kökünü
bulan ve sonucu ekranda gösteren algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru5
BEGIN
READ Sayi;
*** Not: Negatif bir sayının karekökü olmadığı için (Sayi >= 0) kontrolünün yapılması gerekir.
6. Klavyeden girilen bir sayının “Asal Sayı” olup olmadığını bulan ve sonucu ekranda gösteren algoritmanın
akış diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru6
BEGIN
READ Sayi;
SET Sayac = 0;
IF (Sayac = 0) THEN
PRINT ”Asal Sayı”;
ELSE
PRINT ”Asal Sayı Değil!”;
ENDIF
END
*** Burada FOR döngüsündeki X kontrol değişkeni, 2’den (Sayi-1)’e kadar olan değerleri alır. Asal sayı
şartını sağlayan 1 ve sayının kendisi işleme tabii tutulmamıştır. Dikkat ediniz!
3
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
PROGRAM Soru6
BEGIN
READ Sayi;
SET S=0, X=2;
IF (S = 0) THEN
PRINT ”Asal Sayı”;
ELSE
PRINT ”Asal Sayı Değil!”;
ENDIF
END
7. Klavyeden girilen pozitif bir tam sayının tam bölenlerini bulan ve sonucu ekranda gösteren algoritmanın
akış diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru7
BEGIN
READ Sayi;
PROGRAM Soru7
BEGIN
READ Sayi;
SET Sayac = 1;
4
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
8. Klavyeden girilen pozitif bir tamsayının “Tau Sayısı” olup olmadığını bulan algoritmanın akış diyagramını
çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru8
BEGIN
READ Sayi;
SET S = 0, X = 1;
*** Burada S değişkeni, klavyeden girilen sayıya ait pozitif tam bölenlerin adedini temsil etmektedir. X
değişkeni ise hem FOR hem de WHILE döngüsü için kontrol değişkeni olarak kullanılmıştır.
5
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
9. Klavyeden girilen pozitif bir tamsayının, “Mükemmel Sayı” olup olmadığını bulan algoritmanın akış
diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru9
BEGIN
READ Sayi;
SET Top = 0;
PROGRAM Soru9
BEGIN
READ Sayi;
SET Top = 0, X = 1;
*** Burada Top değişkeni, klavyeden girilen sayıya ait pozitif bölenlerinin toplamını temsil etmektedir. Ancak
“Mükemmel Sayı” tanımına göre pozitif tam bölenlerden sayının kendisi hariç olduğu unutulmaması gerekir.
Bunun sonucu olarak, problemin çözümündeki döngü yapıları; FOR yapısı için (Sayi - 1)’e kadar, WHILE yapısı
için de (X < Sayi) şartı sağlandığı sürece çalışacaktır.
6
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
10. Klavyeden girilen üç basamaklı pozitif bir tamsayının “Palindromik Sayı” olup olmadığını bulan ve
sonucu ekranda gösteren algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru10
BEGIN
READ Sayi;
11. Klavyeden girilen üç basamaklı bir sayının “Dudeney Sayısı” olup olmadığını bulan ve sonucu ekranda
gösteren algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru11
BEGIN
READ Sayi;
SET TopKup = 0;
7
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
12. Klavyeden girilen üç basamaklı pozitif bir tamsayıyı ekrana tersten yazdıran algoritmanın akış
diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru12
BEGIN
READ Sayi;
13. Klavyeden girilen üç farklı sayıdan ortanca olan sayıyı bulup ekranda gösteren algoritmanın akış
diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru13
BEGIN
READ A, B, C;
14. Klavyeden kilo (kg) ve boy (m) bilgileri girilerek, aşağıda verilen tabloya göre kilo durumunu
değerlendirerek sonucu ekranda gösteren algoritmanın akış diyagramını çiziniz ve sözde kod olarak
yazınız.
8
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
PROGRAM Soru14
BEGIN
READ Boy, Kilo;
SET BKI = 0.0
9
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
15. Bir 𝑦 = 𝑓(𝑥) fonksiyonu, grafiksel olarak aşağıdaki gibi verilmektedir. Buna göre klavyeden girilen 𝑥
değeri için 𝑦’yi hesaplayıp sonucu ekranda gösteren algoritmanın akış diyagramını çiziniz ve sözde kod
olarak yazınız.
PROGRAM Soru15
BEGIN
READ x;
SET y = 0;
IF (x < 0) THEN
y = 1;
ELSE
IF (x>=0 AND x<=2) THEN
y = x;
ELSE
IF (x>2 AND x<=4) THEN
y = 3;
ELSE
IF (x>4) THEN
y = 4 - x;
ENDIF
ENDIF
ENDIF
ENDIF
PRINT y;
END
16. Fibonacci sayıları “0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …” şeklindeki sayılardan oluşan bir dizidir. Bu
dizideki ilk iki sayı “0, 1” dir ve sonra gelen sayılar, kendisinden önceki iki sayının toplamıdır. Buna göre,
Fibonacci dizisinin ilk 10 elemanını bulan ve sonuçları ekranda gösteren algoritmanın akış diyagramını
çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru16
BEGIN
SET Top = 0;
SET S1 = 0, S2 = 1;
FOR X: 1 TO 8 STEP 1
Top = S1 + S2;
S1 = S2;
S2 = Top;
PRINT Top;
ENDFOR
END
*** Bu soru, ardışık ve bağlantılı işlemler için değişken kullanımı açısından zor sorulardan birisidir.
10
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
17. 10’dan 99’a kadar olan tamsayıların, sayı değerleri toplamı tek olanları ekranda gösteren algoritmanın
akış diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru17
BEGIN
SET TOP=0, B1=0, B2=0;
FOR X: 10 TO 99 STEP 1
B1 = X mod 10;
B2 = X / 10;
TOP = B1 + B2;
18. Klavyeden girilen üç basamaklı bir sayının “Faktorion Sayı” olup olmadığını bulan ve sonucu ekranda
gösteren algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız. Bu soruyu cevaplarken,
faktöriyel hesaplayan kısmı alt yordam olarak belirleyiniz.
PROGRAM Soru18
BEGIN
READ Sayi;
Top = FaktoriyelHesapla(B1) +
FaktoriyelHesapla(B2) +
FaktoriyelHesapla(B3);
PROGRAM FaktoriyelHesapla(Sayi)
BEGIN
SET Sonuc = 1;
RETURN Sonuc;
END
11
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
19. 𝑎𝑥² + 𝑏𝑥 + 𝑐 = 0 şeklinde verilen II. derece denklemin köklerini bulan ve sonucu ekranda gösteren
algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru19
BEGIN
READ a, b, c;
SET Delta = 0;
SET X1 = 0, X2 = 0;
12
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
20. Karabük Üniversitesi sınav yönetmeliğine göre hazırlanmış olan not baremi yandaki gibidir. Buna göre,
klavyeden girilen 0-100 arasındaki bir sınav notu için harf notunu bulan algoritmanın sözde kodunu
yazınız.
PROGRAM Soru20
BEGIN
READ SN;
13
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
21. Bir öğrencinin transkriptindeki almış olduğu N adet dersin kredisi ve harf notu girilerek GANO (Genel
Akademik Not Ortalaması) değerini dörtlük katsayısına göre hesaplayan algoritmanın sözde kodunu
yazınız.
PROGRAM Soru21
BEGIN
READ N;
SET AN = 0.00;
SET TopKredi = 0.00;
FOR X: 1 TO N STEP 1
READ Kredi, HarfNotu;
AN = AN + (Kredi * DortlukNotuBul(HarfNotu));
TopKredi = TopKredi + Kredi;
ENDFOR
GANO = AN / TopKredi;
PRINT GANO;
END
PROGRAM DortlukNotuBul(HNotu)
BEGIN
SET Sonuc = 0.00;
CASE HNotu OF
“AA”: Sonuc = 4.00;
“AB”: Sonuc = 3.75;
“BA”: Sonuc = 3.33;
“BB”: Sonuc = 3.00;
“BC”: Sonuc = 2.75;
“CB”: Sonuc = 2.33;
“CC”: Sonuc = 2.00;
“CD”: Sonuc = 1.75;
“DC”: Sonuc = 1.33;
“DD”: Sonuc = 1.00;
“FF”: Sonuc = 0.00;
ENDCASE
RETURN Sonuc;
END
*** Bu soru, ödevin en zor sorularından birisidir. Öğrencinin gerçek bir problemin çözümüne yönelik strateji
geliştirmesinde önemli katkı sağlar. Bunun nedenlerini şöyle sıralayabiliriz; geliştirilecek algoritmanın
bölünerek alt yordamlara ayrılabilmesi, verilen tablo değerlerine (not baremi) göre giriş ve çıkış parametreleri
için senaryo belirlenebilmesi, seri olarak yapılan veri girişlerinin organizasyonu gibi unsurların bir araya
gelerek oluşturduğu karmaşık bir yapı olmasıdır.
Bir sonraki sayfada, bu sorunun II. yöntemi bulunmaktadır. Ancak çözüm olarak I. yöntem önerilir!
14
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
II. Yöntem:
PROGRAM Soru21
BEGIN
READ N;
SET AN = 0.00;
SET TopKredi = 0.00;
FOR X: 1 TO N STEP 1
READ Kredi, HarfNotu;
SET DortlukNot = 0.00;
CASE HarfNotu OF
“AA”: DortlukNot = 4.00;
“AB”: DortlukNot = 3.75;
“BA”: DortlukNot = 3.33;
“BB”: DortlukNot = 3.00;
“BC”: DortlukNot = 2.75;
“CB”: DortlukNot = 2.33;
“CC”: DortlukNot = 2.00;
“CD”: DortlukNot = 1.75;
“DC”: DortlukNot = 1.33;
“DD”: DortlukNot = 1.00;
“FF”: DortlukNot = 0.00;
ENDCASE
AN = AN + (Kredi * DortlukNot);
TopKredi = TopKredi + Kredi;
ENDFOR
GANO = AN / TopKredi;
PRINT GANO;
END
22. 0 ile 100 arasındaki Tau sayılarını (Bkz. Soru 8) bulan ve sonucu ekranda listeleyen algoritmanın akış
diyagramını çiziniz ve sözde kod olarak yazınız.
PROGRAM Soru22
BEGIN
FOR M: 1 TO 100 STEP 1
SET S = 0;
FOR X: 1 TO M STEP 1
IF (M mod X = 0) THEN
S = S + 1;
ENDIF
ENDFOR
IF (M mod S = 0) THEN
PRINT M;
ENDIF
ENDFOR
END
23. Klavyeden girilen 4 basamaklı binary sayıyı decimal sayıya çeviren ve sonucun tek ya da çift sayı
olduğunu ekranda gösteren algoritmayı sözde kod olarak yazınız.
15
TBP101 – Programlama Temelleri Öğr. Gör. Dr. Abdullah Elen
PROGRAM Soru23
BEGIN
READ Binary;
SET Sonuc = 0;
B1 = Binary mod 2;
B2 = (Binary / 10) mod 2;
B3 = (Binary / 100) mod 2;
B4 = (Binary / 1000) mod 2;
24. Klavyeden girilen 0-255 arasındaki bir sayıyı binary sayıya çeviren ve sonucun kaç basamak olduğunu
ekranda gösteren algoritmayı sözde kod olarak yazınız. İlaveten, 0’dan küçük veya 255’ten büyük bir
sayı girildiğinde ekrana “Geçersiz bir sayı girdiniz!” yazdırınız.
PROGRAM Soru24
BEGIN
READ Sayi;
SET Sayac = 1;
PRINT (Sayi);
PRINT (Sayac);
ENDIF
END
S F
16 9 1
6 9
0 3 14
0 16
16