MEGEP (MESLEKİEĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİPROJESİ)



Benzer belgeler
T.C. MİLLÎ EĞİTİM BAKANLIĞI

1.1. Yazılım Geliştirme Süreci

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Bilgisayarda Programlama. Temel Kavramlar

1.PROGRAMLAMAYA GİRİŞ

Bilgisayar Programlama Dilleri

B02.8 Bölüm Değerlendirmeleri ve Özet

Bilgisayar Programı Nedir?

Dr. Fatih AY Tel: fatihay@fatihay.net

PROGRAMLAMA TEMELLERİ

Bölüm 8 Ön Ürün ve Hzl Uygulama Gelitirme. 8lk Kullanc Tepkileri. Dört Çeit Ön Ürün. Ana Konular. Yamal Ön Ürün. Ön Ürün Gelitirme

BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

İSTANBUL RUMELİ ÜNİVERSİTESİ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI 1.SINIF 2.YARIYIL İNTERNET PROGRAMCILIĞI II DERS İZLENCESİ

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

PROGRAMLAMA TEMELLER. C Program Yap s

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

Genel bilgiler Windows gezgini Kes Kopyala Yapıştır komutları. 4 Bilinen Dosya Uzantıları

ÖĞRENME FAALĠYETĠ 6 ÖĞRENME FAALĠYETĠ NESNE ĠġLEMLERĠ

Excel Sorular? 1. Excel Sorular? 1. A Grubu

Merkezi İşlem. Birimi

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

C++ Dersi: Nesne Tabanlı Programlama

Bilgisayar Programlama. 1.Hafta

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

TEMEL BİLGİTEKNOLOJİLERİ

Ö RENME FAAL YET DOSYALAMA LEMLER AMAÇ ARA TIRMA Genel Bilgiler

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

ALGORİTMA VE PROGRAMLAMA I

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1

Temel Bilgisayar Programlama

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BİLGİSAYAR ORGANİZASYONU

Akdeniz Üniversitesi

BQTEK SMS Asistan. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Derleyici Kuramı (Compiler Theory)

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) TESİSAT TEKNOLOJİSİ VE İKLİMLENDİRME

Algoritma ve Akış Diyagramları

Program Nedir?(1) Programlamaya Giriş

4. Bölüm Programlamaya Giriş

TEMEL BİLGİSAYAR BİLİMLERİ

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

İnternet Programcılığı

Evrak Ekle. Kurum İçi Giden Evrak Ekleme. Kırmızı renker; doldurulması zorunlu alanları ifade etmektedir. İleri Geri tarihli işlem yapılamamaktadır.

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

DEBUGER (Komut seti kontrol prosedürü)

KODLAMAYA HAZIRLIK MODÜLÜ 1. YAZILI SINAV ÇALIŞMA SORULARI VE MODÜL ÖZETİ

İNTERNET PROGRAMCILIĞI - II

Yrd. Doç. Dr. İlhan AYDIN Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü

T.C. MİLLÎ EĞİTİM BAKANLIĞI

Hackerlar'ın Gözünden Flash Uygulamaları

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Online Bilimsel Program Yönetici K lavuzu

BİLGİSAYAR TEKNOLOJİSİ VE PROGRAMLAMA DERS İÇERİKLERİ I. YARIYIL

.. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Ünite-3 Bilgisayar Yazılımı.

İşletim Sistemi. BTEP205 - İşletim Sistemleri

2-Hafta Temel İşlemler

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

ENFORMATİK Dersin Amacı

. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

ENF-106 C Programlama Dili Ders İçeriği. Grafik fonksiyonları C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN

VERİ TABANI UYGULAMALARI

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

AKINSOFT CMS (İçerik Yönetim Sistemi)

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Yazılım Mühendisliği Bölüm - 3 Planlama

BİLİŞİM TEKNOLOJİLERİ OFİS PROGRAMLARI KULLANIMI MODÜLER PROGRAMI (YETERLİĞE DAYALI)

C/C++ DERS KONULARI. Kaynaklar 1. C Programlama dili, Kemal Yarcı 2. C/C++, Gürcan Banger 3. C ve Siz, Fatih Ekici

Genel Programlama I

Hızlı Başlangıç Kılavuzu

AOSB 2017 EĞİTİM PROGRAMI

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Resim 1. Access açılış sayfası. Resim 2. Access veri tabanı düzenleme sayfası

PROGRAMLAMA DERSİ 1. İNTERNET

İşletim Sisteminin Katmanları

BLG 1306 Temel Bilgisayar Programlama

MODÜL : 1 BİLGİSAYAR KULLANMA

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

Powerpoint; Microsoft ofis programları içinde bulunan bir sunum hazırlama programıdır.

Transkript:

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİEĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİPROJESİ) BİLİŞİM TEKNOLOJİLERİ PROGRAMLAMA TEMELLERİ ANKARA 2007

