PROGRAM YAZMA TEKNİĞİ
PROBRAM YAZMA TEKNİĞİ
lo1.6.1 PROGRAMLAMA MANTIĞI
Prograa yazaa, bilgisayar aantığını tanıaayan ve prograa yazaaya yeni başlayan kullanıcılara haklı olarak kareasık gelaektedir. Bu karaasıklık, bilgisayarı tanıaaaaktan ileri gelaektedir. Bilgisayar, verilen prograaı isleyen ve hızlı çalışan elektronik bir aakinadır. Prograa verilaediği zaaan hiç bir islea yapaaadığı gibi, yanlış prograa verildiği zaaan ise yanlış sonuçlar verir. BİLGİSAYAR BİZİM VERDİSİNİZ PROGRAMI İSLER.
Vereceğiaiz bu PRMRAN nedir ı İlk bakışta bildiğiaiz prograadan farklı gibi dös&nülabiliyor. Hepialz, günlük hayatta her gün belirli prograalar yapar ve bu prograaları uygularız, Gerçek hayattaki prograalar, birtakıa düşüncelerden aeydana gelir. BİLGİSAYAR PROGRAMLARI DEYİMLERDEN MEYDANA BELİR. Bilgisayar prograalarındaki DEYİN’leri günlük prograalanaızdaki anlaalı cüalelere benzetebiliriz. Planladığıaız prograaı cüale cüale uygularız. B1L618AYAR PROGRAMLARI DEYİN DEYİN UYBULAR. Planladığıaız prograada, önce düsündüğüaüzü önce; sonrakini sonra uygularız. B1LS1SAYAR PROBRANLARI DEYİN SIRASINDA UYGULAR, ÖNCEKİ DEYİN ÖNCE SONRAKİ SONRA UYBULANIR. Plan ve prograalanaızda aynı anda birden fazla cüaleyi uygulayaaayız. B1LB1SAYAR BİR PR06RANDA BİR DEYİNİN UYGULAMASI BİTTİKTEN SONRA D16ER1N1 UYBULAR.
Planladığıaız prograalarıaızı uygulayabilaeaiz için bazı bilgilere ihtiyacıaız olabilir. Bu bilgilere başlangıçta ihtiyaç duyabileceğiaiz gibi uygulaaa sırasında da duyabiliriz. B1LB1SAYAR PROBRANLARINA S1R1S DEYİMLERİ İLE B1LB1 B1R1L1R.
Prograaıaızı uygularken elde ettiğieiz sonuçlan bazen bir yere kaydeder veya haberlesae aygıtları ile belirli yerlere haber göndeririz. BlLBtSAYAR PROBRANLARI, ELDE ETTİKLERİ SONUÇLARI ATANA BEYİNLERİ İLE KENDİ BELLE&1NDE SAKLAR VEYA ÇIKIŞ BEYİNLERİ İLE BAŞKA BİRİNE AKTARIR.
Bazen noreal hayattaki prograalanaızda şartlı düşünceler vardır. Belirli şartlara bağlı olarak prograaıaızm bir bölüşünü uygularken diğer bölüaünü uygulaaayız. ŞARTLI DEYİMLER, DEYİN ŞURUPLARININ UYGULANA SIRASINI KONTROL EDERLER. Bazende aynı şeyleri tekrar tekrar yapaayı planladığıaız düşünceler vardır. DÖN80 BEYİNLERİ, DEYİN ŞURUPLARININ UYGULAMASINI BELİRLİ SAYIDA TEKRAR ETTİRİR. İste günlük hayatıaızda yaptığıaız plan ve prograalar ile
■ayar programları yapı vt ı*ı«» varnaıııum un un mm 11711».»>. lir.
idi günlük hayattan bir problem secilıiı vt prograa örneği verilmiştir. Sercek bir lıayar programından farkı KÛKUSHA OtLINOE yazılmış olaasıdır.
iki bilgi uyar prograal arı günlük hayattaki plan ve prograal arı «izli benzerlik iriyor, prograa yazmaya böyle bir örnekle baslayalıa.
ıblamin î»mi 1 SI ŞORTA
trafik kazan sonucunda ağır yaralı bir hasta hastaneye kaldırılmıştır. Yaralının hayat rtası vardır. Kazayı yapan araç kaçmıştır. Çalıştığınız sigorta kurulusu sizi, olayı iturup, kazayı yapan aracın şoförünü ve aracın sahibini bulaakla görevlendirmiştir, rta sefi, olayı hic sosııstureadan önce, bir program yapıp, daktilo edip dosyalandıktan
1 ona vermenizi isteaaktedir.
^gramın Çözümü 1
ibeli bir sigorta eüfettisi olarak, biraz düşündükten sonra yapacağımız prograam
li noktalarını anlatan bir aetin yazalıa. Bu eetnin aadde aadde ve ayrıntılı olarak lmıs sekline AlflORlTCA denir.
90RTA
ayla ilgili bilgi toplayacağı» j içersinde hastane, yaralı ve olay yeri hakkında lgiler bulunması gerekecek.
staneye gidip hasta ile ğorüseceğim } kaza yapan şoför ve araç hakkında sorular nelteceğia. Bu soruların cevaplarına göre düşündüğüm programı uygulayacağım, ayı başka gören olup olmadığı konusunda sorular yönmlteceğim.
otanın verdiği bilgiler yeterli olmazsa hastaneye yaralıyı getiren sahıs hakkında bilgi playacağım.
bilgiler ile aracın plaka numarası, aracın sahibi ve kullanan şoförün kieliklerini lirleyip sigorta sefine bildireceğim.
hatlanyla ortaya çıkan olayın ayrıntılarını belirlemek için SERA’sını çizelim
ogramın İsmi s SİGORTA
1. NOT : OLAYLA 1L8İLI B1L61 TOPLA «MHMMMmmMMHHHHMtMH
2. OKU yaralının kialiğini, hastanenin isaini, alay yerini s
3. Sigorta kurulusuna gelen haber kaynaklarından
4. NOT i HASTA İLE SORUSTURHA
5. ŞAYET şoförü tanıaıyor İSE 61T 9’a
6. BELİRLE şoförün kialiğini
7. BELİRLE aracın sahibini
8. SIT 29’a
9. ŞAYET aracı gören var İSE 61T 10’a AKSİ HALDE BİT 13’e
10. NOT i ARACI 6ÖREN ÎLE SORUSTURHA *hhmhhhh«hhmhhhhh»
11. BELİRLE aracı görenin kialiğini
12. ŞAYET plakasını biliyor İSE 61T 24’e
13. NOT ı HASTANE KAYITLARININ İNCELENMESİ t*HtMHMHMHHHHHH*
14. Ö6REN hastaneye getirenin kialiğini
15. ŞAYET aracı gördü İSE 81T 22‘ye
16. NOT s OLAYLA IL61LI BIL6I TOPLA hhhhhhhhh»ihhhhh»h«
17. ŞAYET olayı gören var İSE GİT 20’ye
18. HABER VER *6örgü şahidi yok, faili bulunaaıyor”
19. BİTTİ
20. BELİRLE olayı görenin kialiğini
21. ŞAYET plakasını biliyor İSE 61T 24’e AKSİ HALDE SIT 18’e
22. NOT ı PLAKA SORUSTURHASI hwhwhhhhhhhh<hhhhhhw
23. ŞAYET plakasını bilaiyor İSE 81T 16’ya
24. BELİRLE aracın plakasını
25. SIT 33’e SONRA 6ER1 6EL NOT saracın sahibini belirleaek için
26. NOT s ARAÇ SAHİBİ İLE SORUSTURHA hhmmhhhhhhhhhhhh
27. ŞAYET o gön arabanızı siz kullandınız İSE BELİRLE şoförün kialiği*aracın sahibi ve BİT 29’a
28. BELİRLE şoförün kialiğini
29. NOT s SORUSTURHA T AH AHLANDI h»hhhh»hhhhhhihhh*hhh
30. HABER VER “Aracın sahibi ve şoförün kialikleri belirlendi”
31. HABER VER “Diğer bilgileri ; hastanenin, olay yerinin isialeri, hastanın ve görenlerin kialikleri”
J2. BİTTİ
33. NOT : TRAFİK SUBE MüDüRLüfiû »hhhh*hhh*hhhi»hhh*hhh»
34. BELİRLE plaka nuaarasına bağlı dosya sıra nuaaraıtnı
35. BELİRLE aracın sahibini NOT :sıra nuaarasına bağlı dosyalardan
36. 6ERİ 81T
37. SON
Sildi KONUŞMA DİLİNDE yazılaı* yukarıdaki prograaı, BASIC dilinin bazı deyitlarin kullanarak yazaaya calısalıt. Konuşta dilinde yazılan prograaın har cütlesi BASIC dilini bir deyiai ile tanıtlanaıstır. Değişkenlerin tanıtları aşağıda verilıistirı
Hll i Hastanenin isti
OYI s Olay yeri
YKI ı yaralının kialiği
A6t s Aracı görenin kialifi
H6t t Hastaneye getirenin kitliği
061 i Olayı görenin kiıiiği
AF! ı Aracın plakası
SKİ, ASI, M, DOSYALAR(BN} değişkenleri prograa içersinde taaıalanaıstır Programın İsmi s SİGORTA
1 REM OLAYLA İL8İLİ BİLGİ TOPLA hhhhhhhhhhhhmmhhhhh
2 READ YK!,H1I,0Y!
3 DATA “yaralının kialiği*, ‘hastanenin isai’/olay yeri*
4 REM HASTA İLE SORUSTURHA ihhhhhhhhhhhhhhhhhhhhh
5 IF şoförü tanıtıyor THEN SOTO 9
6 LET SKI«*$oförün kitliği*
7 LET ASI**aracın sahibi*
8 SOTO 29
9 IF aracı görtn var THEN SOTO 10 ELSE SOTO 13
10 REN ARACI SÜRER İLE SORUSTURHA mhhhhhhhhhmhhhhhhh
11 LET ASI**aracı görenin kialiği*
12 IF plakasını biliyor THEN SOTO 24
13 REN HASTANE KAYITLARININ İNCELENMESİ hhmhuhhmhhhhhiih
14 INPUT ‘Hastaneyi getirenin kitliği *”i HSI İS IF aracı gördi THEN SOTO 22
16 REM OLAY YERİNDE SORUSTURHA
17 IF olayı gören var THEN SOTO 20
İB PRINT ‘SÜRSû ŞAHİDİ YOK FAİLİ BULUNAMIYOR*
19 STOP
20 LET DSİ” ‘olayı görenin kitliği*
21 IF plakasını biliyor THEN 60T0 24 ELSE SOTO 18
22 REN PLAKA SORUSTURHASI mhihjmhmmhihihhihhhhhimhh
23 IF plakasını bilaiyor THEN 60T0 16
24 LET API> “aracın plakası*
25 SOSUB TRAFİK iREH ARACIN SAHİBİNİ BELİRLENEK İÇİN
26 REH ARAÇ SAHİBİ İLE SORUSTURHA hmihmhhihhhhhhhmhmm
27 IF o gün arabanızı sizai kullandınız THEN SKİ* ‘aracın sahibi* ıSOTO 29
28 LET SKİ» ‘şoförün kitliği’
29 REH SORUSTURHA TAMAMLANDI
30 PRINT ‘ARACIN 8AHİ8İ VE ŞOFÖRÜN KİMLİKLERİ BELİRLENDİ*
31 PRINT *Dİ6ER BUBİLER
32 STOP
33 REH TRAFİK SUBE HüDüRLüBü ihmhihihmhhhmhhhhuhmhh
34 LET SN* plaka nuaarasına bağlı dosya sıra nuaaraıı
33 LET AS4*D08YALAR(DN) tREH BİRA NUMARASINA BA6LI DOSYALARDAN
36 RETURN
37 END
[A probİNinin har iki prograaınıda satır satır karşılaştıracak olursak side» lakları DİL’in farklı olduğunu görürüz. Bu karşılaştım bize deyişlerin işlevleri ıda bir fikir verecektir. İtlevleri Basic Deyialeri bölününde ayrıntılı olarak tlacaktır. Bu tekilde iki prograa verileninin aeacı, aıaaa asaaa prograalata |ına sahip oluneasını sağlaa&k içindir.
dilinde yazılan prograaın bazı deyialerinde küçük harfle yazılan ifadeler ve çift ı içine alman karakter katarları vardır. Karakter katarlarının yerine turaadan alınacak cevaplar girecektir.
İS IF aracı gördü THEN SOTO 22
ide bir dtyia BASIC dilinde kullanılaaaz. “aracı gürdü* bir aantık cailesidir. Yerine dilinde kullanılan ifadelerden birinin (Bkz.1.1.5) geçaesi halinde bu deyia geçerli (tır. ilerde Basic dtyialerinin işlevini anlatırken bu ifadeler üzerinde Kaktır.
la Basic ifadelerinin de bulunduğu uygulanabilir bir prograa verilaiıtir. bismin İsmi a ASKER
istik uzaanı olarak bir garnizonda göreve baıladınız. Birinci Bölükteki askerler m, boyu 170 ca den uzun ve ağırlığı 63-75 kg arasında olanlar koaando birliğine ‘ilecektir. Bölük koautanı bu özelliklere sahip askerlerin seçilaesini isteaiatir. Bu !aparkan 400 kişi olan bölüğün yas ortalanasını da bulaanızı istiyor. Ancak bölük ını yapabileceğinizden eain değil. Sizden, önce bir seaa çizaenizi sonra bu aeıaya lir prograa yazeanızı ve daktilo ettikten sonra ona veraenizi istiyor.
blmmin Çözümü s
askerlerden tekli sıraya dizilaeleri ve bir kağıda ad ve soyadlarını, boylarını, ırını ve yaslarını yazaaları istenir. Her asker için sırayla aşağıda verilen iki itlealer yapılırı
4. ŞAYET Boy < 170 İSE 6tT 18 e
5. ŞAYET Ağırlık < 65 VE > 75 İSE SIT 18 e
16. YAZ Ad-Soyad
17. BELİRLE Konndo Sayısı * Koaando Sayısı + 1
16. Asker Sayısını 1 artır, Asker Sayısı *< 400 ise 6 ya git
19. BELİRLE Ya» Ortalatası ■ Yas Toplası / 400
20. YAZ Yas Ortalatası, Kotando Sayısı
21. BİTTİ
22. SON
KONUŞMA DİLİNDE yazılııs programlan faydalanarak BASIC DİLİNDE progrıııtızı yazalı»,
küçük harflerle yazılııs değişken isiılerini Basic dili için geçerli değişken fiyle değiştireli».
Yas Toplan (YT) Boy <BY>
Kotando Sayısı <KS> Kilo (KB1
Asker Sayısı (1) Yas (YS)
Ad-Soyad (ASI) Yas Ortalatası İYO)
gramın İmi ı ASKER
1 REH BAŞLANGIÇ BESERLERİNİN SIFIRLANMASI
2 LET YT « 0
3 LETKS-0
4 REN İKMGü BAÇLAN6ICI
5 FOR 1 « 0 TO 399
6 REN ASKER 8ELD1
7 INPUT AS*
S INPUT BY
9 INPUT KB
10 INPUT YS
11 REH YASLAR TOPLANI
12 LET YT * YT ♦ YS
13 REN ÖZELLİK BELİRLEME
14 IF BY < 170 THEN SOTO 18
15 IF K6 < 65 AND KS > 75 THEN 60TG 18
16 PRINT ‘Adı Soyadı ■ ‘j ASI
17 LET KS « KS +1 18NEKT I
19 LET YO » YT / 400
20 PRINT ‘Yas Ortalaıası YO \ ‘Kotando Sayısı = *j KS
21 STOP
22 END
iki prograıın satır satır karsılaıtınlaası ile bir birine cok benzediği, sadece lldıkları dillerin farklı olduğu görülür. Şu sonuca varılır ı BÖNLÜK HAYATINIZDA ‘TISINIZ PLAN VE PROGRAMLAR İLE BİLGİSAYAR PROSRAHLARININ YALNIZ DİLLERİ FARKLIDIR, YAPI İŞLEVLERİ AYNIDIR.
Prograalaaa Mantığı bölütünde problealeri cözerken uyguladığıaız yöntea, genelde bu »ahad» önerilen kurallara uygundur. KONUŞMA DİLİNDE yazılan prograa bu kuralın dışındadır.
İyi bir bilgisayar prograıı gelistirebilaek için bazı kurallar vardır. Prograıcı bu kurallar çerçevesinde, probieti cözerken prograı yazta tekniğini geliştirecektir. He* progratcı yetmeklerine en uygun y&nttıi izleyebilir. Aşağıda problee çözıe tekniğinin belirlemiş genel kuralları anlatılaaktadır. Bu kuralları bes gurup halinde inceleyeceğiz. (Bkz. Kaynak 8)
A. Probleain Tanıaı
B. Probleain Analizi
C. Progratın Kodlaması
D. Prograaın Uygulanaası
E. Prograaın Döküaan Haline Getirilaesi
A. PROBLEMİN TANIMI
Probleale ilgili elde edilebilir tüa bilgilerin toplanaası ve konuya hakia olunaasıdır. Prograacı probleain teaelinde yatan tekniği, aateaatik kuralları veya gerekli ticari ve ekonoaik kuralları bilaek zorundadır. Muhasebe bilgisi olaayan prograacı, auhasebeyle ilgili prograa yazaaaz. Konuyu ayrıntıları ile bilaek zorundadır.
B. PROBLEMİN ANALİZİ
Problea önce elle çözülebilecek şekilde incelenaelidir. Daha sonra istenilen sonucu verecek bir çözüa yönteai planlanaalıdır. Problea bu şekilde analiz edildikten sonra kodlanaaya kolaylık sağlaaası için AKİS DİYAGRAMLARI veya BLOK DÎYA8RAHLARI çizilir. Bu diyagraalar bilgisayarın yapacağı illetlerin resiali ifadeleridir. Çözüae götüren bütün detaylar ve gerekli adıtlar diyagraılarda görünaelidir.
BLOK DİYAGRAMLARI akis diyagraalarının aynısıdır ancak geniş kapsaılı büyük progratlarda kullanılırlar. Ana prograıın içindeki prograa parçalarını ve bu parçaların birbiri ile olan ilişkilerini gösterir. Başlangıçta hazırlanan blok diyagraalarında yaklısıa çok geneldir. Çünkü çözüae giden değişik alternatifleri gösteraesi gerekir. Blok diyagraalarında prograaın bölüaleri birkaç cüale veya şekille özetlenebilir. Probleain tüaüne aantıksal yaklaşıa taaaalandıktan sonra seaa genişletilir veya parçalanır. Bu parçalar veya genislatilıis seaa, bilgisayarın yapacağı bütün islealeri ayrıntıları ile gösteraelidir, İste bu ayrıntılı seaa AKİS DİYAGRAMI’dır. Akis diyagraaı bize kodlaaa sırasında rehberlik edecektir. SİGORTA probleaindeki leaa bir akıı diyagraaıdır.
Akis diyagraalan aşağıdaki fonksiyonları içeraelidirı
– Prograa gelistiraeye
– Kodlaaaya
– Prograaın döküaan haline gelaasinı yırdıact olaaya.
– il kullanılır. Bu »eaboller Seki 1-3 de anlaalan ile birlikte verilai»tir.