BAYRAĞIM


Ey mavi göklerin beyaz ve kızıl süsü

Kızkardeşimin gelinliği, şehidimin son örtüsü.

Işık ışık, dalga dalga bayrağım,

Senin destanını okudum, senin destanını yazacağım.



Sana benim gözümle bakmayanın

Mezarını kazacağım.

Seni selamlamadan uçan kuşun

Yuvasını bozacağım.



Dalgalandığın yerde ne korku ne keder...

Gölgende bana da, bana da yer ver!

Sabah olmasın, günler doğmasın ne çıkar!

Yurda, ay-yıldızının ışığı yeter.



Savaş bizi karlı dağlara götürdüğü gün

Kızıllığında ısındık;

Dağlardan çöllere düşürdüğü gün

Gölgene sığındık.



Ey şimdi süzgün, rüzgarlarda dalgalı;

Barışın güvercini, savaşın kartalı...

Yüksek yerlerde açan çiçeğim;

Senin altında doğdum,

Senin dibinde öleceğim.


Tarihim, şerefim, şiirim, herşeyim;

Yer yüzünde yer beğen:

Nereye dikilmek istersen

Söyle seni oraya dikeyim!

 

KONU 2:
2.PROGRAM YAZIMI
AMAÇ:
Bilgisayarda bir problemin çözüm aşamalarını yaparak, program yazmaya hazırlık yapabileceksiniz.


Bu konumuzun amaçını yukarda belirttim ve şimdi program yazımı hakkında kısaca bilgi sahibi olmaya başlıyalım;

Şu anda oturup programlama yapabilir olsanız da, bu bir bebeğin önüne yemesi için gerekli malzemeyi savurmaya benzer.Basit programları öğrenmek için hemen yazabilirsiniz.Ekranın ortasına okulunuzun adını yazmanız için uzun uzun plan yapmanıza gerek yoktur. Ama çok karmaşık programları,bilgisayarınıza aktarmadan önce, kâğıt üzerinde planlamanız gerekebilir.
Programı tasarlarken, ilk düşünmeniz gereken şey “hangi dili kullanacağınız” değildir.
Programdan ne istediğinizi tam olarak bilirseniz, hangi dili kullanacağınıza kolay karar
verirsiniz. Tek bir dili aramak yerine, değişik dilleri göz önünde bulundurunuz. Programınız
çalıştığı sürece, hangi dil ile yapıldığı önemli değildir, özellikle de programınızı alan“müşteri” (kullanıcıda diyebiliriz) bununla ilgilenmez.Bilgisayarda çözmeniz gereken problemin, sadece bir çözümü (algoritması)olmayabilir. Her çözümün kendi avantajı veya dezavantajı olabilir. Bazı algoritmalar daha hızlı olarak işlemi bitirirken, aynı algoritmanın kod kısmını yazmak çok uzun sürebilir,mantığı çok karmaşık olabilir. Sık ağaçlarla kaplı bir ormana, dışarıdan baktığınızda içinden geçip gitmenin imkânsız gibi gözüktüğünü bilirsiniz. İşlemleri adımlara böldükçe hazmetmesinin daha kolay olduğunu göreceksiniz. Planlama sayesinde, yanlış program kodu üzerinde uğraşmaz, çözüm için zaman kaybetmezsiniz.

Şimdi Programı tasarlarken şunları göz önünde bulundurmalısınız;
Kullanıcı: programı kim kullanacak?
Hedef bilgisayar: Windows mu, Linux mu, bir el bilgisayarımı, yoksa bir süper bilgisayar mı?
Siz: tek başınıza mıyapacaksınız? Takım halinde çalışacak iseniz hangi kısımları siz yazacaksınız?

A)Kullanıcı:
Eğer programı sadece siz kullanacaksanız, görünümü istediğiniz gibi tasarlayabilirsiniz, çalışması yeterlidir. Satacak veya ücretsiz olarak verecek iseniz, karşınızdaki insanları tanımanız mantıklı olur. Kullanıcının

bakışaçısı ile bakarak programı tasarlamanız gereklidir.

