🎓 Bounlu tarafından hazırlandı
38.380 görüntülenme

Prosedür Çağrıları ve Dönüşler Nedir?

Bilgisayar mühendisliğinde, bir programın çalışması sırasında alt programların (fonksiyonlar veya prosedürler) çağrılması ve bu çağrılardan sonra orijinal akışa geri dönülmesi kritik bir süreçtir. Bu, programın modülerliğini ve yeniden kullanılabilirliğini sağlar.

Kısa cevap

Prosedür çağrıları, bir programın belirli bir görev için başka bir kod bloğunu çalıştırmasını ifade ederken, dönüşler ise bu görev tamamlandıktan sonra programın kaldığı yerden devam etmesini sağlar. Bu süreç genellikle yığın (stack) veri yapısı kullanılarak yönetilir.

01

Adım adım çözümlü örnekler

Basit bir toplama fonksiyonu çağrısı nasıl çalışır?

Ana programda `topla(a, b)` fonksiyonu çağrılır.Fonksiyonun adresi ve dönüş adresi yığına itilir.Fonksiyonun parametreleri (a ve b) yığına itilir.Kontrol `topla` fonksiyonuna geçer.Fonksiyon çalışır ve sonucu hesaplar.Sonuç yığından alınır veya bir değişkene atanır.Dönüş adresi yığından alınır ve kontrol oraya aktarılır.Ana program kaldığı yerden devam eder.

İç içe fonksiyon çağrıları nasıl yönetilir?

İlk fonksiyon çağrıldığında, adresi ve dönüş adresi yığına itilir.İkinci fonksiyon çağrıldığında, kendi adresi ve dönüş adresi (ilk fonksiyonun devam edeceği yer) yığına itilir.Her çağrı, kendi yerel değişkenlerini ve dönüş adresini yığına ekler.Fonksiyonlar tamamlandıkça, yığından kendi bilgileri çıkarılır ve ilgili yerlere dönülür.Bu yığın yapısı sayesinde iç içe çağrılar doğru sırayla çözülür.
02

Bilgi kartları

03

Mini test

S1.Prosedür çağrılarını ve dönüşlerini yönetmek için genellikle hangi veri yapısı kullanılır?

Doğru cevap: B. Yığın (Stack), LIFO prensibi sayesinde fonksiyon çağrılarının doğru sırayla yönetilmesini sağlar; en son çağrılan fonksiyon ilk döner.

S2.Bir fonksiyon çağrıldığında, programın kaldığı yerin bilgisi nereye kaydedilir?

Doğru cevap: B. Fonksiyonun dönüş adresi (programın kaldığı yer), çağrı yığınına (call stack) itilir, böylece fonksiyon bittiğinde oraya geri dönülebilir.

S3.İç içe geçmiş iki fonksiyon çağrısında, ilk çağrılan fonksiyon ne zaman çalışmasına devam eder?

Doğru cevap: C. Yığın yapısı gereği, en son çağrılan fonksiyon (ikinci fonksiyon) işini bitirip döndükten sonra, kontrol ilk çağrılan fonksiyona geri verilir.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
04

Sık yapılan hatalar

Yığın taşması (stack overflow), bir programın sonsuz döngüye girmesiyle oluşur.Doğrusu: Yığın taşması (stack overflow), genellikle çok derin veya sonsuz fonksiyon çağrıları nedeniyle yığın belleğinin tükenmesiyle oluşur.

Her fonksiyon çağrısı, yığına yalnızca fonksiyonun adresini ekler.Doğrusu: Her fonksiyon çağrısı, yığına fonksiyonun dönüş adresini, parametrelerini ve yerel değişkenleri için alan ekler (stack frame).

05

Sıkça sorulan sorular

Prosedür çağrıları ve dönüşler neden önemlidir?

Programların modüler, okunabilir ve yeniden kullanılabilir olmasını sağlarlar. Karmaşık problemleri daha küçük, yönetilebilir parçalara ayırmaya olanak tanırlar.

Yığın (Stack) dışında başka hangi yapılar çağrı yönetimi için kullanılabilir mi?

Teorik olarak başka yapılar da düşünülebilir ancak yığının LIFO özelliği, fonksiyon çağrılarının doğal yapısıyla mükemmel uyum sağladığı için standart ve en verimli yöntemdir.

Recursive (Özyinelemeli) fonksiyonlar çağrı yığınını nasıl etkiler?

Özyinelemeli fonksiyonlar, her çağrıldıklarında yığına yeni bir stack frame ekler. Eğer özyineleme durma koşuluna sahip değilse veya çok derinse, yığın taşmasına (stack overflow) neden olabilir.

İlgili konular