Milli Eğitim Bakanlğtarafndan gelitirilen modüller; Talim ve Terbiye Kurulu Bakanlğn 02.06.2006 tarih ve 269 saylkararile onaylanan, Mesleki ve Teknik Eğitim Okul ve Kurumlarnda kademeli olarak yaygnlatrlan 42 alan ve 192 dala ait çerçeve öğretim programlarnda amaçlanan mesleki yeterlikleri kazandrmaya yönelik gelitirilmiöğretim materyalleridir (Ders Notlardr). Modüller, bireylere mesleki yeterlik kazandrmak ve bireysel öğrenmeye rehberlik etmek amacyla öğrenme materyali olarak hazrlanm, denenmek ve gelitirilmek üzere Mesleki ve Teknik Eğitim Okul ve Kurumlarnda uygulanmaya balanmtr. Modüller teknolojik gelimelere paralel olarak, amaçlanan yeterliği kazandrmak koulu ile eğitim öğretim srasnda gelitirilebilir ve yaplmas önerilen değiiklikler Bakanlkta ilgili birime bildirilir. Örgün ve yaygn eğitim kurumlar, iletmeler ve kendi kendine mesleki yeterlik kazanmak isteyen bireyler modüllere internet üzerinden ulalabilirler. Baslmmodüller, eğitim kurumlarnda öğrencilere ücretsiz olarak dağtlr. Modüller hiçbir ekilde ticari amaçla kullalamaz ve ücret karlğnda satlamaz.

İÇİNDEKİLER İÇİNDEKİLER İÇİNDEKİLER...i AÇIKLAMALAR...ii GİRİŞ...1 ÖĞRENME FAALİYETİ- 1...3 1. PROGRAMLAMA DİLLERİ...3 1.1. Bilgisayar Programİçin Neler Bilmeliyim?...6 1.2. Programlama Dili...6 1.3. Neden Birçok Programlama Dili Vardr?...6 1.4. HzlUygulama Gelitirme Ortamlar... 11 1.5. Veri Taba(Database) Programclğ... 12 1.6. Betik (Script) Programclğ...12 1.7. Web Programclğ...13 UYGULAMA FAALİYETİ... 15 ÖLÇME VE DEĞERLENDİRME...16 ÖĞRENME FAALİYETİ- 2...18 2. PROGRAM YAZIMI...18 2.1. Prototip (Kalp) Oluturma... 20 2.2. Sahte Kod ve Algoritma Yazma... 20 2.3. AkŞemalar...23 2.4. Karar Tablolar... 27 2.5. Bir Programn Hayat Döngüsü...29 UYGULAMA FAALİYETİ... 32 ÖLÇME VE DEĞERLENDİRME...33 ÖĞRENME FAALİYETİ- 3...35 3. PROGRAMLAMA ARAÇLARI... 35 3.1. Düzenleyici... 36 3.2. Derleyici...36 3.3. Böcek Ayklayc(Debugger)... 37 3.4. Yardm ve Kurulum... 38 UYGULAMA FAALİYETİ... 44 ÖLÇME VE DEĞERLENDİRME...45 MODÜL DEĞERLENDİRME...48 CEVAP ANAHTARLARI...51 SÖZLÜK... 54 ÖNERİLEN KAYNAKLAR... 56 KAYNAKÇA...57 i

AÇIKLAMALAR KOD ALAN DAL/MESLEK MODÜLÜN ADI MODÜLÜN TANIMI AÇIKLAMALAR 481BB0024 Biliim Teknolojileri Alan Ortak Programlama Temelleri Programlama altyapsve temellerini oluturan öğrenme materyalidir. SÜRE 40/16 ÖN KOŞUL YETERLİK MODÜLÜN AMACI EĞİTİM ÖĞRETİM ORTAMLARI VE DONANIMLARI ÖLÇME VE DEĞERLENDİRME Bilgisayarda program yazmaya hazrlk yapmak Genel Amaç Gerekli ortam sağlandğnda, programlama dillerini tayp, bilgisayarda bir problemin çözüm aamalar yaparak, program yazmaya hazrlk yapabileceksiniz. Amaçlar 1. Programlama dillerini ilevlerine göre ayrt edebileceksiniz. 2. Program yazmaya hazrlk yapabileceksiniz. 3. Program yazm araçlarkullanabileceksiniz. Bilgisayar laboratuvarve bu ortamda bulunan; bilgisayar, yazc, bilgisayar masalar, kâğt, kalem, lisansl iletim sistemi programve akdiyagramsembolleri ile ilgili panolar. Her faaliyet sonrasnda o faaliyetle ilgili değerlendirme sorular ile kendi kendinizi değerlendireceksiniz. Modül içinde ve sonunda verilen öğretici sorularla edindiğiniz bilgileri pekitirecek, uygulama örneklerini ve testleri gerekli süre içinde tamamlayarak etkili öğrenmeyi gerçekletireceksiniz. Srasyla aratrma yaparak, grup çalmalarna katlarak ve en son aamada alan öğretmenlerine daarak ölçme ve değerlendirme uygulamalargerçekletireceksiniz.. ii

GİRİŞ GİRİŞ Sevgili Öğrenci, Her eyden önce herkes bir programlama dilini öğrenebilir. Bilgisayar programlama yüksek bir zekâ ve matematik bilgisi gerektirmez. Sadece asla vazgeçmeme sabrve öğrenme isteği yeterlidir. Programlama bir hünerdir. Bazinsanlar doğal olarak diğerlerinden daha iyidir, ama herkes pratik yaparak iyi olabilir. Baaramamaktan korkmak yerine, kendinizi bu maharete vererek, öğrenmek için uğran. Programlama eğlencelidir, fakat yanl çalma yöntemleriyle sinir bozucu da olabilir ve zamazn boa geçmesine neden olabilir. Bu sebeple bu modülleri takip ederek, en az skntve en yüksek memnuniyet ile programlamay öğreneceksiniz. Programlamada, bir problemin çözüm aamalarn sralbir ekilde yazlmasna Algoritma, bu aamalarn ekillerle gösterilmesine ise Ak diyagram denir. Algoritmay, günlük hayattaki bir probleminizi çözerken yapmaz gereken uygulamalar belli bir düzene sokma ilemine benzetebilirsiniz. Algoritma, programlaman temelidir. Önce çözüm belirlenir sonra kullalacak programlama diline uygun komutlarla program yazlmtamamlar. Algoritma bir binan temeli gibidir. Temeli sağlamsa bina ayakta durur. Bu yüzden algoritman iyi tasarlanmas, programn temelinin iyi oluturulmasgerekmektedir. Bu modül sonunda; istediğiniz herhangi bir problemin bilgisayardaki çözüm aamalar yazabileceksiniz. Çözüm aamalarbelirledikten sonra istediğiniz bir programlama dilini kullanarak gerekli yazlmoluturulabileceksiniz. Akdiyagramlarile yazdğz algoritmayekillerle daha kolay, anlalr ve takibi kolay klacaksz. 1