B)Hedef bilgisayar:
Kullanıcının kullandığı bilgisayarın türünü göz ardı edemeyiz.
Programlama dilini buna göre seçeriz. Hangi donanımı kullandığıda önemlidir. Bir Mac kullanıcısı için bol hafıza, disk alanı, renkli grafikler, ses avantajı varken, bir el bilgisayarında ise daha az renk seçeneği, ekran
çözünürlüğü ve belleği vardır. Bir program ne kadar çok çeşitli ortamda çalışıyor ise o kadar rağbet görür. Bu prensibe “çapraz platform – cross platform” denir.
Kullanıcı sayısınıartırma çabalarımız, beraberinde daha fazla hata türü ile karşılaşmamıza
neden olur. Müşteri desteği sağlarken bunlara dikkat edilmelidir. Farklı sürümlere bölünmek,kârın bölünmesi demektir.


C)Siz:
Herhangi bir programlama dili ile uğraşırken, önce kendi yeteneklerinize dikkat edersiniz. İyi bir proje aklınıza gelmiş olabilir. Ama deneyiminiz az ve bilginiz az olunca, kendi programınızı yazmak zor
gelebilir. Acemi biri için C ve C++ ile program yapımı çok zaman alıcı olabilir. Daha basit olarak Visual Basic’te program yazmayı öğrenip, piyasada çalışmaya başlayabilirsiniz. Bir günde program yazan çok az insan vardır. Program kod yazımı zaman alır, acele yapıldığında içi hatalarla dolabilir. Ne yapacağınızdan emin olduktan ve istenen programın ne işyapacağını anladıktan sonra program yapımına başlayınız.
Prototip(Kalıp) Oluşturma
Tam çalışmayan veya yanlışçalışan bir program olmamasıiçin programa aylarca
zaman harcamadan önce, programcılar mimarların maket modeller yapmasıgibi, “prototip”
oluştururlar. Bunu normal bir program gibi, menüleri, formları, diyalog kutularıolan ama
içinde kod olmayan bir uygulama olarak düşünebilirsiniz. Fikir vermek amacıile yapılırlar.
Prototipten memnun kalınca, programcıkodlamaya geçer. Birçok programcıVisual Basic
veya Delphi gibi görsel bir programlama dili ile prototip hazırlar.
Sahte Kod Ve Algoritma Yazma
Programlama dili seçseniz bile, hemen kod yazımına geçemezsiniz. “Pseudocode –
sahte kod” denilen kodlama ile programın işlemleri yazılır. Sahte kod kurduğunuz
mantıktaki kaçaklarıbulmaya yarar.
Örneğin; eğer bir şehre füze göndermek isterseniz adımlarınız şu şekilde olabilir:‡‡
1. Hedefin koordinatlarınıal
2. Füzenin şu anki koordinatınıal
3. Hedefi vurmasıiçin gerekeni hesapla
4. Füzeyi ateşle
1. adımın daha da gelişmişhâli şöyle olabilir:
1.a. Füze teknisyeninden hedef koordinatlarıedin
1.b. Hedef koordinatların geçerli olduğundan emin ol
1.c. Hedef koordinatlarıhafızaya kaydet
1.a. maddesini daha alt basamaklara bölebiliriz.
1.a.i. Koordinattan emin ol
1.a.ii. Hedef füzenin atışuzaklığıiçinde mi, kontrol et
1.a.iii. Hedef dost bölge mi, kontrol et
Bu “üstten aşağı– top down” tasarım ile kaba bir taslak gittikçe ayrıntılışekilde
parçalanır. Genelden özele doğru işlemleri belirleriz. Bu zaman kaybıgibi görülebilir.
Plansız olarak programınızıyazmaya başlayabilirsiniz. Ama bu arabaya atlayıp Samsun’dan
Mersin’e gitmek için kuzeye doğru gitmeye benzer.
Sahte kodlar programınızın ana hatlarınıbelirtir. Böylece bilgisayarın başaracağıiş
için gerekli tüm veriyi toplamışolursunuz.
Büyük bir programın temel adımlarının olduğu algoritma “makro seviye” olarak
isimlendirilirken, detayların algoritmalarına “mikro seviye” denir. Makro seviye içinde
birçok mikro seviye algoritma vardır. İlk kez program yazan kişiler detay kısımlarınıgenelde
görmezden gelirler. Üzerinde çok düşünülmeden yazılan program, her ihtimale uygun cevap
veremeyeceği için hatalıçalışır.
Eğer plansız olarak program yazarsanız, kaçınılmaz son, kısa süre sonra “kod
çöplüğü” olabilir. Programıalan kişi nasıl kod yazdığınızıumursamasa da, böceklerle (bug)
*
dolu bir yazılımı, siz olsanız kullanır mıydınız?
Temelde programınızıüç ana bölüme ayırabiliriz:
Giriş: Bilgisayarın üzerinde çalışacağıveri kullanıcıtarafından girilir.
İşlem: Bilgisayar girilen bilgiyi işler.
Çıkış: Bilgisayar insanların anlayacağışekilde ekrana sonucu gösterir.
Örnek:
Giriş:
a. Ürünün adınıal.
b. Ürünün miktarınıal.
c. Bir dosyadan ürünün fiyatınıoku.
İşlem:
a. Ürünün toplam fiyatınıhesapla.
b. Gerekli indirimi yap.
Çıkış:
a. Toplam satışdeğerini yaz.
Örnekteki adımları“sahte kod” olarak alt alta toplarsak:
1. Başla.
2. Ürünün adınıal.
3. Ürünün miktarınıal.
4. Bir dosyadan ürünün fiyatınıoku.
5. Ürünün toplam fiyatınıhesapla.
6. Gerekli indirimi yap.
7. Toplam satışdeğerini yaz.
8. Bitir.
Bazıtemel sahte kod komutlarışunlardır:
Başla … Bitir : Sahte kodun ilk satırıbaşlangıç ve son satırıbitişi için yazılır.
Oku : Kullanıcıgirişi için yazılır.
Yaz : Kullanıcıya bilgi veya sonuç göstermek için yazılır.
Eğer İse Değilse : Şartlara göre akışın değişmesinde kullanılır.
Böcek (bug): Programda hatalara sebep olan program satırlardır.*
Örnek:
1. Başla
2. Sayısal sayı1, sayı2, sonuc
3. Yaz; “İki sayıgiriniz”
4. Oku; sayı1
5. Oku; sayı2
6. sonuc = sayı1 + sayı2
7. Yaz; “Sonuç: ” & sonuc
8. Bitir
Not: Birden fazla değer peşpeşe okumada, kısaca şu şekilde de tek satırda okuma yapabilirsiniz:
Yaz; “İki sayıgiriniz”
Oku; sayı1, sayı2
Sahte kodu satır numaralarıolmadan “bloklar” hâlinde yapabiliriz. Her blok
açıldığında biraz daha içeriden yazmaya dikkat ediniz. Böylece program daha okunaklıhâle
gelir.
Sahte Kod Ve Algoritma Yazma Örnek;



