Algoritmalar ve Programlamaya Giriş 2023-2024 Final
Kaynak: https://lolonolo.com/2024/01/08/algoritmalar-ve-programlamaya-giris-guz-2023-2024-final-sorulari/
📖 Konu özeti (sınav öncesi tekrar)
Algoritmalar ve Programlamaya Giriş (Güz) 2023-2024 Final Soruları
II. Birden fazla tek boyutlu dizinin bir araya gelmesi ile iki boyutlu diziler oluşur.
III. Tek bir indis değeri kullanımı yeterlidir.
IV. İki for döngüsü kullanılarak oluşturulabilir.
Tek boyutlu diziler ile ilgili olarak yukarıdaki ifadelerden hangisi ya da hangileri yanlıştır?
I yanlıştır: satır ve sütunlardan oluşan yapı iki boyutlu dizidir, tek boyutlu dizi tek bir sıradan oluşur. IV de yanlıştır: iç içe iki for döngüsü iki boyutlu dizileri oluşturmak için kullanılır; tek boyutlu dizi için tek döngü yeterlidir. III doğrudur, çünkü tek boyutlu dizide elemanlara tek indisle erişilir.

Yukarıda verilen akış diyagramında i değeri -5 ve 18 arasındaki değerleri alıp döngünün her adımında 2 artmaktadır. Buna göre akış diyagramında boş bırakılan yere gelmesi gereken ifadeler aşağıdaki hangi şıkta doğru verilmiştir?
Akış diyagramındaki for döngüsü başlangıç değeri, bitiş değeri ve artış miktarı sırasıyla yazılır. i -5'ten başlayıp 18'e kadar gidiyor ve her adımda 2 artıyorsa ifade i = -5, 18, 2 şeklinde olmalıdır. D şıkkında bitiş ve artış değerlerinin yerleri karışmıştır.

Yukarıdaki akış diyagramında gösterilen program ile ilgili olarak aşağıdakilerden hangisi yanlıştır?

Kullanıcı tarafından girilen bir A sayısının iki katının 5 fazlası, girilen bir B sayısının üç eksiğinin 5 katı hesaplanmaktadır. Elde edilen değerler toplanmakta ve sonuç C değişkenine atandıktan sonra C değişkeni ekrana yazdırılmaktadır. Bahsedilen bu programın kaba kodunda yukarıda boş bırakılan iki satıra hangi şıktaki ifadeler gelmelidir?
A'nın iki katının 5 fazlası (A * 2 + 5), B'nin üç eksiğinin 5 katı ise ((B - 3) * 5) şeklinde yazılır; bu ikisi toplanıp C'ye atanır. B şıkkındaki (B – 3 * 5) ifadesinde işlem önceliği nedeniyle önce 3*5 yapılır ve B'den 15 çıkarılır; bu yanlıştır. Bu yüzden doğru ifade C = (A * 2 + 5) + ((B – 3) * 5) olur.

