Dallanma (Çatallanma, Fork)
Yazan: Şadi Evren ŞEKER
Yapısal programlamaya (Structered Programming) uygun olan bir programlama dilinde bulunması gereken temel 3 özellikten birisi de dallnamadır. Buna göre program akışı içerisinde bir alt programın (sub program) çalışıp çalışmayacağına karar verilebilmeli ve bu karar bir koşul ile programlanabilmelidir.
Aşağıdaki akış diyagramında (flow chart) bir eşkenar dörtgen ile bu durum ifade ediliştir:

Akış diyagramında çatallanma
Yukarıdaki akış diyagramında “i” isiminde bir değişken tanımlanarak (declare) bu değişkenin içerisine kullanıcıdan bir sayı okunarak atanmıştır (assignment). Daha sonra kod çatallanarak “i>5″ kontrolü yapılmış bu şartın doğru veya yanlış olmasına göre sola veya sağa program dallanmış (akış diyagramlarında olumlu taraf genelde sağ taraf olarak kabul edilir. ancak karışıklığa engel olmak için kolların üzerine True veya False yazmakta fayda vardır). Sonuç olarak da ekrana “Bitti” yazmıştır.
Yukarıda bulunan Ekrana “Büyük” ve “Küçük” yazan alt programlar bir şarta bağlı olarak çalışmıştır. Bir alt program çalışırken diğer alt program çalışamaz yani akış içerisinde bu alt programlardan birisinin tercih edilmesi gerekir.
Yukarıda akış diyagramı verilen algoritmanın C dilindeki karşılığı aşağıda verilmiştir:
#include <stdio.h>
int main(){
int i;
scanf("%d",&i);
if(i>5) // koşul kontrolü ve dallanmayı sağlayan kod
{
printf("Büyük"); // koşul doğruysa bu alt program çalışır
} else { //koşul yanlışsa durumu kontrol ediliyor
printf("Küçük");
}
printf("Bitti");
}
Yukarıdaki kodda yorumlar (comments) içerisinde de açıklandığı üzere if komutu içerisinde yazılı olan koşul kontrolü yapılarak program alt programlardan birisine dallanmaktadır.
« Türkçe için TimeML | C Dilinde Operatörler (işlemler, operators) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Dallanma (Çatallanma, Fork)' isimli yazı 08 Oct 2008 tarihinde, saat: 03:48 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 439 defa okunmuştur.
Benzer yazıları C/C++, Programlama Dilleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Özyineli Diller (Recursive Languages)
- Özyineli Geçiş Ağları (Reursive Transition Networks)
- Gellish (Kontrollü Doğal Dil)
- Karar Problemi (Decision Problem)
- Masfuf (Matris , Matrix)
- Turing Makinesi (Turing Machine)
- Özyineli Sayılabilir Diller (Recursively Enumerable Languages)
- Chomsky Hiyerarşisi ( Chomsky Hierarchy )
- Anlamsal Ağlar (Semantic Network)
- Mana Ağları (Sematic Webs, Anlamsal Ağ)
Yapılan Son Yorumlar
- vildan: teşekkürler..
- Şadi Evren ŞEKER: Elbette; farklı iki örnek daha...
- rasim: daha baska ornekler verebılırmısınız
- Zeynep Kaya: İyi günler.Benim size bi sorum daha...
- Zeynep Kaya: Cok tesekkür ederim yardımınız icin..
Yakın Yazılar
Dangling Else ( Sallanan Else)
İşlem Çatallanması (Process Forking)
yapısal programlama (structured programming)
Patricia ağacı (PATRICIA Tree)
İşlem Önceliği (Operator Precedence)
Dinamik Markof Kodlaması ile Sıkıştırma (Data Compression Using Dynamic Markov Coding)
Bağlantılar