LOLONOLO Ana Sayfa » blog » Algoritma ve Programlamaya Giriş » Algoritma ve Programlamaya Giriş Ünite -5 (Güz)
Algoritmalar ve Programlamaya GirişauzefBilgisayar ProgramcılığıYönetim Bilişim Sistemleri

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

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

 
LOLONOLO Ana Sayfa » blog » Algoritma ve Programlamaya Giriş » Algoritma ve Programlamaya Giriş Ünite -5 (Güz)
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

#1. Yukarı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?

Cevap : B) int sonuç = Faktoriyel(sayı)
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.

#2. Kendini çağıran fonksiyonlara ne ad verilir?

Cevap : E) Özyinelemeli fonksiyon
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.

#3. Metotların içerisinde tanımlanan değişkenler metot dışında kullanılabilir mi?

Cevap : B) Kullanılamazlar.
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).

#4. 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?

Cevap : A) alan = hesapla_alanı(uzunluk, genişlik)
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.

#5. Programlamada alt programların kullanımı ile ilgili olarak aşağıdakilerden hangisi yanlıştır?

Cevap : D) Alt program kullanımı programın okunmasını, yazılmasını ve bakımını zorlaştırır.
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.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

#6. Özyinelemeli fonksiyonlar ile ilgili olarak aşağıdakilerden hangisi yanlıştır?

Cevap : D) Özyinelemeli fonksiyonlar, kodun uzamasına sebep olduğundan tercih edilmez.
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.

Alt Program
int Topla (int a, int b)
BAŞLA
   int t
   t = a + b
   return t
BİTİR

#7. Yukarı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?

Cevap : C) int Islem_Sonucu = Topla (sayi_1, sayi_2)
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.

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

#8. Yukarı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?

Cevap : E) Alt programda tanımlanan bir değişken ana programda kullanılmaya çalışılmıştır.
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.

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)

#9. Yukarı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?

Cevap : D) Ana programdaki değişken ve ona atanan alt programdan değişkenin türleri farklıdır.
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.

#10. Alt programların kullanımı ile ilgili aşağıdaki şıklardan hangisi yanlıştır?

Cevap : C) Değer döndürmeyen alt programlarda sonucu döndürmek için return komutu kullanılırsa değer döndürülebilir.
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.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

Öncesi
TESTi BiTiR, PUANINI GÖR

SONUÇ

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

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

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

Algoritma ve Programlama – Alt Programlar ve Fonksiyonlar Özeti

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:

  • Kod Tekrarını Önleme: Tekrar eden kodları defalarca yazmak yerine, bir alt program olarak bir kez yazıp ihtiyaç duyulduğunda çağırmak programı kısaltır.
  • Okunabilirlik ve Yapısallık: Karmaşık görevleri daha küçük ve yönetilebilir kod parçalarına bölerek programın anlaşılmasını kolaylaştırır.
  • Bakım Kolaylığı: Bir işlemde değişiklik yapılması gerektiğinde, bunu programın farklı yerlerinde aramak yerine sadece ilgili alt programda yapmak yeterlidir; bu da zaman kazandırır ve hata olasılığını azaltır.

Alt Programların Özellikleri

  • İsim: Her alt programın bir ismi vardır ve bu isim kullanılarak çağrılır. İsimlendirme, değişken isimlendirme kurallarına uymalıdır.
  • Parametreler: Alt programlar, dışarıdan (ana programdan) veri almak için **parametre** kullanabilirler. Parametreler, alt program çağrılırken gönderilen değerlerdir (örn: `KüpAl(sayı)`). Gönderilen parametre sayısı, sırası ve türü, alt programın tanımıyla uyumlu olmalıdır.
  • Erişim Niteleyicisi: Alt programın programın diğer bölümlerinden erişilip erişilemeyeceğini belirler (örn: `public` – genel, `private` – özel).
  • Yerel Değişkenler (Local Scope): Bir alt programın içinde tanımlanan değişkenler (parametreler dahil), sadece o alt programın içinde geçerlidir. Alt program dışında **kullanılamazlar (geçersiz olurlar)**.

Alt Program Türleri

Alt programlar temel olarak ikiye ayrılır:

