Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
Ünite_03 - C'DE YAPISAL PROGRAM GELİŞTİRME

Ünite_03 - C'DE YAPISAL PROGRAM GELİŞTİRME

Ratings: (0)|Views: 955|Likes:
Published by Taner Erkan

More info:

Published by: Taner Erkan on Feb 01, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

11/07/2012

pdf

text

original

 
 
C'DE YAPISAL PROGRAM GELİŞTİRME
AMAÇLAR 
Temel problem çözme tekniklerini anlamak.
Yukarıdan aşağıya adımsal iyileştirme süreciyle algoritmalar geliştirebilmek.
if ve if/else yapılarını uygun yerde kullanarak işlemleri seçebilmek.
while yapısını programlarda uygulayarak, ifadeleri tekrar tekrar çalıştırabilmek 
Sayıcı kontrollü döngü ve nöbetçi kontrollü döngüleri anlamak.
Yapısal programlamayı anlamak 
Arttırma, azaltma ve atama işlemlerini kullanabilmek 
BAŞLIKLAR 
3.1 GİRİŞ3.2 ALGORİTMALAR 3.3 SAHTE KODLAR 3.4 KONTROL YAPILARI3.5 if SEÇİM YAPISI3.6 if/else SEÇİM YAPISI3.7 while DÖNGÜ YAPISI3.8 ALGORİTMALARI UYGULAMAK : DURUM 1(SAYICI KONTROLLÜ DÖNGÜ)3.9 YUKARIDAN AŞAĞI ADIMSAL KONTROL İLE ALGORİTMALARIUYGULAMAK: DURUM 2 (NÖBETÇİ KONTROLLÜ DÖNGÜLER)3.10YUKARIDAN AŞAĞI ADIMSAL KONTROL İLE ALGORİTMALARIUYGULAMAK: DURUM 2 (YUVALI KONTROL YAPILARI)3.11 ATAMA OPERATÖRLERİ3.12 ARTTIRMA VE AZALTMA OPERATÖRLERİ
Özet*Genel Programlama Hataları*İyi Programlama Alıştırmaları*Performans İpuçları*Taşınırlık İpuçları*Yazılım Mühendisliği Gözlemleri*Çözümlü Alıştırmalar* Çözümler* Alıştırmalar 
3.1 GİRİŞ
Bir problemi çözmeden önce, onu anlamak ve çözüm için en uygun çözüm yolunu planlamak oldukça önemlidir. Önümüzdeki iki kısım boyunca, yapısal bilgisayar programları geliştirmetekniklerini anlatacağız. Kısım 4.12’de, iki ünite boyunca anlattığımız tekniklerin özetini bulacaksınız.
3.2 ALGORİTMALAR 
Bir problemin çözümü, bir dizi işlemin belirli bir sırada çalıştırılmasını içerir. Bir probleminçözülmesindeki yordam;1- Uygulanacak işlemler ve2- Bu işlemlerin hangi sırada uygulanacağı
algoritma
olarak adlandırılır. Aşağıdaki örnek, işlemlerin uygulanma sıralarının doğru belirlenmesinin önemli olduğunu gösterir.1
 
Yataktan kalkıp, işe gidene kadar yapılacak işlemleri anlatan bir algoritmayı inceleyelim.
Yataktan kalk  Pijamalarını çıkar  Duş al Giyin Kahvaltı yap İşe doğru yola çık 
Bu algoritma, işe iyi hazırlanmış bir şekilde gitmeyi sağlatır. Şimdi de, aynı işlemlerin farklı bir sırada uygulandığını düşünelim.
Yataktan kalk  Pijamalarını çıkart Giyin Duş al  Kahvaltı yap İşe doğru yola koyul 
Bu algoritma uygulanırsa işe ıslak elbiselerle gidilir. Bir programda, yapılacak işlemlerinsırasını belirlemeye
 program kontrolü
denir. Bu ünite ve 4. ünitede, C'nin program kontrolyeteneklerinden bahsedeceğiz.
3.3 SAHTE KODLAR 
Sahte kodlar 
, bir programcının algoritma yazmada kullandığı yapay ve mantıksal dildir.Bu ünitede, yapısal C programlarına çevrilebilecek algoritmaları geliştirecek sahte kodlarıyazmaya çalışacağız. Sahte kodlar, her gün konuştuğumuz dile oldukça yakındır.Bu kodları bilgisayarda çalıştıramayız. Ancak bu kodlar programcıya, programını C gibiherhangi bir programlama diliyle yazmadan önce, programı hakkında düşünme fırsatını verir.Sahte kodların, yapısal C programları geliştirmede nasıl kullanılacağını gösteren bir çok örnek vereceğiz.Sahte kodlar, yalnızca karakterlerden oluştuğu için programcı sahte kodları bir editör programsayesinde bilgisayara yazar. Bilgisayar, sahte kodlarla yazılmış programı ekranda gösterebilir ya da yazıcıdan çıktı olarak verebilir. Dikkatlice hazırlanmış sahte kodlar, C programınakolaylıkla çevrilebilir. Bunu yapmak için, çoğu durumda sahte kodlarla yazılmış ifadeleriC’deki biçimleriyle değiştirmek yeterlidir.Sahte kodlar sadece işlem ifadelerini içerir. İşlem ifadeleri, sahte kodlar C’ye çevrildiğinde,C’de çalıştırılabilecek ifadelerdir. Bildirimler, çalıştırılabilir ifadeler değildir. Bunlar,derleyiciye gönderilen mesajlardır. Örneğin;
int i;
 bildirimi, derleyiciye
