SÖZDE KODLAR

Programlama dillerini kullanmadan önce öğrenilecek olan konuların başında algoritmalar gelir.

Algoritmalar; yapılacak işlemlerin belirli bir sıra ile ifade edilmesi anlamına gelmektedir. Algoritmalar oluşturulurken iki yapıdan söz edilir. Bunlar;

1. Sözde kodlar(pseude-code)
2. Akış şemaları

Her programcının kendi diliyle yazdığı, programın yapacağı hareketlerin basitleşmiş ve programlama dilinin esnekleşmiş haline sözde kodlar denir. Sözde-kod, algoritma geliştirirken fikirleri ifade etmekte kullanılan en basit yöntem biçimsel (formal) programlama dillerinin kurallarını gevşetmektir. İş böyle olunca da nihayette kullanılacak olan programlama dili ne ise sözde-codu, o dili gevşeterek ya da basitleştirerek elde ederiz. Böyle geliştirilen sözde-cod da da söz dizim ve anlam bilgileri mevcuttur. Ama kurallar biçimsel bir dilde olduğundan çok daha az sayıda ve esnektirler[1].

Örnek olarak bir sözde kod dilimi;

Amacımız tutarlı ve tam bir sözde kod gösterimi oluşturmaktır. Bu notasyon daha sonra anlatacağımız fikirlerdeki tekrarlanan ve anlam yüklenen yapıları da temsil edebilmelidir. Tanımlanan yapılar bizim ilkelerimiz olmalıdır. İşe basit komutları ifade edecek sözde kod ve formatların yapıları belirtmekle başlayalım:

 

 

  1. 1.      Herhangi bir şarta bağlı aktiviteler: aşağıdaki cümleleri inceledikten sonra bu tür cümleler için genel bir sözde kod geliştirelim:

 

Yeşil ışık yanarsa karşıya geç, aksi durum da bekle.

Paran yeterse süt, ekmek ve gazete al yetmezse sadece ekmek al.

Burnu uzamışsa yalan söylemiş demektir. Yoksa o hep doğruyu söyler.

Bu ifadeleri bir sözde kod ile sunmak istersek şu şekil de yazabiliriz:

 

Eğer (yeşil ışık yanar ) ise (karşıya geç)

Değilse (bekle).

Eğer (paran yeter) ise (ekmek, süt, gazete al).

Değilse(ekmek al)

Eğer (burnu uzamış) ise (yalan söylemiş).
Değilse (zaten doğru söyler).

Yukarıdaki yapıyı, benzeri cümleler için genelleyebiliriz:

Eğer (koşul) ise (eylem)

Değilse (eylem)

Daha önce de belirttiğimiz gibi, sözde kodlar bir programlama dilinin katı kurallarını gevşeterek elde edilirler. Ama bilindiği gibi tüm programlama dilleri İngilizceyi esas aldıkları için, bu diller ile ilintili sözde kodlar da İngilizce kelimelerden oluşurlar. Yukarıda, Türkçe bir algoritmaya Türkçe bir sözde kod uydurduk. Ama Türkçe bir programlama dili olmadığı için bu sözde kodu Türkçe yazmanın bir anlamı yoktur[1]. Öte yandan Türkçe bir algoritmayı İngilizce bir sözde kodla anlatmak demek her şeyi İngilizce ye çevirmek anlamına gelecektir. Bu yüzden, biz biraz tuhaf bir yöntemle, yarı Türkçe yarı İngilizce bir kod kullanmayı tercih edeceğiz. Yani “eğer” yerine  “if”, “ise” “then” ve “değilse” yerine “else” kullanacağız. Parantez içindeki sözcükleri ise Türkçe bırakacağız. Bu takdir de, yukarıda yazılan sözde kodları söyle genelleyebiliriz:

İf (koşul) then (eylem)

Else(eylem)

            2. Koşul sürdükçe devam eden eylemler: Bu eylemleri koşul kontrolüne göre ikiye ayırabiliriz. Önce aşağıdaki örneklere bakarsak:

 

Keyfin yerinde olduğu sürece gülmeye devam et.

Hasta olduğun sürece uyu.

Yemek yerken konuşma.

Şimdi de yukarıdaki ifadeler için bir sözde kod geliştirelim:

 

Sürece (keyfin yerinde) yap(gül)

Sürece (hasta) yap(uyu)

Sürece (yemek) yap(konuşma)

Yukarıdaki sözde kod, benzeri birçok cümle için şöyle genelleştirilebilir.

Sürece(koşul) yap(eylem)

