BrowseInterestsBiography & MemoirBusiness & LeadershipFiction & LiteraturePolitics & EconomyHealth & WellnessSociety & CultureHappiness & Self-HelpMystery, Thriller & CrimeHistoryYoung AdultBrowse byBooksAudiobooksNews & MagazinesSheet MusicBrowse allUploadSign inJoinPROGRAMLAMA TEMELLERİDİLOVASİ TEKNİK LİSE VE Ç.P.L PROGRAMLAMA TEMELLERİ
ÖĞRETMEN= KÜRŞAT KUŞ E-MAİL= dilovasi10-tl@hotmail.com www.dilovasi10-tl.tr.gg
Program bilgisayarın donanımını kullanılabilir hale getiren komutlar topluluğudur. Eğer bilgisayara ne yapması gerektiğini söylemezseniz, hiçbir şey yapamaz. Bilgisayara bir şeyler söylemek ise programlar aracılığı ile olur.
Doğruluk Dayanıklılık Genişletilebilme Basitlik Modülerlik Uyumluluk Kontrol edilebilirlik Kolay kullanım Parçalanabilirlik Anlaşılırlık Koruma : : : : : : : : : : : Verilen görevlerin tam olarak yerine getirilmesidir Beklenmedik hatalardan dolayı programın çalışması kesilmemelidir İleri aşamalarda görevlerin değişikliği veya yenilerinin eklenmesi kolay olmalıdır Karmaşık tasarımlardan kaçınmak gerekir Program kodları başka programlar içinde de kullanılabilmelidir Başka bilgisayar ve sistemlerde çalışabilmelidir Hata olabilecek yerlere açıklayıcı hata mesajları konulmalıdır Kullanıcı ara birimi kolay olmalı ve rahat öğrenilebilmelidir Problemin küçük parçalara ayrılarak yazılmasıdır Başkasının yazdığı program elden geçirilirken rahatça okunabilmelidir Modüller birbirlerine müdahale etmemelidirler
Bilgisayar Programı İçin Neler Bilmeliyim?
İstek: Önünüze ne kadar engel çıksa da, isteğiniz varsa öğrenirsiniz. Merak: Bu sayede öğreneceğiniz dil size angarya gibi gelmez. Hayal gücü: Böylece daha ilginç ve faydalı program yapabilirsiniz.
• Bilgisayar Türkçe, İngilizce veya başka bir dilden anlamaz. • Bilgisayarın fonksiyonel bir beyni olmadığı için insanlar komutlar yazmalıdır. Bu özel dile “programlama dili” denir. • Komutlar bir araya gelerek “program”ı meydana getirir. Belli bir dil ile yazılmış komutlara “kaynak kod” da diyebiliriz.
Neden Birçok Programlama Dili Vardır?
• Her programlama dili özel bir amaca hizmet eder. • Her dilin kendine göre avantaj ve dezavantajları vardır. • İnsanlar farklı problemleri çözmek için değişik programlama dilleri yazmışlardır. • Temelde bilgisayarlar 1 ve 0’lardan oluşan ikilik sayı sistemindeki dili anlarlar. Buna “makine dili” denir.
Makine dilinin dezavantajları, hatalı kod yazımının kolay olması ve yazımının uzun sürmesidir. Makine dilinin daha rahat programlanması için “assembly dili” geliştirilmiştir. “Assembly dili” basit, hatırlanması kolay deyimlerden oluşur. Programcılar 1 ve 0 ile program yazma yerine “assembly dili”ni geliştirmişlerdir, bilgisayarın bu yazılanlarla ilgili hiçbir fikri yoktur. Bu sebeple programcılar “assembly dil” komutlarını “makine dili”ne çeviren programlar yazmışlardır. Bu programlara “makine dili çeviricisi - assembler” denir.
“Assembly dili” makine dilinden daha rahat yazılmasına rağmen, hala bazı dezavantajlara sahiptir: • Yavaş ve çok yer kaplayan programlar oluşur. • Başka dile çevrilmeleri zordur. • Çok uzun program yazımına elverişli değildir.
Programcılar donanıma erişimi daha kolay olan, okunaklı, yazımı ve düzenlemesi kolay olan bir dile ihtiyaç duymuşlardır. Bunun üzerine C (1972) programlama dili geliştirilmiştir. Cobol (1959), Fortran (1957), Basic (1964) , Pascal (1971) gibi birçok diller de vardır ama hala günümüzde yaygın olarak kullanılan C dili olmuştur. Assembly dilinden sonra geliştirilmiş dillerin geneline yüksek seviyeli diller denilmektedir. İnsanların konuşma diline yakın olan dillere “yüksek seviye dil” denilmiştir.
Yüksek Seviyeli Dil (C,Pascal,Basic)
MAKİNA DİLİ (1,0)
Yüksek Seviyeli Dillerin Genel Özellikleri
• “Makine diline” göre daha şişkin ve yavaş kod meydana getirirler. • Tüm sistem kaynaklarına ulaşılamayabilir. • Bir derleyici gereklidir. • Kısa zamanda program yazmaya başlanır. • Öğrenme ve ustalaşma için geçen zaman fazla değildir. • Yanlışlıkla sistem kaynaklarının bozulmaması için kalkanları vardır. • Okuması ve değiştirmesi kolaydır. • Başka bilgisayar çeşitlerinde de çalışabilirler, yani taşınabilir özelliğe sahiptirler.
1. Assembly dili ile yüksek seviye dil arasındaki hız farkı ne kadardır? Cevap:Assembly dili yaklaşık 2 ile 20 kat arasında daha hızlıdır. 2. Assembly dili ile yüksek seviye dil arasındaki program tasarım süresi ne kadardır? Cevap:Assembly dili yaklaşık 10 ile 100 kat arasında daha yavaş sürede tamamlanır. 3. Derleyiciler hangi dilde geliştirilmişlerdir? Cevap:Önceleri assembly dili ile yazılmışlardır. Daha sonra yüksek seviye diller güçlendikçe bu diller kullanılarak derleyiciler yazılmıştır.
Hızlı Program Yazma Ortamları
Eski zamanlarda fare, grafik ekran imkânı olmadığı için “metin tabanlı” ortamlarda çalışılırdı. Pencere ve düğme gibi kavramlar o zamanlar yoktu. Pencereler, kaydırma çubukları, araç çubukları, menüler programcının daha hızlı bir şekilde program yapmasına sebep olduğu için, bu ortamlara “Hızlı Uygulama Geliştirme – Rapid Application Development (RAD)” denilmiştir. Görsel Programlama Dilleri (Visual Programming Languages) olarak da adlandırılırlar. Programcı oluşturacağı programın ara birimini, istediği gibi tasarlayabilir ve bu ara birimi işlevsel hâle getiren kod kısmını yazabilir. Popüler RAD dilleri: Visual Basic, Delphi, JBuilder ve Visual C#.
RAD ile programcı, temel programlama dilleri olan C, Basic ve Pascal gibi dilleri kullanarak, hızlı bir şekilde uygulama geliştirebilir. Kullanıcı ara birimi geliştirmek kolaydır. C ve Basic bilen için görsel programlama diline geçiş çok kolaydır. Maalesef RAD ile dilin taşınabilirliği azalır. Yani Windows ortamında Visual Basic ile yazılan programın, Linux’ta çalışma ihtimali azdır. RAD programlama ile yaptığınız programlar daha çok disk alanı kaplayacak ve daha yavaş çalışacaklar.
• Veritabanı Programcılığı • Uygulama Programcılığı • Web Programcılığı
• Bilgisayar programlarında programa ait bilgiler veritabanı denilen özel dosyalarda saklanır. • Bu dosyalar ise veritabanı programları ile oluşturulurlar. • En çok kullanılan veritabanı programları MS Access, MS-SQL, MySQL, Oracle
• Veritabanlarına kayıt ekleme, silme, düzenleme, sorgulama gibi işlemler için kullanılan özel bir dil vardrı. Buna SQL (Structured Query Language) denir.
Veri tabanı programcılığının dezavantajları: • Veri tabanı programları, veri tabanını işleyen program sistemde kurulu değilse çalıştırılamazlar. • Sadece veri tabanı programını kullanarak antivirüs, oyun, kelime işlemci gibi program yapamazsınız.
Herhangi bir ihtiyacın giderilmesine yönelik hazırlanmış olan genel amaçlı programlardır. Bu program bir oyun olabildiği gibi, bir firmanın iş akışını düzenleyen bir program da olabilir. Herhangi bir programlama dili kullanılarak yapılabilir. (Java, Visual C, Delphi, Visual Basic vs..) Bu tip programcılığın içinde Veritabanı programcılığı da bulunmaktadır.
Web sayfaları üzerinde çalışan programlar yazma işidir. Web programcısı tasarımla uğraşmaz. Ancak şu anda ülkemizde maliyetleri azaltmak amacıyla tasarım ve programlama işi genelde tek bir kişi tarafından yapılmaktadır.
• Bir programı yazmaya başlamadan önce o program ile alakalı kağıt üzerinde planlama yapılmalıdır. • Planlama yapılmazsa bir süre sonra program içinden çıkılmaz bir hal alır. • Bir programın hangi dil ile yazıldığı önemlidir. Ancak programın düzgün çalışması daha önemlidir. • Bir program bir problemin çözülmesine yönelik yazılır. Problemlerin ise birden çok çözümü olabilir.
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?
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.
Kullanıcının kullandığı bilgisayarın türü programlama dilini belirler. 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.
Program yazımında programcının yetenekleri önemlidir. Programcının bildiği dillerden hangisini kullanacağına karar vermesi gerekir. Eğer tek başına yapamıyorsa bir proje grubu oluşturmalı ve iyi bir görev dağılımı yapmalıdır. Bir programcı hiç bilmediği bir dilde de az bir çalışma ile program yazabilir. Fakat bu biraz uzun zaman alabilir.
Bir programcıyı işe alırsınız, biraz para verirsiniz. Programcı tam istediğiniz gibi bir program yazmaz. Parayı kaybetmek yerine, biraz daha para vererek, programın yeni sürümünü yaptırırsınız. İşte bu noktada kelepçelendiniz demektir. Programcıya devamlı para verir ama hiçbir zaman istediğiniz programı elde edemezsiniz. Başka programcıya da geçemezsiniz; çünkü kaynak kod elinizde değildir. Elinizde olsa bile kimse o programı değiştirmek için zaman harcamaz.
Program Yazma Aşamaları 1. Prototip oluşturma 2. Algoritma yazma 3. Akış şemaları hazırlama 4. Programın yazımı
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.
Programlama dili seçseniz bile, hemen kod yazımına geçemezsiniz. Algortima denilen kodlama ile programın işlemleri yazılır. Algoritma 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: a. Füze teknisyeninden hedef koordinatları edin b. Hedef koordinatların geçerli olduğundan emin ol c. Hedef koordinatları hafızaya kaydet a. maddesini daha alt basamaklara bölebiliriz. i. Koordinattan emin ol ii. Hedef füzenin atış uzaklığı içinde mi, kontrol et iii. Hedef dost bölge mi, kontrol et
Algoritma zaman kaybı gibi görülebilir. Ancak planlı bir başlangıç en az hata ile karşılaşmak demektir. Eğer plansız olarak program yazarsanız, kaçınılmaz son, kısa süre sonra “kod çöplüğü” olabilir. Bu da bug (böcek) larla dolu bir program demektir. Algoritma en genelden en özele doğru yazılır 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.
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.
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ı algoritma 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 : Programın başladığını ifade eder. Bitir : Programın başladığını ifade eder. 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 … : Şartlara göre akışın değişmesinde kullanılır. Eğer …. Değilse… : Şartlara göre akışın değişmesinde
İki sayıyı kullanıcıdan alan, bunları toplayan ve ekrana sonucu yazdıran programın algoritması: 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
Öğrenci numarasını kullanıcıdan alan, bu numaraya ait notları veritabanından alan, eğer not 50 den büyükse geçti, değilse kaldı yazdıran programın algoritması: Başla Sayısal öğrenciNumarası Yaz; "Öğrenci numarasını giriniz" Oku; öğrenciNumarası Veritabanından öğrenciNotu bilgisini oku Eğer öğrenciNotu 50'den büyük İse Yaz; öğrenciNumarası & " Geçti" Değilse Yaz; öğrenciNumarası & " Kaldı" Eğer Bitti Bitir
İki sayıyı kullanıcıdan alan, bu iki sayıyı karşılaştırıp büyük olan sayıyı bulan ve büyük olanı ekrana yazan programın algoritması: Başla Sayısal Sayı1, Sayı2 Oku; "Birinci sayıyı giriniz", Sayı1 Oku; "İkinci sayıyı giriniz", Sayı2 Eğer Sayı1 Sayı2'den büyük İse Yaz; "Sayı1 Sayı2'den büyüktür." Eğer Sayı2 Sayı1'den büyük İse Yaz; "Sayı2 Sayı1'den büyüktür." Değilse Yaz; "Sayı1 ve Sayı2 eşittir." Eğer Bitti Eğer Bitti Bitir
Akış Şeması, algoritmanın şekillerle ifade edilerek programın haritasını oluşturmaktı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ı çok karmaşık hâle gelince, bağlantı noktaları ve alt program kullanılmalıdır.
Akış Şemaları Sembolleri
Akış Şemaları Örnekleri
İ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:
AKIŞ ŞEMASI - ÖDEV
3 öğrencinin yaş ortalamasını bulan ve sonucu ekranda gösteren programın akış şeması Bir akbil cihazının çalışmasını anlatan akış şeması 3 sayıdan en büyüğünü bulan programın akış şeması
Bir Programın Hayat Döngüsü
Genel olarak tipik bir program döngüsü şöyledir: 1. Geliştirilme aşaması (ilk oluşturulma ve yayımlanma) 2. Bakım döngüsü (olabildiğince kısa zamanda böceklerin ayıklanması) 3. İyileştirme döngüsü (yeni özellikler katma)
1. Fikir doğar. 2. Programın tipik hali ortaya çıkar. 3. Hangi bilgisayarlarda çalışacağı belirlenir. 4. Algoritma yazılır, akış diyagramları çizilir. 5. Bir veya daha fazla dil seçilir. 6. Program yazılır. 7. Test edilir. (Alfa sürümü denir.) 8. Problemler giderilir. (7 ve 8. adım gerektiği kadar tekrar edilmelidir.) 9. Diğer insanlara test etmeleri için verilir. (Beta sürümü denir.) 10. Problemler giderilir. (9 ve 10. adım gerektiği kadar tekrar edilmelidir.) 11. Halka program sunulur ve pazarlandığı gibi çalışması umulur.
Bakım gerektiğinde şu adımlar yapılır: 1. Programın hangi kısmında hata olduğu bulunur. 2. Böcek temizlenir. 3. Yeni böceklere sebep olunup olunmadığı anlaşılması için test edilir. 4. Testte görülen böcekler temizlenir. (1 ve 4 arası her böcek için tekrar edilir) 5. Yazılım için yama geliştirilir.
1. Programa ne eklenecekse belirlenir. 2. Bu özellik nasıl çalışacak ise sahte kodlar ile yazımı yapılır 3. Program değiştirilir. 4. Alfa sürümü olarak test edilir. 5. Hatalar tespit edilip giderilir. 6. Beta sürümü olarak test edilir. 7. Beta testçilerinin hata raporları okunur. (1 ve 7. adımlar arası her eklentide tekrar edilir.) 8. Halka sunulur ve çıkabilecek yeni hatalar beklenir. (Bakım döngüsüne girilir.)
Program yazmak için gerekli olan temel ihtiyaçlar:
1. Düzenleyici (editor): Komutları yazmamız için kullanılır. 2. Derleyici (compiler): Komutlarımızı makine diline çevirir. 3. Böcek ayıklayıcı (debugger): Programınızdaki hataları bulmaya yardımcı olur.
1. Yardım dosyası hazırlayıcı: Kullanıcıya kılavuz olacak el kitabı şeklinde, yardım sağlamak için kullanılan programlardır. 2. Kurulum programı (setup / installation): Programın dosyalarını tek dosya haline getirerek, diğer uyumlu bilgisayarlara kurmaya yarar.
ASCII (American Standard Code for Information Interchange) dosya olarak yazabileceğiniz tüm programlar işinizi görür. Mesela not defteri olabilir. Metin dosyaları tüm bilgisayarlarda standart olan bir dosya türüdür. Ama bir kelime işlemci programı kullanmak yerine programcılar kendi düzenleyicilerini geliştirmişlerdir. Böylece program yazmak daha kolay hale gelmiştir.
Derleyici kaynak kodu makine diline çevirir. Eğer yazım hataları yok ise, sonuçta çalıştırılabilir bir dosya meydana gelir. Bu dosyayı isterseniz diğer insanlara verebilir veya satabilirsiniz. Derleyici işlemci türünüze göre kod oluşturur. Eğer işlemcinizin mimarisi farklı ise o işlemciye göre tekrar derlenmesi gereklidir.
Böcek Ayıklayıcı (Debugger)
Çok az program %100 hatasız çalışır. Hatalar yüzünden programlar çöker, veriler kaybolur, ya da program tuhaf çalışır. Mükemmel program her zaman aynı durumda aynı sonucu vermelidir. Ama yazılım ve donanım farklılıklarından dolayı her zaman istenen sonuç elde edilemeyebilir. Yazılımın olduğu her yerde böcek vardır. Derleyiciniz, işletim sisteminiz ve tabii ki kendi programınızda da böcekler olabilir. Maalesef bir böceği temizlemek yeni böcekler oluşmasına sebep olabilir.
Yardım ve Kurulum
Yardım dosyası ve kurulum hazırlama programları ayrıca satılır veya ücretsiz olarak internette bulunabilir. Kurduğunuz programlama dilinde basit olarak yardım hazırlamak için yardımcı program olabilir. Çoğu programın yardım dosyası vardır. İlk kez programınızı kullanan veya bir konuda takılan biri için ilk akla gelen şey, “Bu programın yardımı nerede?” sorusudur. Yardım dosyası olan programlar daha modern hale gelir. Program test edildikten, hataları giderildikten ve yardım dosyası hazırlandıktan sonra son adım olarak kuruluma geliriz. CD veya disketlere bölünecek şekilde “kur” dosyası yapılır.
DİLOVASİ 10 TL SINIFIMIZA TŞK ÖĞRTEMEN= KÜRŞAT KUŞ • HAZIRLAYAN = KÜRŞAT KUŞ • E-MAİL= dilovasi10-tl@hotmail.com • •
More From This UserSkip carouselIntel Protected Mode Chap580x86 Assembly Version1
Sign up to vote on this titleUsefulNot usefulProgramlama Temellerİ by asicok0.0 (0)EmbedDownloadRead on Scribd mobile: iPhone, iPad and Android.Copyright: Attribution Non-Commercial (BY-NC)Download as PPT, PDF, TXT or read online from ScribdFlag for inappropriate contentMore informationShow less
RelatedC# - İleri Programlama ve Nesne Yönelimli Programlamaby Mustafa DemirhanSQL Programlamaby Mustafa DemirhanDinamik Programlamaby grkdoganAlgoritma dersi sunusuby mustafaemreSimilar to Programlama TemellerİSkip carouselC# - İleri Programlama ve Nesne Yönelimli ProgramlamaSQL ProgramlamaDinamik ProgramlamaAlgoritma dersi sunusualgoritma_programlamaProgramlama Temellerİ