Yukarıda bir ana program ve geriye değer döndüren bir alt programa ait kaba kodlar verilmiştir. Ana programda soru işareti bulunan satıra gelmesi gereken doğru ifade aşağıdaki şıklardan hangisinde verilmiştir?
II. Bir arama algoritması kullanılarak aranan bir eleman ilgili dizide bulunmazsa, başka bir algoritma ile eleman bulunabilir.
III. Tüm sıralama algoritmaları aynı performansla çalışır.
IV. Bazı sıralama algoritmaları problemi daha küçük parçalara bölerek ele alır.
Arama ve sıralama algoritmaları ile ilgili olarak yukarıdaki ifadelerden hangisi veya hangileri yanlıştır?
I yanlıştır: doğrusal arama sıralı olmayan dizilerde de çalışır; sıralı dizi yalnızca ikili arama gibi bazı algoritmalar için gerekir. II yanlıştır: eleman dizide yoksa hiçbir algoritma onu bulamaz. III yanlıştır: sıralama algoritmalarının performansı (ör. O(n²) ile O(n log n)) farklıdır. IV doğrudur; birleştirmeli ve hızlı sıralama problemi küçük parçalara böler.
II. Akış diyagramları problemin görsel olarak ifade edilmesini sağlar.
III. Akış diyagramlarının ifade şekli programlama dillerine göre değişkenlik gösterir.
IV. Akış diyagramı, standartlaştırılmış elemanlardan oluşur.
Akış diyagramları ile ilgili olarak yukarıdaki ifadelerden hangisi ya da hangileri doğrudur?
Akış diyagramları standart sembollerden oluşur (IV), problemin çözümünü görsel olarak ifade eder (II) ve seçim ile döngü yapılarını gösterebilir (I). III yanlıştır: akış diyagramları programlama dilinden bağımsızdır; hangi dilde kodlanacağına göre değişmez.
II. Bu yapı, kodun uzamasına sebep olur.
III. Programın kendi kendisini çağırdığı bir yapı söz konusudur.
IV. Programın kendisini çağırması bir noktada sonlanmalı, programın sonsuz döngüye düşmemesine dikkat edilmelidir.
Yukarıda özyinelemeli alt programlar ile ilgili bazı ifadeler yer almaktadır. Bu ifadelerden hangisi veya hangileri yanlıştır?
I yanlıştır: özyineleme yalnızca değer döndürmeyen alt programlara özgü değildir; faktöriyel gibi değer döndüren fonksiyonlarda da sıkça kullanılır. II yanlıştır: özyineleme genellikle kodu kısaltır ve sadeleştirir. III (alt programın kendini çağırması) ve IV (bir sonlanma koşulu olmalı, aksi halde sonsuz döngü oluşur) doğrudur.
II. Alt programlar, ilgili programın sadece bir yerinde çalıştırılabilir, birden fazla kez kullanılamaz.
III. Ana program tarafından alt program çağrılırken, ilgili parametre türünün alt programda tanımlanan veri türü ile uyumlu olması gerekir.
IV. Alt programlar, ana bir programa ihtiyaç duymadan tek başına çalışabilen yapılardır.
Alt programlar ile ilgili olarak yukarıdaki ifadelerden hangisi ya da hangileri yanlıştır?
II yanlıştır: alt programların temel faydası, programın farklı yerlerinden tekrar tekrar çağrılabilmeleridir. IV de yanlıştır: alt programlar bir ana program (ya da başka bir program) tarafından çağrılarak çalışır, tek başına çalışmaz. I (yapısal programlama sağlar) ve III (parametre türlerinin uyumlu olması gerekir) doğrudur.

Tasarlanan iki ayrı kaba kodda şu işlemler yapılmaktadır:
“Her iki kaba kodda da kullanıcının birer sayı girmesi istenir. Birinci kaba kodda sayı 10’dan küçükse sayının 5 katı hesaplanır, sayı ve sonuç ekrana yazdırılır. İkinci kaba kodda sayı 10’a eşit veya 10’dan büyükse sayının 2 katının 8 fazlası hesaplanır. Ekrana sadece sonuç yazdırılır.”
Verilen anlatıma göre yukarıdaki kaba kodlardan hangisi veya hangileri doğrudur?

I. Bu akış diyagramının kaba kodu şu şekilde ifade edilebilir:
BAŞLA
toplam_1 = 0, toplam_2 = 0
FOR i = 1 TO 100
EĞER (i ≥ 50) İSE
(toplam_1 = toplam_1 + i)
EĞER (i < 50) İSE
(toplam_2 = toplam_2 + i)
NEXT i
YAZ (toplam_1, toplam_2)
BİTİR
II.Bu akış diyagramında, 0 ve 100 arasındaki sayılardan, 50’ye eşit ve 50’nin üzerinde olan sayıların toplamı “toplam_1”, 50’den küçük olan sayıların toplamı “toplam_2” değişkenlerinde saklanmaktadır. Bu değişkenlerin tuttuğu toplam sonuçları ekrana yazdırılmaktadır.
III. Bu akış diyagramında for döngüsünden yararlanılmıştır.
IV. Bu akış diyagramında sayılar her adımda ikişer artmaktadır.
Yukarıda bir akış diyagramı verilmiştir. Bu akış diyagramı ile ilgili olarak aşağıdaki şıklardan hangisi veya hangileri doğrudur?
I'deki kaba kodda FOR i = 1 TO 100 döngüsü STEP belirtilmeden yazıldığı için i her adımda 1 artar; i ≥ 50 olanlar toplam_1e, i < 50 olanlar toplam_2ye eklenir ve sonunda ikisi yazdırılır. II bu işleyişi doğru özetler, III'teki for döngüsü kullanımı da doğrudur. IV yanlıştır, çünkü sayılar ikişer değil birer artmaktadır. Bu yüzden doğru ifadeler I, II ve III'tür.