2

ÖĞRENME FAALİYETİ 1 AMAÇ ÖĞRENME FAALİYETİ- 1 Programlama dillerini ilevlerine göre ayrt edebileceksiniz ARAŞTIRMA Bu faaliyet öncesinde hazrlk amaçlaağda belirtilen aratrma faaliyetlerini yapmalsz. Bilgisayarzdaki kurulu programlarn genel olarak kategorilerini belirleyip, bir liste hazrlayz. Mesela müzik programlar, resim programlar, yardmc programlar gibi Kullandğz programlarn hangi programlama dilleri ile yapldğaratrz. Size göre çok ilginç olan bir programn özelliklerini anlatz. Ne ie yaradğ ve nereden edinilebileceğini not ediniz. Farklprogramlama dillerinde Merhaba Dünya Hello World program örnekleri bulunuz. Dilin adve örnek programbir kâğda yazz. Konularda bazkelimelerin altmavi dalgalolarak çizilidir. Bu konulararatrmaz tavsiye edilir. Not: Her dilin kendine göre avantajbulunmaktadr. Modülde belli yerlerde verilen örnekleri yaptğzda o dilleri öğrenmiolmayacaksz. Asl amaç, anlatlmak istenen konunun uygulanmasdr, somut ve anlalr hale gelmesidir. 1. PROGRAMLAMA DİLLERİ Bilgisayar çok karmak bir elektronik cihazdr, imdilik bizi ilgilendiren ksm onun çalma prensibi değil, programlama ksmdr. Bilgisayar öğrendiğini unutmaz, eğer iyi programlarsaz kusursuz olarak ilemleri yapar, yorulmadan hep ayilemi tekrar yapabilir. Programlar bilgisayarn tüm kaynaklarna eriebilir, tabii onu yazan programcizin vermiise. Bilgisayar, bir konuda yorum yapamaz, yeni durumlara uyum sağlamak için çaba sarf etmez. İnsan unutkandr, hata yapabilir, yorulur ve beyninin tamamkullanamaz, moral durumu değiebilir ve duygusal olarak etkilenir. İnsanlarn en büyük avantaj, yeni durumlar karsnda bocalasa bile zamanla uyum sağlayabilmesidir. Bana gelen olaylardan ders çkartabilir. Tek bana birçok sorunu çözebilirler. Bilgisayar ise her zaman aytepkiyi verir, kendini gelitiremez. İnsan tarafndan kontrol edilmedikçe etkinliklerini değitirmezler. 3

Bilgisayar; ekonomi, bilim, mühendislik, eğitim ve askeri alanlarda yardmcolmas için üretilmitir. Çok karmak formüllerin sonucunu ksa zamanda elde etmek için programlar yazlmtr. Özellikle İkinci Dünya Savaveri ifreleme ve silahlarn hedefi daha doğru bulmasgibi konular sebebi ile bilgisayarn geliimi hzlanmtr. Bir programlama dilini neden öğreniriz? Bu sorunun cevab, eğlence için, bir ihtiyac gidermek için, kariyer için veya zekâzkatlamak için olabilir. Para kazanmak her ne kadar birincil hedef gibi görünse de, eğer iinizi severek yapmyor iseniz, ne kadar kazandğzn pek önemi olmaz. Eğer bilgisayara ne yapmasgerektiğini söylemezseniz, hiçbir ey icra etmez. Bilgisayara yaptrmak istediğiniz eyi iki ekilde gerçekletirebilirsiniz: Adm adm bir program yazarak Uygun bir program satn alarak Bazprogramlarn girive çklar: Tür Giri İlem Çk Kelime İlemci Klavyeden girilen karakterler Yazybiçimlendirir, yazmkontrol eder Düzgünce ekrandan veya yazcdan çk Oyun Fare, klavye ve oyun Ekranda hzlbir Ekrandaki figürler çubuğu tubasmlar ekilde bir animasyon hesaplama Muhasebe Şu anki ve geçmi Piyasadaki fiyat Gelecekteki ürün Program fiyatlar etkilerini tamlama Web Tarayc HTML kodlar Kodlarresim ve yazya dönütürme İyi bir programn temel özellikleri unlardr: fiyat Web sayfas ekranda gösterme Doğruluk Dayakllk Geniletilebilme Basitlik Modülerlik Uyumluluk Kontrol edilebilirlik Kolay kullam Parçalanabilirlik Anlalrlk Koruma : Verilen görevlerin tam olarak yerine getirilmesidir. : Beklenmedik hatalardan dolayprogramn çalmas kesilmemelidir. : İleri aamalarda görevlerin değiikliği veya yenilerinin eklenmesi kolay olmaldr. : Karmak tasarmlardan kaçnmak gerekir. : Program kodlarbaka programlar içinde de kullalabilmelidir. : Baka bilgisayar ve sistemlerde çalabilmelidir. : Hata olabilecek yerlere açklaychata mesajlarkonulmaldr. : Kullacara birimi kolay olmalve rahat öğrenilebilmelidir. : Problemin küçük parçalara ayrlarak yazlmasdr. : Bakasn yazdğprogram elden geçirilirken rahatça okunabilmelidir. : Modüller birbirlerine müdahale etmemelidirler. 4