1. Değer Döndürmeyen Alt Programlar (void)

Bu tür alt programlar, belirli işlemleri yaparlar ancak ana programa bir sonuç değeri **döndürmezler**. C# veya Java gibi dillerde `void` anahtar kelimesi ile, VB’de `Sub` ile tanımlanırlar. Genellikle `call` komutuyla veya sadece isimleriyle çağrılırlar (örn: `Call GirişYap(kullanıcıAdı, parola)`).

Değer döndürmeyen alt programlarda `return` komutu bir değer döndürmek için **kullanılamaz**; kullanılırsa hata verir. `return` sadece işlemi sonlandırmak ve alt programdan erken çıkmak için (değersiz olarak) kullanılabilir.

2. Değer Döndüren Alt Programlar (Fonksiyonlar)

Bu tür alt programlar (genellikle **fonksiyon** olarak adlandırılırlar), yaptıkları işlemler sonucunda hesapladıkları bir değeri, kendilerini çağıran yere geri döndürürler. `return` komutu bu değeri döndürmek için kullanılır (örn: `return sonuç`). Fonksiyonlar tanımlanırken, `void` yerine döndürecekleri değerin veri tipi (örn: `int`, `single`, `bool`) belirtilir.

Değer döndüren fonksiyonlar çağrılırken, `call` ile çağrılmazlar; bunun yerine, dönen değer mutlaka bir değişkene atanmalı veya bir işlem içinde kullanılmalıdır. (örn: `int sonuç = Topla(sayi1, sayi2)`). Ana programdaki bu değişkenin veri türü ile fonksiyondan dönen değerin veri türü uyumlu olmalıdır, aksi takdirde hata oluşur.

Özyinelemeli Fonksiyonlar (Recursive Functions)

Bir fonksiyonun kendi tanımı içerisinde **kendi kendini çağırması** durumuna **özyineleme (recursion)** denir. Bu tür fonksiyonlara **özyinelemeli fonksiyon** denir. Genellikle döngülerin yerine kullanılabilirler ve bazı karmaşık problemleri (örn: faktöriyel hesabı, Fibonacci serisi) **kısa ve öz (zarif) kodlarla** çözmeyi sağlarlar. Ancak, sonsuz döngüye girmemesi için mutlaka bir durma koşulunun (base case, örn: `IF (n == 0) THEN return 1`) tanımlanması gerekir.

Ana Program (Main Metodu)

Bir programın çalışmaya başladığı ilk yer olan ve diğer alt programları çağıran kod parçasına **ana program** (örn: `void main()`, `Sub Main()`) denir.

@lolonolo_com

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

Algoritma ve Programlamaya Giriş Ünite – 5 : Alt Programlar, Fonksiyonlar

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?

A) alan = hesapla_alanı(uzunluk, genişlik)
B) alan = hesapla_alanı(uzunluk * genişlik)
C) hesapla_alanı(alan = uzunluk * genişlik)
D) hesapla_alanı(uzunluk, genişlik)
E) hesapla_alanı(alan = uzunluk + genişlik)

Cevap : A) alan = hesapla_alanı(uzunluk, genişlik)

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.

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

A) Değer döndürmeyen fonksiyonda değer döndürülmeye çalışılmıştır.
B) Alt programdaki ve ana programdaki çağrılan değişken türleri farklıdır.
C) Ana programdaki değişken, alt programda tanımlanmıştır.
D) Alt programın ismi ana programda değişken ismi olarak kullanılmıştır.
E) Alt programda tanımlanan bir değişken ana programda kullanılmaya çalışılmıştır.

Cevap : E) Alt programda tanımlanan bir değişken ana programda kullanılmaya çalışılmıştır.

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.

3. Programlamada alt programların kullanımı ile ilgili olarak aşağıdakilerden hangisi yanlıştır?

A) Alt program belirli bir görevi yerine getiren bir kod bloğudur.
B) Alt program programın diğer bölümleri tarafından çağrılır.
C) Alt program istenildiği takdirde parametre alacak şekilde tanımlanabilir.
D) Alt program kullanımı programın okunmasını, yazılmasını ve bakımını zorlaştırır.
E) Bir alt programın amacı, karmaşık görevleri daha küçük ve yönetilebilir kod parçalarına bölmektir.