Kitap indirimi ile ilgili sahte kod yazalım:
Başla
Yaz; "Kitap türünü giriniz"
Oku; kategori
Eğer kategori A İse Yaz; "A kategorisinde %10 indirim vardır."
Eğer kategori B İse Yaz; "B kategorisinde indirim yoktur."
Bitir
Siz de basit olarak bir çay makinesinin, ütünün ve telefonun kullanımı ile ilgili adımları yazınız.
Akış Şemaları
Akışdiyagramlarıgörsel olarak basitçe bir problemin akışının gösterimidir. Microsoft
firmasının Visio, Word, Powerpoint gibi birçok program ile bu grafikleri hazırlayabilirsiniz.
Biz de bazıörnekleri denemek ve çizmek için “Flow Chart Visual Programming
Language§§” isimli açık kaynak kodlu*** bir proje olan programıkullanacağız. Ayrıca
“Crocodile Technology” isimli program ile de akışşemalarının hem tasarlanmasıhem de
çalıştırılmasıimkânımız var.
Şema ile program hazırlığıayrıca UML ile yapılabilir. UML††† İngilizce Unified
Modelling Language (BirleştirilmişModelleme Dili) kelimelerinin başharflerinden meydana
gelir. Modelleme sırasında kullanılacak bir dizi şematik gösterimi teşkil eder. Genelde nesne
tabanlısistemlerin analiz ve modelleme aşamalarında kullanılır. Nesnelerin birbirleri
arasındaki ilişkilerini ve kendi iç yapılarınıgösterir. Programlama dilinden ve işletim
sisteminden bağımsız bir modelleme dilidir. “IBM Rational Rose” programıve ArgoUML
ile tasarım yapabilirsiniz.
ANSI (American National Standards Institute), akışdiyagramlarıile ilgili bazı
tavsiyelerde bulunmuştur:
 Akışdiyagramındaki standart sembollerle programın mantığısunulmalıdır.
 Akışdiyagramıbasit, açık ve kolay takip edilebilir olmalıdır.
 Her akışdiyagramının bir adet başlangıç ve bitişnoktasıbulunmalıdır.
 Akışdiyagramının takip yönü yukarıdan aşağıya, soldan sağa doğru olmalıdır.
 Veri girişleri mantıklıbir sırada listelenmelidir.
 Başlangıç ve bitişsembollerinde tek hat kullanılmalıdır.
 Akışdiyagramıçok karmaşık hâle gelince, bağlantınoktalarıve alt program
