1 YAPISAL PROGRAMLAMA KAVRAMI Yapısal programlama, program tasarımı ve yazılmasını kurallara bağlayan ve disiplin altına alan bir yaklaşımdır.Yapısal programlama, programlardaki akış denetimini aşağıdaki üç temel yapı ile sağlamaktadır.Sıralı yapıSorgu (Seçimli) yapıTekrar (Yinelemeli) yapı
3 a)Sıralı yapıBir programda yer alan iki veya daha fazla program deyimi göründükleri sırada çalıştırılır.Örneğin;Klavyeden girilen iki sayıyı okuyup aritmetikortalamasını hesaplayan ve sonucu ekranayazan bir programın akışı yandaki şekildeifade edilebilir;
5 b)Sorgu (Seçimli) Yapıları If End IfIf … End If bloğu sayesinde mantıksal sınamalar yaparak, şarta bağlı olarak istediğimiz işlemi yaptırtabiliriz. Bu yapının Türkçesi şudur: "eğer şöyle ise şunu yap; öyle değilse şunu yap. Örneğin:If ortalama > 70 then'şart doğru ise çalıştırılacak kodlarElse'şart doğru değilse çalıştırılacak kodlarEnd IfHer else deyimi kendisine en yakın eşleşmemiş then deyimi ile eşleştirilmelidir.
6 b)Sorgu (Seçimli) Yapıları Çoklu Seçim DeyimiProgramdaki akışı belirleyen ikiden fazla yol varsa çoklu seçim deyimi kullanılır.
7 b)Sorgu (Seçimli) Yapıları Case Bloğu (VB)Select Case bloğu, If … End If bloğuna benzer. Farklı yönü ise şudur: If bloğu ile normal şartlarda 2 durumu kontrol edebiliriz. Yani bir şart ya geçerlidir, ya da geçersizdir. Select Case bloğunda ise çok daha fazla durumu kontrol edebiliriz. Örnekle açıklamak gerekirse;Bu örneği If ile yapmaya çalışsaydık pek pratik olmayacaktı. Çünkü meslek değişkeninin alabileceği çok fazla değer var. Bu yüzden çok fazla değer alınabilecek durumlarda Select … Case yapısı kullanılırSelect meslek Case "öğretmen" 'meslek="öğretmen" ise yapılacak işlemler Case "doktor" 'meslek="doktor" ise yapılacak işlemler Case "mühendis", "mimar" 'meslek="mühendis" veya meslek="mimar" ise yapılacak işlemler Case Else 'yukarıdakilerden hiçbiri değilse yapılacak işlemler End Select
8 c)Yineleme Yapılar-- Döngüler Bir programda yer alan bir komut yada komut gurubunun istenilen sayıda çalıştırılmasını sağlayan yapılara yineleme yapıları denir.Döngü Çeşitlerisayaç denetimli döngülermantıksal denetimli döngüler
9 Sayaç Denetimli Döngüler Bir sayaç denetimli döngüde, döngü değişkeni adı verilen bir değişken sayaç değerini gösterir.Bu sayaç değerinin başlangıç değeri, bitiş değeri ve ardışık iki değeri arasındaki farkı gösteren adım büyüklüğü, bir sayaç denetimli döngü gövdesinin kaç kez yineleneceğini belirler.Başlangıç değerinden başlayan döngü değişkeni, her yineleme için, adım büyüklüğü değerine göre artırılacak veya azaltılacaktır.
10 Sayaç Denetimli Döngüler FOR DöngüsüSayaç Denetimli DöngülerAşağıda verilen şekilde “for” döngü yapısı akış diyagramı olarak gösterilmekte ve genel yazılım formatı verilmektedir (C dilinde);
11 For Next Döngüsü (vb dilinde) Sayaç Denetimli DöngülerBu döngüde kod parçasının belli bir sayıda çalıştırılmasını sağlayabiliriz. Genelde i olarak tanımlanan bir döngü değişkeni kullanılır. i değişkeninin bir başlangıç değeri, bir bitiş değeri, bir de artış miktarı vardır. i değişkeni bitiş değerine ulaşana kadar döngü tekrar eder. Örneğin: Dim i As integer For i = 1 to 5 Step 1 'i 1 den başlayarak 5'e kadar birer birer artacak Msgbox(i) Next
12 Sayaç Denetimli Döngüler For Each DöngüsüSayaç Denetimli DöngülerFor … Each döngüsü For … Next döngüsüne benzer bir yapı gösterir. Farkı ise For … Next döngüsünde döngünün kaç defa döneceğini biz belirlerken, For … Each döngüsünde ise döngünün kaç defa döneceği genellikle döngüyle beraber kullanılan bir dizi değişkendeki eleman sayısı kadardır. Yani For … Each döngüsü genel olarak dizilerle beraber kullanılır. Bir örnekle açıklamak gerekirse; Dim isimler() As String = {"Ahmet", "Ayşe", "Fatma", "Zehra"} For Each eleman As String In isimler Msgbox (eleman) Next
13 mantıksal denetimli döngüler DO … WHILE ve Do….Until Döngüsü Do While döngüsünde şartı başta belirleriz. Do Until'de ise sonda. Dolayısıyla Repeat Until kullanıyorsak kodlar en az bir kere çalışır. Do While'da ise şart doğru değilse kodlar hiç çalıştırılmaz. Sanırım bir örneğin vakti geldi:Dim a As Integer = 10Do While (a > 0)Msgbox(a)a = a - 1LoopBu örneğe göre a değişkene 10 değeri veriliyor. a sıfırdan büyük olduğu sürece ekrana a değişkenini yazıyor ve a'nın değerini 1 azaltıyor. Bu şekilde döngü a değişkeni 0 olana kadar devam ediyor. Başka bir deyişle şart doğru olduğu sürece kodlar çalıştırılıyor. Ekran çıktısı olacak.
14 mantıksal denetimli döngüler DO … WHILE ve Do….Until DöngüsüDim a As Integer = 10 Do Until (a < 0) Response.Write(a) a = a - 1 Loop Bu kodlarda farklı olarak şartımız a < 0 oldu. Çünkü Do Until arasındaki kodlar şart doğru olana kadar çalıştırılır. a 0'da küçük olana kadar ekrana a değişkeninin değerini yazacak ve a değişkenini bir azaltacak. Ekran çıktısı olacak.
15 Mantıksal Denetimli Döngüler ÖRNEKLERDo While — Loop DöngüsüDim a, b, c As Integera = 0b = 1Do While a < 3c = InputBox("Sayı yazınız...")b = b + ca = a + 1LoopMsgBox("b=" & b)Dim sayi, artis As Integersayi = TextBox1.Textartis = TextBox2.TextDo While sayi <= 20MsgBox("Sayıyı artış miktarı kadar artır.=" & sayi)sayi = sayi + artis
16 Akış Denetimini Değiştirme (Koşulsuz) Yapısal programlama için, bir program içinde deyimlerin akışı denetlenmelidir. Ancak akış denetiminin değiştirilmesini sağlayan deyimler, yapısal programlama ilkelerine uymayan yapılar içerebilirler.Programlama dillerinde yer alan go to deyimi ve döngülerden erken çıkış için veya döngünün bir geçişinin normalden önce tamamlanması için kullanılan deyimler, bu deyimlere örnek oluşturmaktadır.
18 Goto Deyimi Goto deyimi, bir programda akış denetimini koşulsuz olarak değiştirmeyi sağlayan deyimdir. Akışı yönetmek için güçlü bir deyim olmakla birlikte, akışı koşulsuz olarak değiştirme, bir programdaki deyimlerin sırasını rasgele olarak belirleyebildiği için, sorunlara yol açmaktadır.goto deyiminin programların okunabilirliğini ve güvenilirliğini azaltarak, bakım aşamasını ve programların etkin çalışmasını güçleştirdiğini göstermiştir. (Bunu ifade eden bir benzeştirmede goto deyiminin yer verildiği programlar, sphagetti kodu olarak nitelendirilmiştir.)
22 C' de break Deyimi:C'de sayaç denetimli veya mantıksal denetimli döngülerden normalden önce çıkış, break deyimi kullanılarak sağlanabilir. break deyimi çalıştırılır çalıştırılmaz, döngü dışına çıkışı sağlar.
23 C' de continue Deyimi:C' de döngülerde akışı değiştirmek için break deyimine ek olarak denetimi en içteki döngünün sınama deyimine aktaran continue deyimi tanımlıdır. continue deyimi, döngüyü sona erdirmeden döngü gövdesinde bulunulan noktadan döngü kapanış deyimine kadar olan deyimlerin atlanmasını ve döngünün bir sonraki yinelemeye devam etmesini sağlar.
24 ÖzetYapısal programlama, program tasarımı ve yazılmasını kurallara bağlayan ve disiplin altına alan bir yaklaşımdır.Yapısal programlama:Programların anlaşılabilirliğini artırır.Bir programın hatalarının ayıklanmasını kolaylaştırır.3. Programın sınanmasını ve düzeltilme zamanını kısaltır.4. Bir programın niteliği, güvenilirliği ve etkinliği artar.