Bilgisayar Programlama I Öğr.Gör. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü
İçerik Bilgisayar Programlamaya Giriş Amaç Bilgisayarın Temel Bileşenleri Bilgisayar Programlama Dillerine Genel Bakış Program Geliştirme Aşamaları
Amaç Bilgisayarın farklı bileşenlerini tanımlamak Programlama dilleri ve kategorilerini bilmek Program geliştirme aşamalarını anlamak ve bu aşamaları problem çözümü için uygulamak
Bilgisayar Bilgisayar, verilen özel komutlara göre değişik iş ve işlemleri gerçekleştiren bir makinedir. Bilgisayar Donanım Yazılım
Donanım (Hardware) Merkezi İşlem Birimi (CPU: Central Processing Unit) İşlemci, bilgisayarın beynidir. Milyonlarca oldukça küçük elektronik parçalardan oluşmuştur. Sistemdeki temel hesaplamaları gerçekleştirir. İşlemcilere örnek olarak Pentium, Athlon ve SPARC verilebilir.
Donanım (Hardware) Bellekler Ana Bellek İkincil Bellek Bellek (Hafıza) Bellek, verilerin ve CPU’nun kendisinden istenen görevleri gerçekleştirebilmesi için komutların tutulduğu yerdir. Bellekler, ilişkili adreslere sahip farklı saklama alanlarından (hücrelerden) oluşur. CPU, bu adresler yardımıyla belleğe erişir. Bellekler Ana Bellek İkincil Bellek
Donanım (Hardware) Giriş ve Çıkış Birimleri Giriş ve çıkış birimleri, bilgisayarın dış dünyadan veri almasını ve dış dünyaya çıktı vermesini sağlayan birimlerdir. Giriş birimlerine örnek olarak klavye, fare ve mikrofon verilebilir. Çıkış birimlerine örnek ise, monitörler, yazıcılar ve hoparlörler gösterilebilir.
Yazılım (Software) Bilgisayarın işlevlerini yerine getirmek için kullandıkları programlara yazılım denir. Yazılımlar, sabit disk gibi bazı donanım aygıtlarında tutulur, fakat soyut bir kavramdır. Programlar, işlemci tarafından yorumlanabilen komutlardan oluşmuştur.
Bilgisayar Programlarının Türleri Yazılımlar Sistem Programları Uygulama Programları Derleyiciler Bilgisayarlar, yalnızca bir dilden anlar: makine dili. Makine dili 0 ve 1’lerden oluşur. Uygulamada, kişilerin 0 ve 1’leri kullanarak program yazmaları pek mümkün değildir, bu nedenle insanların kolaylıkla anlayabilecekleri ve makine diline dönüştürülebilen bir dile ihtiyaç vardır. Bu dönüştürme işlemi için derleyiciler kullanılmaktadır. Donanım ve yazılımın birbiriyle uyumlu bir şekilde çalışmasını sağlayan programlardır. Örneğin; Linux, Windows, Unix, Solaris, MacOS gibi işletim sistemleri… Kişilerin, bilgisayardaki görevleri yerine getirebilmeleri için kullandıkları programlardır. Örneğin; kelime işlemci, oyun programları, hesap tabloları…
Programlama Dili Programlama dili, bilgisayara komutları göndermek için standardize edilmiş bir haberleşme tekniğidir. İnsanların dillerine benzer şekilde, her bir dil kendi kurallarına ve gramerine sahiptir. Programların yazımında kullanılan, değişik programlama dilleri vardır, fakat hangi dili kullanırsak kullanalım, girilen komutlar bilgisayarın anlayabileceği makine diline dönüştürülmelidir.
Programlama Dillerinin Kategorileri Düşük Düzeyli Programlama Dilleri Yüksek Düzeyli Programlama Dilleri Yüksek düzeyli programlama dilleri, daha kullanıcı dostu olan bir programlama dili özelliğini taşır. Bazı yüksek düzeyli programlama dilleri, platformdan bağımsızdır. Bir programlama ifadesi, bir derleyici yardımıyla bir veya birkaç makine komutuna dönüştürülür. C, Pascal, Cobol, Delphi,… Assembly dili, makine diline benzer; fakat ona göre daha basittir. Çünkü programcıya, makine dilindeki sayılar için isimler belirlemeye izin vermektedir. Assembly dilleri her CPU ailesi için kullanılabilir ve her assembly komutu, bir dönüştürücü (assembler) program yardımıyla makine komutuna dönüştürülür.
Program Geliştirme Aşamaları Problemin Tanımı Problemin Analizi Algoritma Kodlama ve Hata Ayıklama
1. Problem Tanımı Problem, girdi ve çıktı gereksinimleri belirlenerek iyi bir şekilde ve açıkça tanımlanmalıdır. Açıkça tanımlanan problem, zaten yarı yarıya çözümlenmiş demektir. Örnek problem: “Bir listede, bir adın kaç kez geçtiğini bulan bir program yazınız.”
2. Problem Analizi Problem tanımlanır tanımlanmaz, çözüm için en basit, etkili ve uygun yaklaşım belirlenmelidir. Genellikle bu adım küçük ve basit alt problemlerde atlanabilir. Örnek Problem: Bir listede bir adın kaç kez bulunduğunu hesaplayınız. Program Girdisi: İsim listesi, aranacak isim Program Çıktısı: Aranan ismin listedeki sayısı
3. Algoritma Algoritma, problemin çözümü için gerekli adımların açık ve kesin tanımıdır. Bu tanımlama ya insan diliyle komutlar şeklinde, ya da akış şeması gösterimi veya sözde kodlar (pseudeocode) yardımıyla gerçekleştirilir.
İnsan Dili ile Yazım Toplama işlemi Akış şeması ile ifade ediniz. Başla Birinci sayıyı gir (sayi1) İkinci sayıyı gir (sayi2) Sayıları topla (sonuc = sayi1 + sayi2) Sonucu ekrana yaz. Bitir. Akış şeması ile ifade ediniz.
Akış Şeması Başla Sayi1 gir. Sayi2 gir. Sonuc = Sayi1 + Sayi2 Sonuc yazdır. Bitir
Akış Şeması Sembolleri
Akış Şeması Sembolleri
İnsan Dili ile Yazım Listedeki bir öğenin sayısını bulma: Listedeki isimleri klavyeden gir Aranacak ismi klavyeden gir. Listedeki her bir isim ile aranan ismi karşılaştır. Eğer aranan isim listedeki isim ile aynıysa, sayaç değerini 1 artır. Eğer listedeki bütün isimler karşılaştırıldıysa, sonucu yazdır.
Akış Şeması
Sözde Kod (Pseudeu Code) isim = klavyeden girilen isimler aranan = klavyeden girilen aranan isim sayac = 0 İsim listesindeki her bir isim için; Eğer isim == aranan sayac = sayac + 1 sayac değişkenini görüntüle.
4. Kodlama ve Hata Ayıklama Algoritma hazırlandıktan sonra, kaynak kodlarını oluşturmak artık mümkündür. Algoritmadaki adımlar kullanılarak, seçilen bir programlama dilinde program yazılabilir. Çoğu zaman, programcı programı yazdıktan sonra, hemen %100 doğru çalışmaz. Programcı, oluşan hatalara (bugs) bakarak, programın hatalarını düzeltir. Bu işleme, hata ayıklama (debugging) adı verilir.
Hata Türleri Hata Türleri Derleme Zamanı Hatası (Compile-time error) Çalışma Zamanı Hatası (Runtime error) Derleyiciler mükemmel değildirler. Bu yüzden, derleme zamanında koddaki bazı hatalar tespit edilemez. Bu genellikle mantık hatalarında ve sonsuz döngülerde görülür. Bu tip hatalara ise çalışma zamanı hatası (runtime error) adı verilir. Derleme zamanı hatası (compile-time error), kodlarda bir yazım hatası olduğunda ortaya çıkar. Derleyici, programdaki hataları tespit eder ve hata varsa program derlenmez.bu noktada, programcı, hataları düzeltene kadar programı çalıştıramaz.
Alıştırmalar Aşağıdaki problemlerin algoritmasını sözde kod ve akış şeması kullanarak oluşturunuz. İki sayının toplamını bulma Ekmek pişirme Üç sayının ortalamasını bulma Bir sözcükteki karakter sayısını bulma Bir dersten başarılı olup olmadığını bulma (%30 ara sınav, %5 ödev, %5 proje, %60 dönem sonu sınavı)
Kaynakça Balagtas, F.T. Introduction to Programming Student’s Manual, Java Education & Development Initiative, ver. 1.3, June 2006, pp. 10-18. (http://edu.netbeans.org/contrib/jedi/Intro-to- Programming-1/student-manual.pdf)