Diğer 10 soru

Algoritma ve Programlamaya Giriş Ünite -5 (Güz)

Kaynak: https://lolonolo.com/2025/10/27/algoritma-ve-programlamaya-giris-unite-5-guz/

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

Algoritma ve Programlamaya Giriş Ünite -5 (Güz) : Alt Programlar, Fonksiyonlar

Alt Program Kavramı ve Avantajları

Alt programlar (veya alt yordamlar), bir program içinde belirli bir görevi gerçekleştirmek üzere paketlenmiş ve ana programın farklı yerlerinden çağrılabilen kod bloklarıdır. Farklı programlama dillerinde rutin, işlev, yöntem (metot) veya prosedür olarak da adlandırılabilirler.

Alt program kullanmanın temel avantajları şunlardır:

Alt Programların Özellikleri

Alt Program Türleri

Alt programlar temel olarak ikiye ayrılır:

10 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
Aşağıdaki şıklardan hangisi, “uzunluk” ve “genişlik” olmak üzere iki parametre alan ve iki parametrenin çarpımını döndüren “hesap_alanı” adlı bir alt programın çağrılmasını sağlar?
ADoğru cevap
Açıklama
Değer döndüren alt programlar (fonksiyonlar), `call` gibi bir komutla çağrılmazlar; bunun yerine, geri dönen verinin değerine uygun bir değişkene eşitlenerek (atanarak) çağrılırlar. Bu fonksiyon iki parametre aldığı için `hesapla_alanı(uzunluk, genişlik)` şeklinde çağrılmalı ve dönen değer `alan` değişkenine atanmalıdır.
Soru 2
Aşağıdaki kaba kodda Topla isimli alt program ana programdan çağrılmakta ve int tipinde iki değer alarak toplama işlemi yapmaktadır.
Bu kaba kodda yapılan hata seçeneklerden hangisinde doğru olarak verilmiştir?
Alt Program
int Topla (int a, int b)
BAŞLA
   c = a + b
......
BİTİR
Ana Program
BAŞLA
   int sonuç = Topla(x, y)
   YAZ (c)
BİTİR
EDoğru cevap
Açıklama
Alt programların (fonksiyonların) içerisinde tanımlanan değişkenler (bu örnekte `c` değişkeni) o alt programa ait yerel (local) değişkenlerdir. Bu değişkenler, alt programın dışında (Ana Program içinde) kullanılamazlar ve geçersiz olurlar. Ana programdaki `YAZ (c)` komutu bu nedenle hatalıdır.
Soru 3
Programlamada alt programların kullanımı ile ilgili olarak aşağıdakilerden hangisi yanlıştır?
DDoğru cevap
Açıklama
Bu ifade yanlıştır. Alt programların amacı, programın “yapısal” olmasını sağlamak, kod tekrarını önlemek, böylece programın okunmasını, yazılmasını ve bakımını kolaylaştırmaktır. Tekrar eden kodda değişiklik yapılacağı zaman, bunu tek bir yerde yapmak, defalarca yapmaktan daha kolay ve hatasızdır.
Soru 4
Aşağıdaki kaba kodda kullanıcı tarafından girilen sayıya göre faktöriyel hesabı yapılmaktadır.
Ana programdan alt programın çağrılması için boş bırakılan yere gelmesi gereken doğru cevap, şıklardan hangisinde verilmiştir?
Alt Program
int Faktoriyel(int n)
BAŞLA
   IF (n = 0) THEN
       return 1
   ELSE
       return (n * Faktoriyel(n - 1))
END IF
BİTİR
Ana Program
BAŞLA
OKU (“Sayı giriniz:”, sayı)
______________________
YAZ (sonuç)
BİTİR
BDoğru cevap
Açıklama
`Faktoriyel` alt programı `int` tipinde bir değer döndürmektedir (`return 1` veya `return (n * …)`). Değer döndüren fonksiyonlar çağrılırken, dönen değerin bir değişkene atanması gerekir. Ana programda `sonuç` değişkenine bu değerin atanması için `int sonuç = Faktoriyel(sayı)` komutu kullanılmalıdır.
Soru 5
Kendini çağıran fonksiyonlara ne ad verilir?
EDoğru cevap
Açıklama
Bir alt programın kendi tanımı içerisinde yine kendi kendini çağırmasına yinelenme (recursion), bu tür fonksiyonlara da özyinelemeli (recursive) fonksiyon denir.
Soru 6
Aşağıdaki kaba kodda verilen alt program, ana program tarafından çağrılmak isteniyor.
Cevap şıklarından hangisi alt programın sorunsuz bir şekilde çağrılmasını sağlar?
Alt Program
int Topla (int a, int b)
BAŞLA
   int t
   t = a + b
   return t
BİTİR
CDoğru cevap
Açıklama
`Topla` fonksiyonu `int` tipinde bir değer döndürmektedir (`return t`). Bu nedenle çağrılırken dönen değerin `int` tipinde bir değişkene (örn: `Islem_Sonucu`) atanması gerekir. Ayrıca fonksiyon iki adet parametre (`int a, int b`) aldığı için, çağrılırken de iki adet (`sayi_1, sayi_2`) parametre gönderilmelidir. Bu şartları sağlayan tek şık C’dir.
Soru 7
Aşağıdaki kaba kodda Topla isimli alt program ana programdan çağrılmakta ve single tipinde iki değer alarak toplama işlemi yapmaktadır.
Bu kaba kodda yapılan hata seçeneklerden hangisinde doğru olarak verilmiştir?
Alt Program
single Topla (int a, int b)
BAŞLA
   t = a + b
   return t
BİTİR
Ana Program
int sonuç = Topla (sayi1, sayi2)
DDoğru cevap
Açıklama
Alt program (`Topla`) `single` (ondalıklı sayı) türünde bir değer döndürmek üzere tanımlanmıştır. Ancak Ana programda, bu fonksiyondan dönen değer `int` (tam sayı) türündeki `sonuç` değişkenine atanmaya çalışılmaktadır. Değer döndüren alt programdan dönen değerin cinsi ile ana programda bu değeri karşılayan değişkenin türü uyuşmazsa hata alınır.
Soru 8
Metotların içerisinde tanımlanan değişkenler metot dışında kullanılabilir mi?
BDoğru cevap
Açıklama
Alt programların (metotların) içerisinde tanımlanan değişkenler (yerel/local değişkenler) sadece o alt programın içinde geçerlidir. Alt program dışında kullanılamazlar (erişilemezler).
Soru 9
Özyinelemeli fonksiyonlar ile ilgili olarak aşağıdakilerden hangisi yanlıştır?
DDoğru cevap
Açıklama
Bu ifade yanlıştır. Özyinelemeli fonksiyonlar genellikle “kısa ve öz kodlar” oluştururlar. Kodun uzamasına sebep olmazlar, aksine bazı karmaşık problemleri (döngülerle yazımı uzun sürecek) daha kısa ve zarif bir şekilde ifade etmeyi sağlarlar.
Soru 10
Alt programların kullanımı ile ilgili aşağıdaki şıklardan hangisi yanlıştır?
CDoğru cevap
Açıklama
Değer döndürmeyen (void) alt programlar, tasarımları gereği bir sonuç değeri döndürmezler. `return` komutu bu tür alt programlarda sadece işlemi sonlandırmak (erken çıkmak) için değersiz olarak kullanılabilir, bir değer döndürmek için kullanılamaz. Bu attempt hata mesajına yol açar.