Final 2022 20 soru

Algoritmalar ve Programlamaya Giriş 2022 Final

Kaynak: https://lolonolo.com/2023/01/08/algoritmalar-ve-programlamaya-giris-2022-final-sorulari/

📖 Konu özeti (sınav öncesi tekrar)

Algoritmalar ve Programlamaya Giriş 2022 Final Soruları

20 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1

Aşağıdakilerden hangisi bilinen bir arama algoritmasıdır?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

İkili arama (binary search), sıralı bir dizide ortadaki elemanla karşılaştırma yapıp arama alanını her adımda yarıya indiren bilinen bir arama algoritmasıdır; zaman karmaşıklığı O(log n)'dir. "Hızlı arama", "çapraz arama" gibi adlar standart algoritma isimleri değildir (hızlı sıralama ise bir sıralama algoritmasıdır).

Soru 2

I. Böl ve fethet mantığına göre çalışan birden fazla sıralama algoritması mevcuttur.
II. Böl ve fethet mantığına göre , problem tek bir adımda çözülmeye çalışılır.
III. Böl ve fethet mantığına dayanan bir algoritma özyineli olarak çalışır.
IV. Bir problem alt problemlere ayrılarak ele alınır.
Böl ve fethet mantığına göre çalışan algoritmalar için yukarıdaki ifadelerden hangisi ya da hangileri yanlıştır?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Böl ve fethet yaklaşımında problem tek adımda değil, daha küçük alt problemlere bölünerek çözülür; alt problemlerin çözümleri birleştirilerek asıl sonuç elde edilir. Bu yüzden II yanlıştır. Birleştirmeli sıralama ve hızlı sıralama bu mantıkla çalışan birden fazla algoritmaya örnektir ve genellikle özyinelemeli olarak uygulanır.

Soru 3
I. İki boyutlu diziler satırlar ve sütunlardan oluşur.
II. Birden fazla tek boyutlu dizinin bir araya gelmesi ile oluşur.
III. Tek bir indis değeri, iki boyutu da ifade etmek için kullanılır.
IV. İki for döngüsü kullanılarak oluşturulabilir.
İki boyutlu diziler ile ilgili olarak yukarıdaki ifadelerden hangisi ya da hangileri doğrudur?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

İki boyutlu diziler satır ve sütunlardan oluşur (I), birden fazla tek boyutlu dizinin bir araya gelmesi gibi düşünülebilir (II) ve iç içe iki for döngüsüyle oluşturulup gezilebilir (IV). III yanlıştır: iki boyutlu dizide bir elemana erişmek için satır ve sütun olmak üzere iki indis gerekir, ör. dizi[i][j].

Soru 4

int çarp(birinci_sayı, ikinci_sayı) BAŞLA
sonuç = birinci_sayı * ikinci_sayı …… sonuç
BİTİR
Yukarıdaki geri değer döndüren bir alt programın kaba kodunda boş bırakılan yere aşağıdakilerden hangisi getirilmelidir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Geri değer döndüren bir alt program (fonksiyon), hesapladığı sonucu çağıran programa return ifadesiyle geri gönderir; burada return sonuç yazılmalıdır. void değer döndürmeyen alt programları tanımlar, call ise alt programı çağırmak için kullanılır.

Soru 5
Yukarıda verilen dizide her bir indis değeri bir şubeyi, bu indislerde tutulan her bir değer de satılan ürün miktarını temsil etmektedir. Buna göre 50’den fazla ürün satılan şubelerin indislerinin yazdırılması için verilen kaba kodlardan hangisi doğrudur?
EDoğru cevap
Soru 6
Algoritmalar ve Programlamaya Giriş 2022 Final Soruları
Yukarıda verilen akış diyagramında i değeri -3 ve 5 arasındaki değerleri alıp her bir adımda 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?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

For döngüsü ifadesi başlangıç değeri, bitiş değeri ve artış miktarı sırasıyla yazılır. i -3'ten başlayıp 5'e kadar gidiyor ve her adımda 2 artıyorsa doğru ifade i = -3, 5, 2 olur. C şıkkında artış miktarı 1, B şıkkında ise bitiş ve artış değerlerinin yerleri yanlıştır.