kullanılmalıdır.
 Test verisi ile şema denenmelidir. Değerleri bir tabloya aktarılmalıdır.


İki sayıyı toplayıp sonucunu gösteren programın akış şeması şu şekildedir:
İki sayıyı karşılaştırma programının akış şeması şu şekildedir:
Bozuk bir televizyon kumandası ile ilgili çözüm akış şeması şu şekildedir:
Araç tamir ve bakımı ile ilgili bir örnek akış şeması:
Akış diyagramları sahte kodlara göre daha anlaşılır ve etkindir. Geliştirme aşamasında iyi bir yol göstericidir, hatalar daha rahat görülür.
Dezavantajları şunlardır:
Çok sayfa süren akışdiyagramlarızor takip edilir.
Bir grafik programıile çizimi zaman kaybına neden olur.
Bir değişiklik yapmak gerekince şemanın tekrar çizilmesi gereklidir

KARAR TABLOLARI:
Başka bir programlama yardımcısı karar tablolarıdır (decision table). Çok karmaşık karar yapıları bu sayede kolayca çözülebilir hâle gelir.
Şart kütüğü, şart, durum kütüğü ve durum olmak üzere tablo halinde 4 parçadan oluşur.
Şart kütüğü:  Hangi kararlar verilecek?
Şartlar:  Şartın alternatifleri neler?
Durum kütüğü:  Belli şartta ne yapılacak?
Durumlar:  E (Evet) ve H (Hayır) halinde hareket seçenekleri
Örnek:
ABC şirketi bir sekreter eleman alacaktır. Şartları:
a. Aday bayan olmalı
b. En az 2 yıl deneyimli olmalı
c. Bekâr olmalı
Dikkat ettiyseniz en fazla sekiz durum olabiliyor. Bu sayı2 ^ 3 = 8*hesabından
geliyor. İkilik sayı sİstemindeki gibi sadece iki ihtimal (E / H) olduğu için taban ikidir. Üç
adet de limit sağlayan şartımız var.
Tüm olabilecek durum gözden geçirilerek hata olması engellenir. Akış diyagramına
göre daha okunaklıdır. Fakat ilk kez program yazanlar genellikle akış diyagramı çizmeyi
tercih ederler.
Aşağıdaki soruların sahte kod, akışşemasıveya karar tablolarıyöntemi ile
çözümünü yapınız:
1. Bir sınıftaki 5 öğrencinin notlarıgirilir, ortalamasıhesaplanır.
2. Bir elektronik mağazasında 37 ekran televizyonlar %20, 54 ekran televizyonlar da %15 indirim yapılıyor. Buna göre ekran boyutu girildiğinde, indirim oranını mesaj olarak gösteriniz.
3. Bir üniversite teorik dersin 25 saatine 1 kredi, laboratuvarın 10 saatine 1 kredi
veriyor. Ders ve laboratuvar saati girilince toplam krediyi hesaplayan programı yazınız.
Sahte kodu karışık olarak verilen problemin satır sıralarınıdüzeltiniz. Problem
şudur; 3 ürünün satışve maliyet fiyatlarıgirilir, kârlarıtoplanır ve ortalamalarıalınır.
Üç ürünün kârını topla.
Üçüncü ürünün satış fiyatını gir.
Birinci ürünün satış fiyatını gir.
Toplamı3’e bölerek ortalamasını bul.
Üçüncü ürünün maliyet fiyatını gir.
Bitir.
İkinci ürünün satış fiyatından maliyet fiyatını çıkarıp kârını bul.
İkinci ürünün maliyet fiyatını gir.
Ortalama kârı göster.



Yorum Gönder Blogger

 
Top