OKU (isim)
FOR i=1 TO 5
YAZ (isim)
NEXT I
BİTİR
Yukarıda verilen kod ile ilgili aşağıdakilerden hangisi yanlıştır?
Kaynak: https://lolonolo.com/2026/04/09/algoritmalar-ve-programlamaya-giris-2024-2025-vize-sorulari-bahar/
Algoritmalar ve Programlamaya Giriş 2025 Vize Soruları (Bahar)
Algoritma geliştirilmesine yardımcı olan, bilgisayar tarafından çalıştırılmayan ve programlama dilinin yazım kurallarına bağlı kalınmasını zorunlu kılmayan o yarı biçimsel metne Kaba kod (Pseudocode) denir. Akış diyagramları ise problemi görsel olarak ifade eden, standartlaştırılmış elemanlardan oluşan ve seçimli/döngüsel yapıları gösterebilen araçlardır. Ancak bu diyagramların evrensel bir mantığı olduğu için Akış diyagramlarının ifade şekli programlama dillerine göre değişkenlik gösterir (III) ifadesi yanlıştır (Doğru olanlar I, II ve IV’tür). Ayrıca, bir akış diyagramında mantıksal olarak yalnızca bir kez kullanılabilecek (başlangıç noktasını gösteren) eleman Başla sembolüdür.
Bir algoritmanın veri miktarı (n) arttıkça tamamlaması gereken maksimum adım sayısını (ve çalışma süresinin nasıl arttığını) ifade eden ölçüte ise Zaman karmaşıklığı (Time complexity) adı verilir.
Algoritmalarda tek tırnak içerisinde yazılan tek bir harf veya sembol karakter (char) veri tipidir. Bu nedenle ‘e’ geçerli bir karakter veri tipi örneğidir (3.14 float, 205 integer, True booleandır). Programın çalışması boyunca değeri hiçbir şekilde değişmeyen ve önceden belirlenmiş verilere (örneğin %25 yıllık kira artış oranı) programlamada sabit denir; dolayısıyla bu tür bir verinin saklanmasıyla ilgili Veri, sabitte saklanır ifadesi kesin olarak söylenebilir.
Atama işlemlerinde, örneğin “bölüm_adı” değişkenine “bilgisayar_Programcılığı” string değerini atamak için çoğu dilde standart olan bölüm_adı = “bilgisayar_Programcılığı” sözdizimi (eşitlik ve tırnak işaretleriyle) kullanılır.
Koşullu yapılar (If-Else), sıralı bir algoritmadaki bazı adımların atlanmasını (I) ve bir seçim yapılmasını (II) sağlar. Ancak bu yapılar ardışık işlemi zorunlu kılmaz veya döngüleri ortadan kaldırmazlar. Bir kişinin yaşının 65 ve üzerinde olup olmadığını kontrol eden mantıksal koşul ifadesi “büyük veya eşittir” (≥) operatörü ile yas ≥ 65 şeklinde yazılmalıdır.
Günlük hayattan koşul örneklerinde; “Ödevini bitirdiysen dışarı çıkabilirsin” veya “Hava soğuduysa üzerine kalın bir kazak giy” cümleleri if/then mantığında kurulmuştur ve sadece koşulun gerçekleşmesi durumunda ne yapılacağı belirtilmiştir. Bu nedenle “ödevin bitmemesi” veya “havanın sıcak olması” durumlarında (else durumu) ne yapılacağına dair alternatif bir adım belirtilmediği için Ödevin bitmemesi durumunda ne yapılacağı bellidir ve Havanın sıcak olması durumunda ne yapılacağı bellidir ifadeleri yanlıştır.
Bir FOR döngüsünde 1’den 5’e kadar (FOR i=1 TO 5) dönülüp “YAZ (isim)” komutu çalıştırıldığında, ekrana 5 defa “isim” yazdırılır ancak sayaç olan “i” hiçbir zaman yazdırılmaz. Bu nedenle Sayaç değeri olan i birden fazla kez yazdırılmaktadır ifadesi yanlıştır. Öte yandan, 0 2 4 6 8 10 çıktı değerlerini elde etmek için (ikişer ikişer artırmak için) FOR i = 0 TO 10 STEP 2 / YAZ i / NEXT i kodu doğru yazılmıştır.
Kullanıcı çıkış kelimesini girmediği müddetçe çalışan (DO WHILE kelime != “çıkış”) bir kaba kodda, döngünün sonsuz döngüye girmemesi ve her adımda yeni girişi kontrol etmesi için döngü bloğu içine tekrardan OKU kelime komutu getirilmelidir. Ayrıca, i=10 ile başlayıp her adımda “i = i – 2” şeklinde azalan ve i’nin 0’dan büyük olması (i > 0) koşuluyla çalışan bir döngüde i sırasıyla 10, 8, 6, 4, 2 değerlerini alır ve döngü tam 5 kez çalıştırılır.
Bir akış diyagramında döngü adımı sabit olarak “i = 1, 6” şeklinde tanımlanmışsa, kelime tam 6 kez yazdırılacak demektir. Çıktı sayısını kullanıcı belirlemediği için Girilen kelime kullanıcının istediği kadar yazdırılacaktır ifadesi yanlıştır.
Basit aritmetik işlemlerin yer aldığı kaba kodlarda adım adım hesaplama yapılır. Örneğin; A=2 ve B=10 ile başlanıp, A=A+2 (A=4) ve C=B-8 (C=2) işlemleri yapıldıktan sonra D=(AC)^2 formülü uygulanırsa D=(42)^2 = 8^2 = 64 bulunur ve çıktı D’nin değeri: 64 olur.
Benzer şekilde; kullanıcıdan X=10 ve Y=5 girildiğinde, X++ komutuyla X=11 olur. Ardından Y = X * 5 formülünde yeni X (11) yerine konulduğunda Y = 11 * 5 = 55 olur. YAZ(X) ve YAZ(Y) komutlarıyla ekrana sırasıyla 11 ve 55 çıktıları basılır.
A_sayısı=10 ve B_sayısı=50 olduğu bir kaba kodda; (10 > 50) koşulu sağlanmaz, ancak ikinci koşul olan (10 < 50) doğru olduğu için sadece altındaki B, A’dan büyüktür. metni ekrana yazdırılır.
Son olarak, vize ve finalin belli yüzdelerinin hesaplanıp “gecmePuani” isimli değişkene atandığı bir kaba kodda, sonucu kullanıcıya göstermek için YAZ komutunun içerisine soru işareti olan yere bu değişkenin adı olan gecmePuani yazılmalıdır.