Cevap : D) Alt program kullanımı programın okunmasını, yazılmasını ve bakımını zorlaştırır.

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.

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

A) Faktoriyel(int n)
B) int sonuç = Faktoriyel(sayı)
C) Faktoriyel(sayı)
D) sayı = Faktoriyel(sayı)
E) call Faktoriyel(int n)

Cevap : B) int sonuç = Faktoriyel(sayı)

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.

5. Kendini çağıran fonksiyonlara ne ad verilir?

A) Değer döndüren fonksiyon
B) Değer döndürmeyen fonksiyon
C) Tekrarlı fonksiyon
D) Değersiz fonksiyon
E) Özyinelemeli fonksiyon

Cevap : E) Özyinelemeli fonksiyon

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.

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

A) Topla (sayi_1, sayi_2)
B) Topla (sayi1, sayi2, sayi3)
C) int Islem_Sonucu = Topla (sayi_1, sayi_2)
D) int Islem_Sonucu = Topla (sayi1, sayi2, sayi3)
E) Hiçbiri

Cevap : C) int Islem_Sonucu = Topla (sayi_1, sayi_2)

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.

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)

A) Alt programın ismi ana programda değişken ismi olarak kullanılmıştır.
B) Ana programdaki değişken, alt programda tanımlanmıştır.
C) Değer döndürmeyen fonksiyondan değer döndürülmeye çalışılmıştır.
D) Ana programdaki değişken ve ona atanan alt programdan değişkenin türleri farklıdır.
E) Alt programdaki bir değişken ana programda çağrılmaya çalışılmıştır.

Cevap : D) Ana programdaki değişken ve ona atanan alt programdan değişkenin türleri farklıdır.

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.

8. Metotların içerisinde tanımlanan değişkenler metot dışında kullanılabilir mi?

A) Kullanılabilirler.
B) Kullanılamazlar.
C) Duruma göre kullanılabilir.
D) Özyinelemeli fonksiyonsa kullanılabilir.
E) Hiçbiri

Cevap : B) Kullanılamazlar.

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).

9. Özyinelemeli fonksiyonlar ile ilgili olarak aşağıdakilerden hangisi yanlıştır?

A) Özyinelemeli fonksiyonlar, kendi kendini çağıran fonksiyonlardır.
B) Özyinelemeli fonksiyonlar, kısa ve öz kodlar oluşturduklarından zarif olarak nitelendirilirler.
C) Özyinelemeli fonksiyonlar, döngüler ile de ifade edilebilen problemlerin daha kısa bir şekilde yazılmasını sağlar.
D) Özyinelemeli fonksiyonlar, kodun uzamasına sebep olduğundan tercih edilmez.
E) Özyinelemeli fonksiyonların tasarımında sonsuz döngü oluşmamasına özellikle dikkat edilmelidir.

Cevap : D) Özyinelemeli fonksiyonlar, kodun uzamasına sebep olduğundan tercih edilmez.

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.

10. Alt programların kullanımı ile ilgili aşağıdaki şıklardan hangisi yanlıştır?

A) Bir değişken alt program içerisinde tanımlanırsa, alt programın dışında geçersiz olur.
B) Bir alt program içerisinde farklı bir alt program tanımlanamaz.
C) Değer döndürmeyen alt programlarda sonucu döndürmek için return komutu kullanılırsa değer döndürülebilir.
D) Alt programın ismi, farklı bir alt program veya bir değişken ismi ile aynı olmamalıdır.
E) Değer döndüren alt programlarda, dönen değerin türü ile ana programda o fonksiyonu çağırırken kullanılan parametre türü birbiri ile uyuşmalıdır.

Cevap : C) Değer döndürmeyen alt programlarda sonucu döndürmek için return komutu kullanılırsa değer döndürülebilir.

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.

@lolonolo_com

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

 

Auzef Bilgisayar Programcılığı-min Açık Lise Telegram Grubu

Auzef sınav soruları, çıkmış sorular, deneme sınavları hepsi lolonolo’da ücretsiz.

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

Auzef Bilgisayar Programcılığı Güz Dönemi sınav soruları

Editor

Editör