Temel olarak bir algoritma, bilgisayara belli bir problemin çözümünü anlatmaktr. Dünya problemlerden olutuğuna göre, pratikte insanlarn yazabileceği program saysve çeitliliğinin bitmesi çok zordur. Büyük bir problemin bilgisayara yaptrlmasiçin, genellikle küçük parçalara bölmek gereklidir. Örneğin bir oyunda u admlarçözmek gerekebilir: Kullacn bir nesneyi (araba, adam, uzay gemisi ) nasl hareket ettirebileceği Nesnenin duvar, uçurum veya çevredeki baka nesnelere göre çarpmadan, dümeden nasl hareket edeceği Gerçekçi olarak çevre tasarmyapmak Gelen merminin nereye çarptğ bulmak ve oyuncunun sağlk durumunu ekrana yazmak Programlama genellikle zor değildir, ama zaman harcayan bir itir. Bir pinpon oyununu yazmak, bir savauçağn simülasyonunu yapmaktan daha kolaydr. Eğer adm adm bir yeri tarif edebiliyorsaz, program yazabilirsiniz. Bir bilgisayar aptal olduğuna göre ona ne yapacağadm adm anlatmaz gereklidir. Arkadaza evinizin yolunu tarif ederken: Yayla mahallesine git Çnar sokağna git Trafik klarndan sağa dön İki sokak ileride sola dön Bir insan için kolay olan bu admlar bilgisayarda yazldğnda hiçbir anlam ifade etmez: Yayla mahallesine nasl gideceğim? Çnar sokağnasl belirleyeceğim? Iklardan ne kadar sonra sağa döneceğim? Sola dönünce arabaynasl park edeceğim? Programclk Programlar her zaman ie yaramayabilir. 1980 li yllarda Amerikan ordusu Teğmen York isminde bir pilotsuz uçan uçak savar planlamt. Basit olarak amaç, düman uçağ bulup yok etmekti. Milyonlarca dolar harcandktan, saatlerce program yazldktan ve test edildikten sonra programclar çalacağna emin oldular. En üst rütbeli subaylar ve görevliler önünde, deneme için hazrlk yapld. Maalesef deneme srasnda, Teğmen York tüm silahlardümana değil, komutanlarn üzerine doğrultmutu. Neyse ki insanlar etrafa dağlrken, füzelerini atelememiti! Bu korkunç denemeden sonra proje rafa kaldrld. 5

1.1. Bilgisayar Programİçin Neler Bilmeliyim? Bir programkullanmaktan çok, yazma konusunda istekli iseniz, zaten program yazmak için gerekli eye sahipsiniz demektir. İstek: Önünüze ne kadar engel çksa da, isteğiniz varsa öğrenirsiniz. (Kanuni olmayan bir ey ile ilgileniyorsaz, hapishanede geçirilecek zamaz olabilir!) Merakllk: Bu sayede öğreneceğiniz dil size angarya gibi gelmez. Hayal gücü: Böylece daha ilginç ve faydalprogram yapabilirsiniz. 1.2. Programlama Dili Bilgisayar Türkçe, İngilizce veya baka bir dilden anlamaz. Bilgisayarn fonksiyonel bir beyni olmadğiçin insanlar komutlar yazmaldr. Bu özel dile programlama dili denir. Komutlar bir araya gelerek program meydana getirir. Belli bir dil ile yazlmkomutlara kaynak kod da diyebiliriz. 1.3. Neden Birçok Programlama Dili Vardr? Her programlama dili özel bir amaca hizmet eder. İnsanlar farklproblemleri çözmek için değiik programlama dilleri yazmlardr. Temelde bilgisayarlar 1 ve 0 lardan oluan ikilik say * sistemindeki dili anlarlar. Buna makine dili denir: 0010 1010 0001 1101 0011 1100 1010 1111 0101 0110 1101 0101 1101 1111 0010 1001 Makine dilinin dezavantajlar, kodlaryazarken hata yaplma olaslğn fazla olmas ve yazmn uzun sürmesidir. Makine dilinin daha rahat programlanmasiçin 1950 li yllarda assembly dili gelitirilmitir. Assembly dili basit, hatrlanmas kolay deyimlerden oluur. Programclar 1 ve 0 ile program yazma yerine assembly dili ni gelitirmilerdir, bilgisayarn bu yazlanlarla ilgili hiçbir fikri yoktur. Bu sebeple programclar assembly dil komutlar makine dili ne çeviren programlar yazmlardr. Bu programlara makine dili çeviricisi - assembler denir. Böylece assembly dili ile yazlmbir kod, bilgisayarn anlayabileceği makine dili ne dönümüolur. Not: Bir programilk denemede çaltrmak zordur. Genel davraolarak programokunakl yazarsaz, hatalara frsat vermez, ileride bir eklenti yapmak istediğinizde zorlanmazsz. * Bir çevrim örneği: (1100) 2 = 1 * 2 3 + 1 * 2 2 + 0 * 2 1 + 0 * 2 0 = 8 + 4 = (12) 10 6

Assembly dilinde kod örneği Title Yazi Programi dosseg.model small.stack 100h.data my_message db 'Selam!',0dh,0ah, '$'.code main proc mov ax,@data mov ds,ax mov ah,9 mov dx,offset my_message int 21h mov ax,4c00h int 21h main endp end main Resim 1.1: Bilgisayarn anladğdil; makine dili Not: Intel uyumlu ve Microsoft un MS DOS ve Windows iletim sistemlerine uygun bir assembly dili ile burada örnek verdik. Kiisel bilgisayarlar (PC), PowerPC (Macintosh), PIC ve 8051 gibi ilemci ve mikro denetleyicilerin kendilerine has dilleri ve çevirici programlarvardr. Temel olarak makine dilinde; mantksal ilemler, aritmetik ilemler, dallanma ilemleri ve veri hareket ilemleri yapabiliriz. Bu ilemleri kullanarak ister basit ister çok karmak programlar yazabilirsiniz. Assembly dili makine dilinden daha rahat yazlmasna rağmen, hala baz dezavantajlara sahiptir: Yavave çok yer kaplayan programlar oluur. (bu satr hatalassembly yazlan programlar az yer kaplar ve yavaçalmazlar) Baka dile çevrilmeleri zordur. Çok uzun program yazmna elverili değildir. 7

Resim 1.2: Dillerin genel görünümleri Programclar donama eriimi daha kolay olan, okunakl, yazmve düzenlemesi kolay olan bir dile ihtiyaç duymulardr. Bunun üzerine C (1972 doğum yl) tanabilir dili gelitirilmitir. Cobol (1959) ve Fortran (1957) gibi birçok diller de vardr ama hala günümüzde yaygn olarak kullalan C dili olmutur. C dilinde kod örneği main() { printf ("Selam!\n"); } Ekrana Selam! yazan bu örnek İngilizce diline benzer kodlamaya sahiptir. İnsanlarn konuma diline yakn olan dillere yüksek seviye dil denilmitir. Aslnda programlama dilinin İngilizce olmasart değildir. Kendi dilimizde olan örnek program Tupol ile yazlmtr. Tupol dilinde kod örneği PROGRAM SelamProgrami; Basla Yazi(#i,"Selam!"); Bitti. Resim 1.3 te baka bir Türkçe programlama dili olan Pozitif dilinden örnek var. Tanabilir: Tasarlandğbilgisayarn haricinde, yani donamdan bağmsz olarak diğer bilgisayar türlerinde de çalabilme özelliğidir. 1995 ylnda iki genç bilgisayar mühendisi aday(savaköse ve Mehmet AKIN) tarafndan lisans derslerinin arasnda 4 5 ay gibi ksa bir sürede yazlan TUPOL 2.0 ilk, belki de tek Türkçe derleyici olmas, azim ve çalman sonuçlargöstermesi açsndan önemli bir örnektir. Pozitif bazmatematiksel ilemleri, metinler üzerinde oynamay, kullacdan bilgi girii alarak bunlar üzerinde ilem yapabilmeyi sağlayan bir dildir. Birkan KUYUMCU 8

Resim 1.3: Pozitif Türkçe programlama dili ile örnek program yazm Her ne kadar kendi dilimizde program yapmak gurur ve heyecan verici olsa da, ileride göreceğiniz bir dilin temel gereklilikleri sebebi ile bu dillerde büyük (karmak) programlar yapmak zordur. Programlamaya snmak için, ilk denemelerinizi bu programlama dillerinde yapabilirsiniz. Bir dilin okunaklve kolay yazlabilir olmasdnda, bilgisayarn donamna ulamasve baka bilgisayarda da rahatlkla çalmasgereklidir. Yüksek seviye bir dili makine diline çeviren programlara derleyici compiler denir. Derleyiciyi aynen Franszca bir kitabn Türkçeye çevrilmesini sağlamak gibi düünebiliriz. Tabii insan dilinin baka dile çevrimi çok daha zor bir ilemdir. Eğer uygun bir derleyiciniz var ise programzn kaynak kodunu baka bilgisayarda derleyerek çaltrabilirsiniz. Örneğin, Macintosh ta yazlan bir programn kodlar Windows ta biraz değitirerek kullanabilirsiniz. C programlama dili diğer Cobol ve Fortran gibi dillerden daha basit olduğu için, C dilini makine diline çeviren birçok derleyici yazlmtr. C dili böylece öyle çok yaygnlamtr ki, bu dile uyumlu olan diller ortaya çkmtr. Mesela C++ (c plus plus), Java, Perl, Python ve C# (c sharp) gibi. Şu anda kullalan tanm, tanmambirçok program C veya C++ ile yaplmtr: Windows, Unix, Microsoft Office gibi... Not: C nin çok güçlü olmasbazkötülükleri de beraberinde getirir: Tüm sistem kaynaklarna erimek gibi. Bu kullanmasbilmeyen birinin eline elektrikli testere vermek veya el bombasvermek gibidir Yanlyazlan kod, bilgisayarn göçmesine sebep olabilir. Özellikle eski DOS günlerinde programdaki hatalardan dolaybilgisayarn kilitlenmesi çok sk olan bir durumdu. Yeni iletim sistemleri, program hatalarnda bilgisayarn kilitlenmemesi için önlemler almlardr. Programlama dilleri özel amaçlar için yazldklariçin o dilde her istediğinizi yapmak zordur. Mesela Fortran matematik hesaplamalar için yaplmtr, bu dilde bir iletim sistemi yazmak gereksiz yere çok uzun zaman alan bir ilem olur. 9

Mühendisler diğer insanlarn rahatça program yazmalariçin Basic (Beginners All Purpose Symbolic Instruction Code - 1964) ve Pascal (1971) gibi diller üretmilerdir. Basit bir dilden yola çklarak istenen dile geçiyaplabilir. Basic dilinde kod örneği PRINT "Selam!" Gördüğünüz gibi ekrana bir mesaj yazmak için Basic te sadece bir satr kod yeterli oluyor. Bu dil sayesinde insanlar kodun yazmile uğramaya değil, amaçladklarie odaklanabiliyorlar. C ve Basic arasnda kalan Pascal ise biraz daha iyi görünümlü, yapsal program yazmaysağlyor: Pascal dilinde kod örneği Program Message; Begin Writeln ('Selam!'); End. Lisp 1950 li yllarda yaplmbir derlenebilen mantk programlama dilidir. Prolog ( programming in logic kelimelerinin ksaltmas) adndaki 1972 ylnda ortaya çkan dil ise, mantk programlama dili olarak tarif edilebilir. Komut dizileri yerine mantk deyimleri ile program yazlr. Genellikle yapay zekâ ile ilgili konularda kullalr. Yazmve kurallarçok basittir. Yüksek seviyeli dillerin genel özelliklerini öyle özetleyebiliriz: Makine diline göre daha ikin ve yavakod meydana getirirler. Tüm sistem kaynaklarna ulalamayabilir, tabii amacz disk yardmc program(norton SystemWorks ) gibi program yazmak değilse Bir derleyici gereklidir. Ksa zamanda program yazmaya balar. Öğrenme ve ustalama için geçen zaman fazla değildir. Yanllkla sistem kaynaklarn bozulmamasiçin kalkanlarvardr. Okumasve değitirmesi kolaydr. Baka bilgisayar çeitlerinde de çalabilirler, yani tanabilirdirler. Sk sorulan sorular: 1. Assembly dili ile yüksek seviye dil arasndaki hz farkne kadardr? Cevap:Assembly dili yaklak 2 ile 20 kat arasnda daha hzldr. 2. Assembly dili ile yüksek seviye dil arasndaki program tasarm süresi ne kadardr? Cevap:Assembly dili yaklak 10 ile 100 kat arasnda daha yavasürede tamamlar. 3. Derleyiciler hangi dilde gelitirilmilerdir? Cevap:Önceleri assembly dili ile yazlmlardr. Daha sonra yüksek seviye diller güçlendikçe bu diller kullalarak derleyiciler yazlmtr. 10

1.4. HzlUygulama Gelitirme Ortamlar Eski zamanlarda fare, grafik ekran imkâolmadğiçin metin tabanl ortamlarda çallrd. Pencere ve düğme gibi kavramlar ise, 1984 ylnda Apple "System 1" ve 1992 yllarnda Microsoft Windows 3.1 in ortaya çkmasile günlük hayatmza girdi. Pencereler, kaydrma çubuklar, araç çubuklar, menüler programcn daha hzlbir ekilde program yapmasna sebep olduğu için, bu ortamlara HzlUygulama Gelitirme Rapid Application Development (RAD) denilmitir. Görsel Programlama Dilleri (Visual Programming Languages) olarak da adlandrlrlar. Programcoluturacağprogramn ara birimini, istediği gibi tasarlayabilir ve bu ara birimi ilevsel hâle getiren kod ksm yazabilir. Popüler RAD dilleri: Visual Basic, Delphi, JBuilder ve Visual C#. Resim 1.4: Visual Studio 2005 programn hakknda ksm RAD ile programc, temel programlama dilleri olan C, Basic ve Pascal gibi dilleri kullanarak, hzlbir ekilde uygulama gelitirebilir. Kullacara birimi gelitirmek kolaydr. C ve Basic bilen için görsel programlama diline geçiçok kolaydr. Maalesef RAD ile dilin tanabilirliği azalr. Yani Windows ortamnda Visual Basic ile yazlan programn, Linux ta çalma ihtimali azdr. Tahmin ettiğiniz gibi, artk görsel programlama ile yaptğz programlar daha çok disk alakaplayacak ve daha yava çalacaklar. Türkçe görsel programlama diline örnek Yunus tur **. Resim 1.5: Yunus ekran görüntüsü ** Çoğunlukla Visual Basic benzeri kodlama sistemimiz var. Aslnda houma giden Pascal ve C++ komutlarekledim. Sonuçta Türkçe veya baka bir dile özelletirilebilen basit bir eğitim amaçlscript (betik) dilimiz oldu. Tark BAĞRIYANIK 11

1.5. Veri Taba(Database) Programclğ C ve benzeri diller genel amaçldiller olduğu için, bu diller ile oyun, muhasebe programveya bir kelime ilemci programyaplabilir. Bilgisayarlarn en çok kullam ala ise, bilgi kaydetme ve düzeltmedir. İsimler, adresler, elektronik posta adresleri, telefon numaralar, ideneyimleri, muhasebe geçmileri gibi bilgiler veri tabanlarnda saklar. Neredeyse tüm firmalar veri tabasayesinde ilerini daha rahat yürütürler. Kimse garip komutlar ile kayt, okuma ve silme ilemlerini yapmak istemez. Veritabakolaylatrmak için veritaba(database) programclğ gelitirilmitir. Veri taba programlama ile değiik firmalarn isteklerine göre özel veri tabanlar oluturabilirsiniz. En çok kullalan veri tabaprogramlarmicrosoft Access, MSSQL ve MySQL dir. Verileri düzenleme için kendilerine has dilleri vardr. Bu dile SQL (Structured Query Language Yapsal Sorgu Dili) denir. dbase, FileMaker ve FoxPro programlarise artk pek kullalmyor. Yine SQL tabanloracle ise, çok büyük veri tabanlarbarndran, güvenlik ve hz gerektiren uygulamalarda kullalr. Veri tabaprogramclğn dezavantajlarunlardr: Veri tabaprogramlar, veri tabaileyen program sistemde kurulu değilse çaltrlamazlar. Sadece veri tabaprogramkullanarak antivirüs, oyun, kelime ilemci gibi program yapamazsz. 1.6. Betik (Script) Programclğ Birçok program kendi programlama dilinin kullalmasimkâsağlar. Örneğin Word ve Excel içinde, neredeyse Visual Basic e benzeyen, Visual Basic for Applications (VBA) adverilen bir dil vardr. Office programlariçindeki makrolar (VBA) kullacya yardmcilevler sağlar: Resim 1.6: Excel de makro örneği VBA dilinde kod örneği Private Sub CommandButton1_Click() MsgBox "Selam!" End Sub 12

Macintosh iletim sisteminde bulunan AppleScript ile basit bir örnek görelim: AppleScript dilinde kod örneği on DisplayMessage() display dialog "Selam!" buttons {"Tamam"} end DisplayMessage DisplayMessage() Windows iletim sisteminde bulunan yğn dosyas(*.bat) ile basit bir örnek görelim: @Echo off Echo Selam! Pause Betik dilleri normalde diğer programlama dillerinden daha kolaydr. Bu diller ile kullacya yardmcbazilemler yapabiliriz: Var olan bir programözelletirebiliriz. Çok az program yazarak, karmak bir programkullalhale getirebiliriz. Şunlarunutmayz: Betik dili ana programa bağmldr, sadece ana programn kurulu olduğu bilgisayarlarda yazdğz program çalabilir. Programzn satve dağtmzordur. Almak isteyen ana programda satn almak zorunda kalr. Genel programlama dillerinden daha kstlimkânlarz vardr. 1.7. Web Programclğ Batch dilinde kod örneği Bazanlarda okunakllğazaltsa da, günümüz internet siteleri bol grafik, efekt ve animasyonlarla süslüdür. Kolay web programclğiçin HTML (HyperText Markup Language Hiper Yazİaret Dili) icat edilmitir. Bir sitenin HTML olarak kaynağincelediğinizde çok karmak ve dağk gelebilir. HTML ile site tasarmçok zor olduğu için JavaScript gibi web sayfasyardmc programlama dilleri yaplmtr. Etkileimli site yapmak, kullacn formlara girdiği verileri kontrol etmek, site içine oyun eklemek isterseniz, bunlarjavascript, Java, CGI veya Macromedia Flash ile yapabilirsiniz. JavaScript dilinde kod örneği <script language="javascript"> alert("selam!"); </script> PHP dilinde kod örneği <? echo "Selam!";?> 13

ASP dilinde kod örneği <% Response.Write "Selam!" %> Web programlama dilleri, sitenin ziyaretçi saysartrr ve ziyaretçinin uzun süre sitede kalmalarsağlar. Öğrenmesi kolaydr ve dünyan herhangi bir yerinden siteye (uygulamaya) ulap, değiiklikler yapabilme imkâvardr. Dezavantajlar: Tüm web tarayclarjavascript ve Java desteklemez. (Daha eski tarayclar gibi) Bağlanthzdüürür. İnternet bağlantsyok ise sayfan görüntülenmesi mümkün olmayabilir. Sonuç olarak her konuda bir ie yarayan mükemmel dil yoktur. Profesyonel olarak program yazmak istiyorsaz, C# gibi yüksek seviye bir dil ve SQL gibi veri tabadili öğrenmelisiniz. İbulmakta zorlanmazsz. Eğer sizden site yaplmasisteniyor ise Java, JavaScript, PHP ve ASP.NET gibi dillere aina olmak kaçlmazdr. Eski bilgisayarlarda hâlâ eski kodlarn barnmasndan dolay, piyasada az kullalan diller ile iyi kariyer yapabilirsiniz. Hatta bilen saysaz olmasndan dolay, iyi ücret alabilirsiniz. Çok Dil Kullanma Bazderleyiciler, kaynak kodu önce özel bir dosya türüne çevirir. Object file nesne dosyas denilen bu dosya, kaynak dilden bağmsz hâle gelir. Farkldilde oluturulmu nesne dosyalar, linker - bağlayc adverilen programlar ile birletirilir. Sonuçta ise çaltrlabilir tek dosya oluur. Microsoft Windows, dillerin ortak kod kullamiçin DLL (Dynamic Link Libraries Dinamik BağKütüphanesi) yöntemi kullar. Ara birimi olmayan bu dosyalar, farkl programlama dilleri kullanabilsin diye sisteme tatlmtr. Son bir yöntem, Microsoft un.net teknolojisidir. Ayara birimde ister C#, ister Basic veya baka bir dil ile program yazlabilir. Ayveri tabave çözümü ortak kullanarak birçok programcbir arada çalabilir. Her dilin kendine has avantaj kullalarak, uygulamalar daha güçlü hâle gelebilir. 14

UYGULAMA FAALİYETİ İlem Basamaklar 1. Bilgisayarzdaki temel imkânlar ile basit programlar yazz. 2. C dili ve assembly dillerinde basit bir programn komutlar karlatrz. 3. Bilgisayarzda yüklü olan görsel programlama dilini kullanarak basit bir uygulama hazrlayz. 4. Web programlama dillerinden birini kullanarak basit bir sayfa hazrlayz. Öneriler En ilkel yöntemler ile program yapmbulmaya çalz. "debug " ile basit mikroilemci komutlar denenebilir. Not defteri ile basit bir web sayfasyaplabilir. *.bat yğn dosyalarile sisteme yardmc ilemler yaplabilir Benzerlik, farkllk, iyi ve kötü yönlerini inceleyiniz. Görsel bir programlama dili ile metin tabanlbir dilin benzerlik ve farkllklarinceleyiniz. Ara birimi hazrlarken iletim sisteminde yüklü programlarörnek alabilirsiniz. Web sayfalarnda en çok kullalan dilleri aratrz. Ücretsiz hizmet veren sitelerden (geocities, brinkster ve tripod gibi) üyelik edinerek, site oluturma denemesi yapabilirsiniz. Sitenizi arkadalarz ile paylaz. Balat*Çaltr *debug komutu ile programçaltrabilirsiniz. 15

ÖLÇME VE DEĞERLENDİRME ÖLÇME VE DEĞERLENDİRME OBJEKTİF TESTLER (ÖLÇME SORULARI) Aağdaki sorulardan; sonunda parantez olanlar doğru / yanlsorulardr. Verilen ifadeye göre parantez içine doğru ise D, yanlise Y yazz. Şklsorularda uygun kk iaretleyiniz. 1. Bilgisayar çok aklldr, kullacn vereceği komutlartahmin ederek önceden cevab hazrlar. ( ) 2. Bilgisayar, bilgileri çözülemeyecek ekilde ifreleyebilir. ( ) 3. Bakasn bilgisayarna, sitesine veya dosyalarna izinsiz olarak, ama zarar vermeden eriebiliriz. ( ) 4. Bilgisayarlar kendi aralarnda programlama dilleri ile anlarlar. ( ) 5. Derlenmibir dosyadan istediğimiz dile geri dönüüm yapabiliriz. ( ) 6. Tüm dillerde bilgisayara zarar veren program yazlabilir. ( ) 7. Aağdakilerden hangisi makine diline aittir: A) 15 B) A C) 0 D) % 8. Hangi dil, bilimsel matematik ilemleri yapmak için tasarlanmtr? A) Basic B) Fortran C) C D) Pascal 9. Yazlm nedir? A) Ana bellekte yer alan her türlü değer B) Klavyeden girilen veriler C) Bilgisayar programlar D) İlemci 10. Hangisi yazlmdr? A) Bilgi B) Yazc C) Derleyici D) Klavye 16