Soru 7
7
Algoritmalar ve Programlamaya Giriş 2022 Final Soruları
Yukarıdaki akış diyagramında gösterilen program ile ilgili olarak aşağıdakilerden hangisi yanlıştır?
DDoğru cevap
Soru 8

I. Bu tür metotlar tanımlanırken, programın sonsuz döngüye düşülmemesine dikkat edilmelidir.
II. Bu metotlar sadece ana programda kullanılabilirler.
III. Kısa ve öz kod yazımına imkan sağlarlar.
IV. Sadece geri değer döndüren alt programlara yani fonksiyonlara uygulanabilirler.
Yukarıda özyinelemeli alt programlar ile ilgili bazı ifadeler yer almaktadır. Bu ifadelerden hangisi ya da hangileri doğrudur?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Özyinelemeli alt programlarda bir durma koşulu olmalıdır, yoksa sonsuz döngü oluşur (I). Bu yapı kısa ve öz kod yazmayı sağlar (III). Ders kapsamında özyineleme, geri değer döndüren alt programlar yani fonksiyonlar için ele alınır (IV). II yanlıştır: özyinelemeli metotlar yalnızca ana programda değil, herhangi bir alt programda da tanımlanıp çağrılabilir.

Soru 9
Algoritmalar ve Programlamaya Giriş 2022 Final Soruları
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?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

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.

Soru 10

Aşağıda bir ana program ve geriye değer döndürmeyen bir alt programa ait kaba kodlar verilmiştir. Kaba kodlarda boş bırakılan yerlere gelmesi gereken ifadeler sırasıyla hangi şıkta doğru verilmiştir?
Alt Program:
….. sırala(A, B)
BAŞLA
EĞER (A > B)
YAZ (“İlk sayı daha büyük”) EĞER (B > A)
YAZ (“İkinci sayı daha büyük”) BİTİR
Ana Program: BAŞLA
OKU A, B
….. sırala (A, B) BİTİR
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Değer döndürmeyen alt programlar void anahtar kelimesiyle tanımlanır; bu yüzden ilk boşluğa void gelir. Ana programda bir alt programı çalıştırmak için onu çağırmak gerekir; kaba kodda bu call sırala(A, B) şeklinde ifade edilir. return değer döndüren fonksiyonlarda kullanıldığı için burada uygun değildir.

Soru 11

Bir arama algoritması için aşağıdaki ifadelerden hangisi doğrudur?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

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.

Soru 12

“….., bir algoritmanın veri miktarı arttıkça tamamlaması gereken maksimum adım sayısını ifade eder.”
Yukarıdaki cümlede boş bırakılan yere aşağıdakilerden hangisi getirilmelidir?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Zaman karmaşıklığı, girdi (veri) miktarı arttıkça bir algoritmanın tamamlaması gereken en fazla adım sayısını ifade eder ve Big-O gösterimiyle yazılır (ör. O(n), O(n²)). Alan karmaşıklığı ise algoritmanın ihtiyaç duyduğu bellek miktarıyla ilgilidir.

Soru 13
Kullanıcı, çıkış kelimesini girmediği müddetçe çalışan ve girilen kelimeyi ekrana yazdıran ve tekrardan kullanıcıdan kelime girmesini isteyen bir kaba kodda boş bırakılan satıra aşağıdaki ifadelerden hangisi getirilmelidir?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Kullanıcıdan kelime alınıp ekrana yazdırılan ve "çıkış" girilene kadar tekrar eden döngüde, her turda yeni kelimenin okunması gerekir. Bu yüzden boşluğa OKU kelime gelmelidir. OKU çıkış yanlıştır, çünkü "çıkış" bir değişken değil karşılaştırılacak değerdir.

Soru 14

Bir programda 11 haneli ve pozitif bir tam sayı olan TC kimlik numarası saklanmak isteniyor. Bu değeri saklamak için aşağıdaki hangi veri tipini kullanmak daha verimli olur?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

11 haneli bir TC kimlik numarası (ör. 12345678901) yaklaşık 10^11 büyüklüğündedir. byte, sbyte ve ushort çok küçük aralıklıdır; 32 bitlik int bile en fazla yaklaşık 2,1 milyara kadar değer tutabilir. Tam sayı olduğu için ondalıklı double yerine 64 bitlik tam sayı tipi long kullanmak en uygunudur.

