BİLGİSAYAR PROGRAMLAMA I (Java) (BİL-141) 2015 - TOBB ETÜ
Ders Hakkında Genel Bilgi DERSİN AMACI Java dilini kullanarak, programlama temel mantığını kavramak ve programlamada kullanılan çeşitli yöntemleri ve algoritmaları anlayabilmek DERS KİTABI Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin Yardımcı Kaynak Java: An Introduction to Problem Solving & Programming, W. Savitch, 6th Ed. DERS ASİSTANI Salih Arda BÖLÜK (ardaboluk2@gmail.com) Teknoloji Merkezi No:204 (Lab Saatleri Duyurulacak) DERS ZAMANI (6 hafta 2+2 saat, 6 hafta 2+1 saat) Pazartesi Günleri: 12:30-14:20 (2 Saat) Amfi 2 Cuma Günleri: 08:30-10:20 (2 Saat) Amfi 3 Özel Durumlarda (Salı 12:30-14:20) Amfi 3 DERS WEB SAYFASI https://piazza.com da haftaya açılacak. Bilgisayar IProgramlama I (Java) 2
Ders İçeriği 1. Programlamaya Giriş 2. Veri Türleri 3. Program Akış Denetimi 4. Sınıflar ve Metotlar 5. Nesneler ve Metotlar 6. Diziler 7. Kalıtım 8. Kural Dışı Durum Çözme (İstisnalar) 9. Metin Dosyaları ile Giriş Çıkış İşlemleri 10. Özyineleme 3
NOTLANDIRMA Ara Sınav : %20 Lab Sınav : %25 Ödevler : %15 Final Sınavı : %40 4
DERS 1 Bilgisayar ve Programlamaya Giriş (Java) (BİL-141) 2015 - TOBB ETU
Hedeflenen Çıktılar Donanım ve yazılım hakkında genel bilgi sahibi olmak Programlama dilleri ve derleyiciler hakkında bilgi sahibi olmak Java programlama dili hakkında genel bilgi sahibi olmak Algoritma ve Akış Şeması tasarımını öğrenmek 6
Bilgisayar Temelleri Donanım: Bilgisayarın fiziksel tüm ekipmanları kısacası bilgisayarın fiziksel kısmına donanım denir. Yazılım: Bilgisayar için hazırlanmış komutlar kümesine program. Bilgisayarın çalışması için gerekli programlara ve bilgisayarlarda çalışan uygulama programlarının tümüne ise yazılım denir. 7
Bilgisayar Donanımı (Computer Hardware) MİB (Merkezi İşlem Birimi) (MİKROİŞLEMCİ) Çıkış Birimi Giriş Birimi DEB AMB Yardımcı Bellek Ana Bellek 8
Donanımın (Hardware) Temel Elemanları Merkezi İşlemci Birimi MİB (CPU-Central Processing Unit): Bilgisayar içerisindeki yazılım komutlarını işleyen aygıttır. Ör: Intel Core i7 vb. Denetleme Birimi (DEB): Komutların işlenmesini denetler. Aritmetik Mantık Birimi (AMB): Aritmetik ve Mantıksal işlemleri yerine getirir. Ana Bellek (Main Memory): O an çalıştırılacak programları ve verileri tutan bellek çeşididir (RAM). Yazılımlar tasarlanırken ana belleğin özellikleri dikkate alınır. Yardımcı Bellek (Auxiliary Secondary Memory): Disk sürücüleri, disketler, CD/DVD vb. uzun süreli veri depolayan aygıtların tümü yardımcı bellektir. 9
Bit Bayt Kavramları Bit sadece 0 ve 1 değerini alabilen en küçük birimdir. 1 Bayt = 8 Bit 1 KB = 1024 Bayt 1 MB = 1024 KB 1 GB = 1024 MB Birim Eşitlik 1 Bit Binary Digit (0 veya 1) 8 Bits 1 Byte 1024 Bytes 1 Kilobyte 1024 Kilobytes 1 Megabyte 1024 Megabytes 1 Gigabyte 1024 Gigabytes 1 Terabyte 1024 Terabytes 1 Petabyte 1024 Petabytes 1 Exabyte - 1024 Exabytes 1 Zettabyte 1024 Zettabytes 1 Yottabyte 1024 Yottabytes 1 Brontobyte 10
Ana Bellek Her biri 1 bayt veri tutabilen sıralı adresleri bulunan alanlardan oluşmuştur. Bilgisayar herhangi bir veriye o verinin adresini kullanarak ulaşır. Eğer bir veri 1 bayttan daha fazla yer kaplıyorsa ardışık adreslerde saklanır. Bu şekilde değişik veri şekilleri (karakterler, numaralar, vb.) birden fazla bayt alanında saklanabilir. 11
Yazılım (Software) Sistem Yazılımları: İşletim sistemi gibi bilgisayarların donanımına ait yazılımlar Uygulama Yazılımlar: Kullanıcılara yönelik yazılımlar 12
İşletim Sistemi Bilgisayar donanımının doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama programlarını çalıştırmaktan sorumlu olan sistem yazılımıdır. Bilgisayarın bütün işlevlerinin çalışmasını sağlayan üst düzey bir yazılımdır. Herhangi bir uygulamayı çalıştırmak istediğimizde öncelikle işletim sistemi ile bağlantı kurar ve hangi programı çalıştıracağını ona tıklama, bir menü öğesi seçme veya klavyeden bir komut girme gibi farklı yöntemlerle bildiririz. İşletim sistemi bizim adımıza o uygulamanın çalışması ile ilgili bütün hazırlıkları yaparak, uygulamayı çalıştırır. En bilindik işletim sistemleri, Microsoft Windows, Apple MAC OS, Linux ve Unix gibi işletim sistemleridir. 13
Programlama Dilleri ve Derleyiciler Üst-Düzey Diller: Kullanıcıların kolaylıkla anlayıp kullanacağı dillerdir. Ör: Java, Pascal, Fortan, C, C++, Basic, Visual Basic, vb. Alt-Düzey Diller: Bilgisayarın doğrudan anladığı ve kullandığı dildir. Bu dillere genelde makine dilleri ya da çevirici (assembler) denir. Bilgisayar üst-düzey dilleri doğrudan anlayamaz. Üst-düzey bir dil ile yazılmış bir programın bilgisayarın anlayacağı alt-düzey bir dile çevrilmesi gerekmektedir. Bu çevrim işlemini derleyici (compiler) adı verilen bir program gerçekleştirir. Üst düzey dilde yazılmış programa kaynak kodu (source code), bunun alt düzeye çevrilmiş haline ise nesne kodu (object code) denir. Üst-düzey bir dilden makine diline çevrim için bilgisayarın donanımına özel bir derleyici kullanmak gerekir. Her mikroişlemci ve işletim sistemi için ayrı bir derleyici gerekir. 14
Java Bayt Kodu (bytecode) Java da makine diline doğrudan çevrilmez. Java derleyicisi Java Bayt Kodu adı verilen bir program oluşturur. Java Virtual Machine (JVM) adı verilen bir hayali bilgisayarın makine kodu oluşturulur. JVM tüm bilgisayarları temsil eder. JVM de oluşturulan bayt kod herhangi bir bilgisayarın makine diline çok rahat çevrilebilmektedir. Bu nedenle Java nın en büyük avantajlarından birisi her ortama taşınabilirliğidir (portability). JVM ile yorumlanan bir kod herhangi bir derlemeye gerek duymadan bütün bilgisayarlarda çalışabilecek durumdadır. Bu da Java nın internet uygulamaları için iyi bir seçim olmasını sağlamaktadır. Taşınabilirliğin başka bir avantajı da, herhangi bir üretici firmanın yeni çıkan bir bilgisayarı için JVM de herhangi bir değişiklik yapmaya gerek yoktur. Java Bayt Kodundan makine diline çevrim yapan programa Yorumlayıcı (Interpreter) denir. 15
Bağlama (Linking) Java uygulamasının yaratılması esnasında iki komut kullanılır. JAVAC : Yazılan Java kaynak kodunu Java bayt koduna çevirir. JAVA: Oluşan bayt kodu çalıştırır. Java programları genellikle tek parça bulunmaz. Farklı farklı parçacıklar halinde yazılmış kodlar bayt koda çevrildikten sonra, bağlayıcı (linker) adı verilen bir program yardımıyla bir bütün haline getirilir. Bu işleme bağlama (linking) denir. 16
Java nın Tarihçesi İlk çalışmalar 1991 yılında James Gosling ve Sun Microsystems deki ekibi tarafından başlatıldı. İlk çalışmaların amacı tost makinesi, TV, video oyantıcısı, müzik seti gibi ev aygıtlarını kontrol edecek bir programlama dili oluşturmaktı. Yalnız bu programlama dilinin değişik işlemcilerde çalışabilmesi gerekiyordu. Fakat ev aygıları ucuz cihazlar olduğu için, üreticiler aygıt uygulama yazılımlarını, işlemcinin anlayacağı dile çevirme noktasında zaman ve finansal kaynak ayırmak istemiyorlardı. Bu nedenle James ve ekibi bir uygulama yazılımlarını bütün cihazların anlayabileceği bir ara dile çevirecek bir kod parçası ürettiler. Böylelikle çok zaman ve finansal kaynak gerektirmeden oluşturulacak küçük kod parçacıkları bu ara dilden makine diline çeviri yapabileceklerdi. Bu ara dil bayt kod olarak adlandırıldı. 1994 de Gosling ve ekibi oluşturdukları bu programlama dilinin (İlk ismi Oak, sonra Java) )internetteki web browserlar için çok uygun olduğunu düşündüler. Önce WebRunner, daha sonra Hot Java ismini alan browserlar yapıldı. 1995 te ise Netscape firması ile yapılan anlaşmada, üretilen web browserlar java çalıştıracak hale getirildi. Bu şekilde başlayarak gelişen java dili günümüze bu şekilde geldi. 17
Program Geliştirme Problemi anlama (Analiz) İhtiyaçları belirleme (Analiz) İhtiyaçlara göre problemi çözecek çözümü geliştirme (Tasarım) Çözümü program olarak kodlama (Kodlama) Programı test etme (Test) Programı uygulamaya alma (Uygulamaya Alma) 18
Başarılı Bir Programlama İçin Adım 1: Problemin anlaşılması, programın girişlerinin ve çıkışlarının belirlenmesi. Adım 2: Problemin çözümü için gerekli bileşenlerin belirlenmesi. Adım 3: Programın anahtar özelliklerinin belirlenmesi, akış diyagramının ve algoritmanın oluşturulması Adım 4: Programın test edilmesinde her bir parçanın belirlenmesi ve test edilmesi. Adım 5: Sonraki versiyonlardaki gereksinimlerin belirlenmesi ve önceki adımların tüm versiyonlar için tekrarlanması. 19
Programlama Yanlışları Sözdizim yanlışları (Syntax Error): Programın yazımı esnasında yapılan gramer yanlışlardır. Bunları düzeltmeden program çalışmaz. Derleyici bu yanlışları programcıya belirtir. Çalıştırma zamanı yanlışları (Run-Time Error): Sözdizim yanlışları düzeltildikten sonra program çalıştırılır. Programın çalışması esnasında görülebilen, bir sayıyı sıfıra bölme gibi yanlışlara «çalıştırma zamanı yanlışları» adı verilir. JVM yanlışın nerede olduğu konusunda kullanıcıya bilgi verir. Mantık yanlışları (Logical Error): Program çalıştırılır. Bilgisayar hiçbir yanlış mesajı vermez, fakat program istenilen sonucu vermemektedir. Bu durumda programda bir mantık hatası oluşmuş demektir. 20
Algoritma Algoritma: Bir problemin çözümü için tasarlanan işlemler ve komutlar bütünüdür. Günlük hayatta gerçekleştirdiğimiz bir çok faaliyette algoritma kullanırız. Yol tarifi, araba sürme, yemek pişirme vb. İyi bir algoritmanın özellikleri şunlardır: Başlangıcı olmalı Basit olmalı Problemin çözümünü, mümkün olan en az adım ile en kısa sürede gerçekleştirmeli Sonu olmalı Problem (İLK DURUM) ALGORİTMA Çözüm (SON DURUM) 21
Akış Şeması (Flow Chart) Bir algoritmanın adımlarının mantıksal sırasını, adımların birbiri ile bağlantısını, bir işlemden diğerine nasıl gidileceğini belirten kontrol mekanizmalarını, özel şekil ve sembollerle anlatan bir ifade biçimidir. 22
Akış Şemaları Sıralı Akış Şartlı Akış Tekrarlı Akış 23
Sıralı Akış S1 Yapılacak işlerin (komutların) ard arda mantıksal bir sıra ile dizilmesidir. Karşılaştırma yapmak veya önceki işlemlere geri dönmek bu akışta mümkün değildir. S2 24
Başla Örnek Klavyeden girilen iki sayıyı (X ve Y) çarparak sonucu (X) ekrana Oku X, Y yazan bir algoritma ve akış şemasını ALGORİTMA Z = X * Y 1- Başla 2- X ve Y sayılarını oku Yaz Z Dur 3- X ve Y sayılarını çarparak sonucunu Z ye ata 4- Z yi ekrana Yaz 5- Dur 25
Şartlı Akış Evet K Hayır Programda karşı karşıya gelinen seçeneklerden birini seçme durumunun yer aldığı akış türüdür. P Q Şekilde K olarak gösterilen karar noktasında karar sorusunun cevabı evet ise P işlemi yönünde bir akış izleneceği, cevap hayırsa Q işlemi yönünde bir akış izleneceği belirtilmiştir. 26
Şartlı Akış - Örnek Başla Klavyeden girilen bir sayının değeri 5 den küçük ise ekrana 5 den küçük, 5 den büyük Oku X ise 5 den büyük yazdıran algoritma ALGORİTMA Evet X > 5 Hayır 1- Başla 2- X sayısını oku 3- Eğer X > 5 ise Git 4 Değilse Git 5 Yaz «X 5 den büyük» Yaz «X 5 den küçük» 4- Yaz X > 5 Git 6 5- Yaz X < 5 6- Dur Dur 27
Tekrarlı Akış (Döngüler) Aynı işlemlerin birden çok defa tekrar ettiği akış şemalarıdır. K Evet P P Hayır Önce-Sına- Doğruysa-Yinele Döngüsü K Hayır Evet Yinele-Sonra- Yanlışı-Sına 28
Başla Tekrarlı Akış Örnek (Önce Sına Doğruysa Yinele) Sayacı 1 e eşitle Sayaç = 1 1 den 50 ye kadar olan sayıları yazdıran akış şeması ve algoritması ALGORİTMA Hayır Sayac <= 50 Evet Yaz Sayaç Sayacı bir arttır Sayac = Sayac +1 1- Başla 2- Sayaç = 1 3- Eger Sayac <= 50 ise Git 4 Değilse Git 7 4- Yaz Sayac 5- Sayac = sayaç + 1 6- Git 3 7- Dur Dur 29
Başla Tekrarlı Akış Örnek (Yinele Sonra Yanlışı Sına) Sayacı 1 e eşitle Sayaç = 1 1 den 50 ye kadar olan sayıları yazdıran akış şeması ve algoritması Yaz Sayaç ALGORİTMA 1- Başla Sayacı bir arttır Sayac = Sayac +1 Sayac <= 51 Hayır Evet 2- Sayaç = 1 3- Yaz Sayac 4- Sayac = sayaç + 1 5- Eğer Sayaç <= 51 ise Git 3 Değilse Git 6 6- Dur Dur 30
Döngüye Özel Akış Şeması I: Başlangıç Değeri, Şart, Sayaç durumu P I 31
Döngüye Özel Akış Şeması Örnek Başla I=1, I<=50,I=I +1 Yaz I I Dur 1 den 50 ye kadar olan sayıları yazdıran akış şeması ve algoritması ALGORİTMA 1- Başla 2- Döngü I=1, I<=50, I=I+1 3- Yaz Sayac 4-Döngü Sonu 5- Dur 32
ÖRNEKLER ALGORİTMA ve AKIŞ ŞEMALARI 33
Örnek 1 Bir dikdörtgenin alanını ve çevresini bulan bir algoritma ve akış şeması oluşturunuz 34
Başla Çözüm 1 Oku En, Boy Alan = En * Boy Çevre = 2*(En + Boy) Yaz Alan, Çevre Dur ALGORİTMA 1- Başla 2- Oku En, Boy 3- Alan = En * Boy 4- Çevre = 2 * (En + Boy) 5- Yaz Alan, Çevre 6- Dur 35
Örnek 2 Bir sınıfta yer alan 30 öğrencinin aldığı notların ortalamasını bulan algoritma ve akış şemasını hazırlayınız. 36
Başla Çözüm 2 Sayaç = 1 ALGORİTMA Toplam = 0 1- Başla 2- Sayaç 1 Sayac <= 30 Evet 3- Toplam 0 4- Eger Sayac <= 30 ise Git 5 Değilse Git 9 Hayır Ort= Toplam/ 30 Yaz Ort Dur Sıradaki Öğrencinin Notu (Not) Toplam = Toplam + Not Sayac = Sayac +1 5- Oku(Not) 6- Toplam Toplam + Not 7- Sayac Sayac + 1 8- Git 4 9- Ort Toplam / 30 10- Yaz(Ort) 11- Dur 37
Örnek 3 Klavyeden girilen n sayının faktöriyelini alan algoritma ve akış şemasını hazırlayınız. 38
Çözüm 3 ALGORİTMA 1- Başla 2- Oku(N) 3- Faktör 1 4- S 1 5- Faktör Faktör * S 6- Eğer S <= N ise S S + 1 Git 5 7- Yaz(Faktör) 8- Dur 39
Nesne Tabanlı Programlama (OOP-Object Oriented Programming) Nesne Tabanlı Programlama, gerçek dünyadaki somut nesnelerden yola çıkarak, bir yazılım programında bunları temsil eden soyut nesnelerin oluşturulması ve bu nesnelerin birbirleri ile etkileşimini içeren bir programalama şeklidir. Klasik yapısal programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her şey veri ve bu veriyi işleyen metotlar etrafında dönüyordu. Fakat gerçek hayata baktığımızda ise herşeyin nesnelerden oluştuğu, bu nesnelerin bir takım özellikleri (veri) ve davranışları (metot) olduğu görülmüştür. Dolayısıyla Nesne Tabanlı Programlama gerçek hayatı örnek alarak temele nesneleri yerleştirmiş ve yazılım dünyasında bir devrim yaratmıştır. 40
Nesne Tabanlı Programlamanın Avantajları Problemlerin çözümüne nesnesel bakmayı yani insan anlayışı bakışı getirmiştir. Bu sayede yazılıma aktarılacak konuların daha basit ve anlaşılır modellenmesi sağlanabilmiştir. Hatalar daha kolay tespit edilebilmiş ve daha hızlı onarım yapılabilmiştir. Bu sayede yazılım geliştirme ve bakım maliyetlerinde önemli düşüşler tespit edilmiştir. Gerçek dünyada varolan sistemler çok hızlı bir şekilde yazılım dünyasına entegre edilebilmiştir. Modülerlik, Esneklik, tekrar kullanılabilirlik, güvenilirlik artmıştır. 41
Sınıf ve Nesne Kavramı (Class and Object) Herşey bir nesnedir (object). Her nesne bir sınıfın (class) örneğidir. Sınıf, aynı yapıdaki nesnelerin sahip olduğu ortak durum (state) ve davranışların (behaviour) yer aldığı bir modeldir. Programlama dillerinde durum, özellik (property) veya alan (field) dediğimiz yapılarla, davranış ise metot (method) veya fonksiyon (function) dediğimiz yapılarla ifade edilir. 42
Soyutlama (Abstraction) Soyutlama (Abstraction): Önemli özelliklere odaklanabilmek için ayrıntıları göz ardı etme sürecidir. Prosedürel Soyutlama: Programlarda kişiselleştirilmiş kod kullanmak yerine, belirli görevleri gerçekleştirmek için standart fonksiyonların oluşturulması bir prosedürel soyutlamadır. Veri Soyutlaması: Bir veri tipinin nasıl yapılandığının ayrıntılarını göz ardı etmemize izin veren soyutlama tarzına denir. 43
Nesne Tabanlı Programlama da 3 Önemli Özellik Kuşatma (Encapsulation): Soyutlamayı desteklemek için nesneye ait özelliklerin, metotların ve nesne içi etkileşimin gerekmediği sürece nesnenin dışına çıkmamasıdır. Bu şekilde nesnenin iç yapısı dış dünyadan korunmuş (kuşatılmış) olur. Ör: Otomobilin iç işleyişinden haberdar olmadan sürebilmek. Çokbiçimlilik (Polymorphism): Bir işlevin, işlemin, metodun değişik nesneler tarafından aynı ya da değişik biçimlerde kullanılabilir olmasıdır. Ör: «Fren Yap» metodunun kullanımı ve iç dinamikleri, otomobil, bisiklet veya tren gibi nesneler için tek bir isim altında fakat farklı yapısal biçimde kullanılması. Kalıtsallık (Inheritance): Bir sınıfa ait özellikler ve işlemlerin yeni bir sınıfa (çocuk sınıf) birebir aktarılmasıdır. Yeni sınıf eski sınıfın özellikleri ve işlemlerine sahip olmasına ek olarak kendisi de özellikler ve işlemler tanımlayabilir. Ör: Taşıt sınıfının Araba, Motorsiklet, Otobüs gibi alt sınıfları, Araba nın da Aile Arabası, Spor Arabası gibi alt sınıfları 44
Java ya Giriş Bir programın temel yapısı Sınıf tanımı Özellik tanımı Metot Tanımı Bir java programının çalışabilmesi için main() metodu isminde özel bir metot bulunmalıdır. JVM nin programı çalıştırabilmesi için main() metodu aşağıdaki şekilde yazılmak zorundadır. public static void main(string[] args) { } Main metodu sınıf tanımının içerisinde bulunur. 45
Java ya Giriş Kod System.out.println("Java Programlama") Sınıflar Metot Metodun alacağı girdi Çıktı 46
Java Programını Derlemek ve Çalıştırmak java program_adi.java javac class_adi 47
Açıklamalar Açıklama satırları program hakkında bilgiler vermek için kullanılır. Compiler açıklama satırlarını gözardı eder. Java içindeki açıklama yazmanın iki yolu vardır. Tek Satırlık Açıklamalar // Açıklamalar bu satıra yazılabilir. // Compiler iki slaş işaretinden satır sonuna // kadar herşeyi gözardı eder. Çok Satırlık Açıklamalar /* Açılama yazmanın diğer bir yoludur. Compiler slaş yıldız ile yıldız slaş arasındaki herşeyi gözardı eder. */ 48
Önişlemci direktifleri import java.util.*; ön işlemci direktifidir. Önişlemci direktifleri compiler a komutlar gönderir. java.util bir kütüphanedir. Klavyeden okuma ve ekrana yazman için gerekli deyimleri bulundurur. import deyimi ile compiler a java.util araçlarının kullanılacağı bildirilmiştir. Java çok sayıda kütüphaneye ve araca sahiptir. Java fonksiyonları kullanılacağı zaman uygun kütüphanenin programa import edilmesi gerekir. 49
Fonksiyonlar (Metotlar) Fonksiyon başlık satırı her fonksiyonda olur. Fonksiyonun adını ve giriş/ çıkış parametrelerini tanımlar. Genel yazımı return_type function_name(input parameters) { } şeklindedir. return_type, fonksiyonu çağıran yere döndürülecek değer tünü belirler. Fonksiyon blokları { ve } parantezleri ile oluşturulur. 50
Java Deyimleri Java deyimleri çalıştırılacak komutları ifade eder. Java daki çoğu deyim noktalı virgülle sonlandırılır. Merhaba dünya! programı bir deyime sahiptir. System.out.println("Merhaba dünya!"); out çıkışı yönlendirir. println ile string konsol ekranına gönderilir ve yeni satıra geçilir. 51
Boşluk karakterleri ve Java ile esnek yazım Boşluk karakterleri (Whitespaces) programın okunabilirliğini arttırır. Enter, tab ve space ile oluşturulur. Compiler gözardı eder. Merhaba dünya! programı aşağıdaki gibi yazılırsa yine çalışır: public class MerhabaDunya { public static void main (String [] args) { System.out.println( Merhaba dünya! ); }} 52
Syntax Syntax programın yazım kurallarını ifade eder. Önişlemci yazım hatası bulursa anlamlı bir mesajla programcıya bilgi verir. Programdaki az sayıda hata, çok sayıdaki hata, çok sayıda compiler hatası üretebilir. 53
Java'da İyi Program Yazım Şekli Java ile yazılan programın kolay okunabilir olması gerekir. Tanımlayıcı açıklamaların yapılması gerekir. Anlamlı ve uygun uzunlukta değişken isimlendirme yapılması gerekir. Programdaki blokların hizalandırılması gerekir. Balangıçta okunabilirlik için harcanan zaman, compiler hatalarının düzeltilmesi ve programın update edilmesi sırasında çok zaman kazandırır. 54
TEŞEKKÜRLER Dr. Yusuf UZUNAY yuzunay(at)gmail(dot)com 2015 - TOBB ETÜ