11. Hangisi programn temel özelliklerinden olamaz? A) Basitlik B) Uyumluluk C) Hatasz olmak D) Doğruluk 12. Aağdakileri en kolaydan zor dile göre sralahangisidir? 1) Assembler 2) Delphi 3) C 4) Basic A) 1-3-2-4 B) 3-1-4-2 C) 4-3-2-1 D)4-2-3-1 13. Hangi dilde Türkçe kod yazamayz? A) Tupol B) Pascal C) Pozitif D) Yunus 14. Aağdakilerden hangi eletirme hataldr (bilmediklerinizi aratrz)? A) AutoCAD - AutoLisp B) 3DSMax - MaxScript C) Corel - CorelScript D) Office VB 15. Aağdakilerden hangisi programcn asl ii değildir? A) Program yazmak B) Program hatalargidermek C) Programn pazarlanmassağlamak D) Programn kurulum dosyasyapmak 17

ÖĞRENME FAALİYETİ 2 AMAÇ ÖĞRENME FAALİYETİ- 2 Bilgisayarda bir problemin çözüm aamalaryaparak, program yazmaya hazrlk yapabileceksiniz. ARAŞTIRMA Bu faaliyet öncesinde hazrlk amaçlaağda belirtilen aratrma faaliyetlerini yapmalsz. Günlük hayatta karlatğz problemleri nasl çözümlediğinizi dikkatlice gözlemleyiniz. Örneğin; okula gelive gidiyolunda hangi tat araçlarsra ile kullandğz, hava ve yol durumuna göre çözüm olarak neler yaptğz anlatz. Problemleri çözerken ilemleri belli bir sra ile mi yapyorsunuz yoksa çözüm için gerekenleri rastgele mi uyguluyorsunuz, buna dikkat ederek arkadalarzla paylaz. Algoritma kelimesinin kaynağaratrz. Bir yemek tarifini aratrz. Yemek yapmnda izlenen admlarbir kâğda yazz. Alternatif durumlarda belirtiniz. Konularda bazkelimelerin altmavi dalgalolarak çizilidir. Bu konulararatrmaz tavsiye edilir. 2. PROGRAM YAZIMI Şu anda oturup programlama yapabilir olsaz da, bu bir bebeğin önüne yemesi için gerekli malzemeyi savurmaya benzer. Basit programlaröğrenmek için hemen yazabilirsiniz. Ekran ortasna okulunuzun adyazmaz için uzun uzun plan yapmaza gerek yoktur. Ama çok karmak programlar, bilgisayarza aktarmadan önce, kâğt üzerinde planlamaz gerekebilir. Programtasarlarken, ilk düünmeniz gereken ey hangi dili kullanacağz değildir. Programdan ne istediğinizi tam olarak bilirseniz, hangi dili kullanacağza kolay karar verirsiniz. Tek bir dili aramak yerine, değiik dilleri göz önünde bulundurunuz. Programz çaltğsürece, hangi dil ile yapldğönemli değildir, özellikle de programzalan müteri (kullacda diyebiliriz) bununla ilgilenmez. Bilgisayarda çözmeniz gereken problemin, sadece bir çözümü (algoritmas) olmayabilir. Her çözümün kendi avantajveya dezavantajolabilir. Bazalgoritmalar daha 18