Soru 15

Hava sıcaklığı 30 dereceye eşit veya 30 derecenin üzerinde olduğunda “Hava çok sıcak!” mesajını yazdıran kaba kod aşağıdaki hangi seçenekte doğru verilmiştir?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

"30 dereceye eşit veya üzerinde" koşulu büyük-eşit (≥) operatörüyle ifade edilir: sıcaklık ≥ 30. A şıkkındaki > 30 tam 30 dereceyi kapsamaz; B ve C yalnızca 30'a eşitliği, E (<>) ise 30'a eşit olmamayı kontrol eder.

Soru 16
Yukarıda verilen dizinin oluşturulması için gereken kaba kod şıklardan hangisinde doğru olarak verilmiştir?
CDoğru cevap
Soru 17

Bir iş yerinin mesai saatleri 9:00-17:00 arasındadır. Girilen saati kontrol ederek iş yerinin mesai saatleri dışında olduğunu belirten kaba kod aşağıdakilerden hangisidir?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Mesai saatleri dışında olmak, saatin 9:00'dan önce VEYA 17:00'den sonra olması demektir; iki koşuldan herhangi birinin sağlanması yeterli olduğu için VEYA kullanılır: saat < 9:00 VEYA saat > 17:00. VE ile kurulan saat > 9:00 VE saat < 17:00 koşulu ise tam tersine mesai saatleri içini ifade eder.

Soru 18

“……, algoritma geliştirilmesine yardımcı olan, formal olmayan, bilgisayar tarafından çalıştırılmayan, herhangi bir programlama dilinin yazım kurallarına bağlı kalınmasını zorunlu kılmayan bir nitelik taşımaktadır.”
Yukarıdaki cümlede boş bırakılan yere aşağıdakilerden hangisi gelmelidir?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Kaba kod (pseudo code), algoritma geliştirmeye yardımcı olan, bilgisayarda doğrudan çalıştırılmayan ve herhangi bir programlama dilinin yazım kurallarına bağlı olmayan, konuşma diline yakın bir ifade biçimidir. Program kodu ise belirli bir dilin kurallarına uyar ve bilgisayarda çalıştırılır; akış diyagramı ise sembollerle çizilen görsel bir gösterimdir.

Soru 19

Bir algoritmada sayaç değişkeninin 2’şer artması için aşağıdaki ifadelerden hangisi kullanılır?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Bir değişkeni 2'şer artırmak için değişkenin mevcut değerine 2 eklenip sonuç yine aynı değişkene atanır: sayaç = sayaç + 2. sayaç++ ve sayaç = sayaç + 1 birer artırır, sayaç * 2 ise değeri iki katına çıkarır.

Soru 20
Tasarlanan iki ayrı kaba kodda şu işlemler yapılmaktadır:
“Her iki işlemde de kullanıcının birer sayı girmesi istenir.
Birinci işlemde sayı 10’dan küçükse sayının 5 katı hesaplanır, sayı ve sonuç ekrana yazdırılır.
İkinci işlemde 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.”
I.
BAŞLA
OKU sayı
EĞER sayı < 10 İSE YAZ sayı
YAZ (sayı * 5) BİTİR
II.
BAŞLA
OKU sayı
YAZ sayı
EĞER sayı ≥ 10 İSE YAZ (sayı * 2 + 8) BİTİR
III.
BAŞLA
EĞER sayı > 10 İSE YAZ (sayı * 5) BİTİR
IV.
BAŞLA
EĞER sayı < 10 İSE YAZ (sayı * 2 + 8) BİTİR
Bahsedilen bu iki işlemi gerçekleştiren yukarıdaki kaba kodlardan hangileri aşağıda doğru olarak verilmiştir?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

İki işlemde de önce kullanıcıdan sayı okunmalı (OKU sayı), ardından istenen koşul ve formül uygulanmalıdır. I'de sayı < 10 koşulu ve sayı * 5, II'de sayı ≥ 10 koşulu ve sayı * 2 + 8 formülü doğru kullanılmıştır. III ve IV'te ise OKU adımı yoktur ve koşullarla formüller karıştırılmıştır (III'te > 10 ile 5 kat, IV'te < 10 ile 2 katın 8 fazlası). Bu yüzden doğru olanlar I ve II'dir.