Yukarıdaki programda A’nın çift sayı olup olmamasına göre iki farklı hesap yapılmaktadır. Buna göre A’nın çift sayı olup olmadığının kontrol edilmesi için programda soru işareti olan yere yazılması gerekenler hangi şıkta doğru verilmiştir?
Bir sayının çift olup olmadığı, 2'ye bölümünden kalanla anlaşılır. % (mod) operatörü kalanı verir; A % 2 = 0 ise A çifttir. A / 2 = 0 bölümü kontrol eder (yalnızca A=0 için doğru olur), A * 2 = 0 ise çarpımı kontrol eder; ikisi de çiftliği test etmez.
Bir arama algoritmasında en kötü durum, algoritmanın en fazla adımı attığı durumdur. Aranan eleman dizide yoksa, örneğin doğrusal aramada dizinin tüm elemanlarına bakılmak zorunda kalınır ve bu en kötü durumdur. Diğer şıklar yanlıştır: eleman dizide olmasa da algoritma çalışır, aranan eleman ilk eleman olabilir, performans veri boyutuna bağlıdır ve ikili arama gibi algoritmalar değerleri tek tek taramaz.
II. Diziler mantıksal değerleri tutabilir.
III. Dizideki elemanların pozisyonunu işaret etmek için indis değeri kullanılır.
IV. Aynı dizinin içinde farklı tiplerde eleman bulunabilir.
Diziler ile ilgili olarak yukarıdaki ifadelerden hangisi veya hangileri yanlıştır?
Diziler sayısal olmayan (karakter, metin) ve mantıksal (true/false) değerleri tutabilir ve elemanların konumu indis ile belirtilir; bu yüzden I, II ve III doğrudur. IV yanlıştır: bir dizideki tüm elemanlar aynı veri tipinde olmalıdır; örneğin int dizisine metin konamaz.
Mesai saatleri dışında olmak, saatin 8:30'dan önce VEYA 17:30'den sonra olması demektir; iki koşuldan herhangi birinin sağlanması yeterli olduğu için VEYA kullanılır: saat < 8:30 VEYA saat > 17:30. VE ile kurulan saat > 8:30 VE saat < 17:30 koşulu ise tam tersine mesai saatleri içini ifade eder.
II. Bir arama algoritması, istenen elemanı dizide arayabilmek için, dizi elemanlarının sıralanmış olmasını gerektirebilir.
III. Arama algoritmalarının performansı algoritmadan algoritmaya farklılık gösterir.
IV. Sıralama algoritmalarından bazıları, elemanların karşılaştırılarak sıralanması mantığına göre çalışır.
Algoritmalar ile ilgili olarak yukarıdaki ifadelerden hangisi ya da hangileri yanlıştır?
I yanlıştır, çünkü algoritmanın tanımı zaten bir problemin çözüm adımlarını sırasıyla, adım adım ifade etmektir. II doğrudur (ikili arama sıralı dizi gerektirir), III doğrudur (arama algoritmalarının performansı farklıdır) ve IV doğrudur (kabarcık sıralaması gibi algoritmalar elemanları karşılaştırarak çalışır).

Yukarıda verilen kaba kodun çıktısı aşağıdakilerden hangisidir?

Bir öğrenci ders kapsamında iki farklı sınava girmektedir. Birinci sınavın %30’unu, ikinci sınavın %70’ini hesaplayıp toplam sınav puanını hesaplayan ve sonucu kullanıcıya gösteren programda soru işareti olan yere ne yazılmalıdır?
İki boyutlu (n×n) bir dizide doğrusal arama yaparken en kötü durumda her satır ve her sütundaki tüm elemanlara bakılır. İç içe iki döngüyle n·n = n² eleman tarandığı için zaman karmaşıklığı O(n²) olur. Tek boyutlu dizide doğrusal arama ise O(n)'dir.