i
değişkeninin tipini bildirir ve derleyiciden, hafızada bu değişken içinyer ayırmasını ister. Ancak bu bildirim, program çalıştırıldığında giriş, çıkış ya da hesaplamagibi bir işleme sebep olmaz. Çoğu programcı, sahte kodlar yazarken değişkenleri en baştalistelemeyi ve bu değişkenlerin amacıbelirtmeyi uygun görür. Yeniden ylememizgerekirse, sahte kodlar bir program geliştirme aracıdır.2
 
3.4 KONTROL YAPILARI
Genelde ifadeler, programa yazıldıkları sırada teker teker çalışırlar. Buna
 sıralı çalışma
denir.Ancak, bazı özel C komutları bu sırayı değiştirmemize yardımcı olur. Böylece, sıradaki ifadeyerine istenen ifadenin çalıştırılması sağlanabilir. Buna
kontrolün transferi
denir.1960'larda yazılım geliştirme grupları, kontrol transferlerinin karışık bir biçimde kullanımının büyük sorunlara yol açtığıfark ettiler. Bu zorluğun sebebi olarak, programcının
goto
ifadesiyle
program içerisinde oldukça geniş bir alanda hareket edebilmesi gösterildi.
Yapısal  programlama
,
 goto
ifadelerinin
elenmesiyle aynı anlama gelmeye başladı.Bohm ve Jacobi'nin çalışmaları, programların
goto
ifadeleri kullanmadan yazılabileceğinigösterdi. Programcılar,
goto
ifadesini daha az kullanmak zorunda kaldıklabir dönemegirdiler. Yine de profesyonel programcıların, yapısal programlamayı ciddiye almala1970'lerde gerçekleşti. Bunu, yazılım gruplarının yapısal programlama tekniklerini kullanarak geliştirme zamanını azaltmaları, sistemlerin zamanında dağıtımını sağlamaları gerçekleştirdi.Başarının anahtarı, yapısal programlamayla daha ık programlar yazma ve ilk etapta programlarda değişiklikler yapma ve hata ayıklamanın daha kolay gerçekleştirilmesiydi.Bohm ve Jacobi'nin çalışması, programların yalnızca üç kontrol yapısıyla yazılabileceğinigöstermişti. Bunlar :
 sıra yapısı
,
 seçme yapısı
ve
döngü yapısıydı
. Dizi yapısı, C'yi oluşturur.Aksi belirtilmedikçe bilgisayar, C ifadelerini yazıldıkları sırada çalıştırır. Şekil 3.1’deki
akış garfiği
parçası, C'nin sıra yapısını gösterir.toplam = toplam + not;sayici = sayici +1;
Şekil 3.1
C'nin dizi yapısı akış grafiği.Akış grafikleri, algoritmanın ya da algoritmanın bir kısmının grafik gösterimidir. Akışgrafikleri genelde dikdörtgen, çember, elmas gibi bazı özel kullanımlı sembollerden oluşur.Bu semboller,
akış çizgileri
ile birbirlerine bağlanır.Sahte kodlar gibi akış grafikleri de algoritmaları yazma ve geliştirmekte kullanılır. Ancak sahte kodlar, programcılar tarafından daha yaygın olarak kullanılmaktadır. Akış grafikleri,kontrol yapılarının nasıl çalıştığını gösterir. Biz de, kitabımızda, akış grafiklerini bu amaçlakullandık. Şekil 3.1’de sıra yapısı için akış grafiği parçasını inceleyiniz.
 Dikdörtgen sembolü
ya da
işlem sembolü
, giriş/çıkış ya da hesaplama gibi herhangi bir işlemi belirtmek içinkullanılır. Şekildeki akış çizgileri, işlemlerin sırasıbelirtir: İlk önce
not,
 
toplam’
aeklenecek, sonra da
sayiciya
bir eklenecektir. C, sıra yapısıyla istediğimiz kadar işlem3notu toplama eklesayiciya 1 ekle

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->