Yukarıda belirttiğimiz yaklaşımla burada da sözde kodlarımızda ki komutların İngilizce karşılıklarını kullanarak “sürece”  yerine “while”, “yap” ın yerine ise “do” komutlarını kullanacağız. Böylece, sözde kodumuzu şu şekilde ifade edeceğiz.

While(koşul) do(eylem)

İkinci olarak aşağıdaki örnekleri inceleyelim:

Öğreninceye kadar çalış.

    Yoruluncaya kadar oyna.

    Ölünceye kadar sev

 

Şimdi de yukarıdaki örnekler için sözde kod kısmı şu şekildedir.

Tekrarla (çalış) ta ki (öğren)

Tekrarla (oyna) ta ki (yorul)

Tekrarla (sev) ta ki (öl).

 Yukarıdaki sözde kodlar şu şekilde genelleştirilebilir.

Tekrarla (eylem) ta ki (koşul)

Burada da sözde kodlarımızdaki kelimelerin İngilizce karşılıklarını kullanarak “tekrarla” yerine” repeat” “taki” yerine ise “until” kelimeleri kullanılabilir. Böylece sözde kodumuzu şu şekilde ifade edebileceğiz:

repeat (eylem) until (koşul)

            3. Anlamlı bir isme değer vermek:  çoğu zaman bazı sayısal değerlere, ya da formüllere     anlamlı ve açıklayıcı isimler vermek isteriz. Örnek olarak;

 

Bir malın fiyatı, maliyet, kar ve vergi toplayarak bulunur. Şimdi sözde kodları kullanarak bu işlemi şu şekilde ifade edebiliriz:

Assign (toplam) value (maliyet+kar+vergi)

 

Sözde kod da “assign” sözcüğü “toplam” değişkenine maliyet+kar+vergi değerini “value” atar.

 

4. Satırları farklı marjinlerden başlatmak (indentation):  bir programın anlaşılabilmesi için karmaşık algoritmalardaki komutlar farklı marjinlerde yazılır.

 

Kapı zili çalmıyorsa kapıyı açma. Ama çalıyorsa o zaman git kapıyı aç.

             Kapı açılmıyorsa; önce git anahtarı al, sonra kapıyı aç.

 

Bu örneğin sözde kodu da şu şekildedir.

 

İf(zil)

Then(kapıyı açma)  

              Else[kapıyı aç;

İf(kapı açılmıyor)

                  Then(anahtarı al)

Else (kapıyı aç)]

Bu şekilde sözde kod ifade edilebilir.

 

            5.Yordamlar(procedure): sözde kodun hazırlanmasında, algoritmanın belirli bir görevini ifade etmek için program daha küçük programcıklara bölünür. Böylece program sıradüzenli bir yapıda sunulmuş olur. Bu yöntem sayesinde hem programın bütünlüğü bozulmaz, hem de daha kolay anlaşılması sağlanır.  Sözde koda bir başlık vermek için kullanılan terimdir. Yani sözde kodumuzun içeriğini simgeleyen bir ismi olacak sözde kodumuza,

 Procedure yordam_ismi ile başlayacağız.

Yordamlar genel olmalıdırlar. Örneğin; bir listeyi sıraya dizmek için geliştirilmiş bir yordam her listeyi sıraya dizebilmelidir. Bir yordam sadece belli bir listeyi sıraya dizmek için yazılmamalıdır. Bu amaçla da yordamlarda uygulamalara göre değişebilen parametreler tanımlanmalıdır[1].

Örnek olarak;

Procedure merhaba

Ekrana “bir sayı giriniz:” yaz

Assign say value (girilen sayı)

While say>0 do

(ekrana  “merhaba” yaz  ve assign say value say-1)

 

Şimdi yukarıdaki yordamımızı sözde kod içersinde kullanalım:

 

………………………..

İf (basla) then (merhaba)

Else (devam et)

………………………..

İf(bitir) then (gülegüle)

Buradaki parantez içindeki her kelime bir yordam ismidir.

 

Sonuç olarak, sözde kodlar bitmiş programlar değil, algoritmamızı kaba program özetleri halinde sunan, yarı biçimsel dillerdir. Bu yüzden sözde kodların içine bilgisayarın anlayamayacağı doğal sözcükler veya cümleler sıkıştırabiliriz. Doğal sözcüklerin nasıl biçimsel bir programlama diline dönüşeceği programcıların işidir. Eğer sözde kodu yazarken aklımızda belli bir biçimsellik oluşabiliyorsa, algoritmamızı doğrudan bu biçimsellik içinde yazabiliriz[1].

Konu ile ilgili sunum dosyasına ulaşmak için tıklayınız.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Close
Join me: