2. Bölüm Programlama Bilgisi

Benzer belgeler
BİLGİSAYAR SİSTEMLERİ

ALGORİTMA VE PROGRAMLAMA I

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

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

Program Nedir?(1) Programlamaya Giriş

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

Bilgisayarda Programlama. Temel Kavramlar

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

4. Bölüm Programlamaya Giriş

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI

BİLGİSAYAR ORGANİZASYONU

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

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

ENFORMATİK. Enformatik Bölümü

İÇERİK. Dersin işlenişi Bilgisayara giriş

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

EYLÜL 2012 ENFORMATİK. Enformatik Bölümü

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

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

Öğr.Gör. Mehmet Can HANAYLI

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

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

1. PROGRAMLAMAYA GİRİŞ

1 DERS İZLENCESİ 2 BİLGİSAYARA GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat

BİLGİSAYAR PROGRAMLAMA I (Java)

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

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma

Dr. Fatih AY Tel: fatihay@fatihay.net

Bilgisayara Giriş Konular

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

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi

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

5. PROGRAMLA DİLLERİ. 5.1 Giriş

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

Bilişim Teknolojileri Temelleri Dijital Dünyada Yaşamak

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

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

Bilgisayar Programlama Dilleri

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

Programlama Dilinin Özellikleri

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

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Hafta 1 Programlamaya Giriş

Bilgisayarların Gelişimi

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

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

PROGRAMLAMAYA GİRİŞ DERS 2

WINDOWS 7. Eğitim ID 98 2/4 (Normal Seviye Kullanıcı) Konu ID Windows 7 Hakkında Genel Bilgi Ek Bilgi -

Java Temel Özellikleri

HSancak Nesne Tabanlı Programlama I Ders Notları

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

T E M E L K AV R A M L A R. Öğr.Gör. Günay TEMÜR / Teknoloji F. / Bilgisayar Müh.

Linux Assembly Programlamaya Giriş

PROGRAMLAMA TEMELLERİ

PASCAL PROGRAMLAMA DİLİ YAPISI

10.DERS Yazılım Gerçekleştirme

C++ Dersi: Nesne Tabanlı Programlama

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Lambda İfadeleri (Lambda Expressions)

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

Algoritmalar ve Programlama. Algoritma

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

ALGORİTMA VE PROGRAMLAMA I DERS#3

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

Nesne Yönelimli Programlama

Bilgisayarın Yapıtaşları

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü

Donanım Nedir? Bir bilgisayar sisteminde bulunan fiziksel aygıtların tümü

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI. Bilgisayar I ve Bilgi İletişim Teknolojileri Dersi Öğr.Gör. Günay TEMUR

Bilgisayar Sistemlerine Genel Bakış

Hafta 1 Programlamaya Giriş

MTM 305 MĠKROĠġLEMCĠLER

Bilgisayar Bilimlerine Giriş 1

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

C# nedir,.net Framework nedir?

BİLGİ VE İLETİŞİM TEKNOLOJİLERİ

BİLGİSAYAR KULLANMA KURSU

HATA YAKALAMAK VE AYIKLAMAK GİRİŞ HATA AYIKLAMA. Hata Yakalamak ve Ayıklamak

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Bahar. BM 211 Programlama Dilleri 3 1

Bilgi ve Bilgi Sistemleri. Bilgisayar Mühendisliğine Giriş 1

MSC2018 BİLGİSAYAR UYGULAMALARI

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

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

BLG 1306 Temel Bilgisayar Programlama

Bilgisayar Programlama. 1.Hafta

PORTLAR Bilgisayar: VERİ:

Programlama Dilleri 3

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

Ana Bellek (RAM) İşlemci (CPU) Depolama

Bilgi Çağının Güçlü Araçları: Bilgisayarlar

Transkript:

2. Bölüm Programlama Bilgisi

Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 2.1. Bilgisayar Sistemleri Bilgisayar Bilgisayar giriş birimleri ile dış dünyadan aldıkları veriler üzerinde, aritmetiksel ve mantıksal işlemler yaparak saklayabilen, sakladığı bilgilere istenildiğinde ulaşılabilen ve çıkış birimleri ile dış dünyaya ileten yazılım ve donanım tabanlı sayısal elektronik bir sistemdir. Bellek (Memory) Bellek veri depolama amacıyla kullanılan birimidir. Her bir bellek hücresinin ayrı bir adresi vardır. Mikroişlemci ve bellek arasındaki veri iletişiminde, bellekten okuma veya yazma amacıyla ilgili bellek hücrelerinin adresleri kullanılır. Belleklerin temelinde 0 ve 1 olarak adlandırılan BIT (Binary DigIT) yapıları vardır. Tablo 2.1 de elektronik ve bilgisayar sistemlerinde kullanılan veri büyüklükleri görülmektedir. Şekil 2.1 de ise veri büyüklüklerin İkili Sayı sisteminde ifade edilmesi görülmektedir. Tablo 2.1. Veri büyüklükleri Veri Tanımı Birim Açıklama 0 veya 1 Bit Bit 4 adet Bit (1010) Nibble Nibble 8 adet Bit (01000001) Byte Byte 1024 x Byte KiloByte KB 1024 x KByte MegaByte MB 1024 x MByte GigaByte GB 1024 x GByte TeraByte TB 1024 x TByte PetaByte PB 1024 x PByte ExaByte EB 1024 x EByte ZettaByte ZB 1024 x ZByte YottaByte YB Not: 2 10 = 1024 olduğundan birimlerarası dönüşümde 1024 kullanılır. Kb: KiloBit KB: KiloByte (B: Byte ve b:bit) Şekil 2.1. Veri büyüklükleri 14

2. Bölüm: Programlama Bilgisi 2.2. Programlama Temelleri Program Program, bir problemin çözümüne ilişkin olarak yapılacak işlemlerin belirli kurallar içerisinde bir araya getirilmesiyle oluşan veri ve komut kodu dizileridir. Şekil 2.2 de çeşitli programlama dillerinde yazılmış toplama işlemine yönelik örnek programlar görülmektedir. using System; public class Test { public static void Main() { int sayi_a, sayi_b, toplam; Console.WriteLine("Toplama İşlemi"); Console.WriteLine("1. Sayıyı Giriniz:"); sayi_a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("2. Sayıyı Giriniz:"); sayi_b = Convert.ToInt32(Console.ReadLine()); toplam = sayi_a + sayi_b; } } Console.WriteLine("Toplam :" + toplam); Console.ReadKey(); Program Toplama_Islemi; Uses Crt; Var sayi_1, sayi_2, toplam : Integer; Begin Write ( 1. Sayıyı Giriniz: ); Readln(sayi_1); Write ( 2. Sayıyı Giriniz: ); Readln(sayi_2); toplam := sayi_1 + sayi_2; Write ( Toplama Sonucu :, toplam); End. Write ( Herhangi bir tuşa basınız ); Repeat Until Keypressed; Şekil 2.2. Farklı dillerde program örnekleri 15

Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ Programlama Programlama, programlarının tasarımı, yazılıp kodlanması, test edilmesi, hataların düzeltilmesi ve gerekli bakımların yapılması sürecidir. Yazılım (Software) Bilgisayar sisteminin çalışması ve işlevlerini yerine getirilebilmesi amacıyla donanım dışında kalan tüm sanal sistem yazılım olarak adlandırılır. Yazılım, bilgisayar programlarından oluşmaktadır. Yazılım Geliştirme Süreci Modeli (Waterfall Şelale Modeli) Yazılım geliştirmede kullanılan klasik süreçlerden biri Şelale Modelidir. Bu modelde yazılım geliştirme süreci; Analiz, Tasarım, Kodlama, Test ve Bakım olmak üzere 5 aşamadan oluşmaktadır (Şekil 2.3). Analiz Tasarım Kodlama Test Bakım Şekil 2.3. Şelale Modeli yazılım geliştirme süreci 16

2. Bölüm: Programlama Bilgisi 2.3. Programlama Aşamaları Programlama stratejisi genel anlamda Problem Tanımı, Tasarım, Test ve Uygulama aşamalarından oluşmaktadır (Şekil 2.4). PROBLEM Problem veya sorunun tanımlanması TASARIM Analiz, Algoritma, Kodlama TEST Alfa, Beta, Başarısız Başarılı UYGULAMA Program Sürümü ve Kullanımı Şekil 2.4. Programlama Aşamaları Programlama işleminde, problemin doğru anlaşılması, ihtiyaçların belirlenmesi ve çözüme yönelik analizin iyi bir şekilde yapılması gerekmektedir. Gerekli araştırma ve analiz yapıldıktan sonra, yapılması istenen işin kotarılması veya çözülmesi istenen problemin çözümüne yönelik olarak ayrıntılı algoritmalar hazırlanmalıdır. Algoritma Analizi yapılarak, çözüme cevap veren algoritma için uygun bir programlama dilinde kodlama yapılmalıdır. Programlama stratejisinin en önemli kısmı Test aşamasından oluşmaktadır. Test aşamasında başarısız olunarak istenen sonuca ulaşılamadığı durumlarda tasarım aşamasının yeniden gözden geçirilmesi ve programlamanın yeniden yapılması gerekmektedir. 17

Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 2.4. Programlama Dilleri Programlama Dili, bir programın yazılması amacıyla daha önceden oluşturulmuş kurallar bütünüdür. Yazılan bir programın bilgisayarın anlayacağı makina diline dönüştürülmesinde derleyici, yorumlayıcı ve çeviricilerden yararlanılmaktadır. Programlama dillerinin seviyelerine göre sınıflandırılması Şekil 2.5 te görülmektedir. Programlama Dilleri Çok Yüksek Seviyeli Yüksek Seviyeli Orta Seviyeli Düşük Seviyeli VHLL Very High Level Languages HLL High Level Languages MLL Mid Level Languages LLL Low Level Languages C#, Visual Basic, Delphi, Pascal, Basic, Fortran, C, C++, Java, MikroC Assembly Dili Makine Dili Şekil 2.5. Programlama Dillerinin Sınıflandırılması 18

2. Bölüm: Programlama Bilgisi Programlama dilleri arasındaki ilişki Şekil 2.6 da ifade edilmiştir. Alt Seviye Programlama Dilleri Kolaylaşır Program Yazma Hızlanır Kod Azalırken dosya boyutu artar Programın Çalışması Yavaşlar Etkinlik azalır Üst Seviye Programlama Dilleri Şekil 2.6. Alt ve Üst Düzey Programlama dilleri Üst Seviyeli Programlama Dilleri Text Tabanlı Programlama Dilleri (Pascal, GW Basic vb.) Görsel Programlama Dilleri (Delphi, Visual Basic vb.) Grafik Programlama Dilleri (Labview, WorkBench, Parsic vb.) Genel olarak programlama dilleri, Program Yazım Kurallarına ilave olarak aşağıdaki temel konuları içermektedir: Sabitler, Veri Tipleri ve Değişkenler Operatörler Karar ve Çevrim Kontrol Yapıları Altprogramlar 19

Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 2.5. Programların İşletilmesi Bilgisayar programların işletilebilmesi için öncelikle yazılan kaynak kodun (Source Code), yorumlayıcı, derleyici, çevirici vb. araçlarla bilgisayarın anlayacağı dile dönüştürülmesi gerekmektedir (Şekil 2.7). Kaynak Kod (Source Code) - *.C MikroC Derleyici Assembly Code (*.ASM) Object Code (Hex Kod) Şekil 2.7. MikroC ile HEX kodların elde edilmesi aşamaları 20

2. Bölüm: Programlama Bilgisi Yorumlayıcı (Interpreter) Yorumlayıcı, yazılan kaynak programı deyim deyim CPU nun anlayacağı makine diline dönüştüren ve çalıştıran yazılımlardır. Programı oluşturan komut satırları birer birer ele alınır. Komut satırında hata yoksa çalıştırılır ve bir sonraki komut satırına geçilir. Hata olduğu anda program çalışması durur. Bu işlem bu şekilde program sonuna kadar devam eder. Yorumlayıcı mantığında programın tamamının hatalardan arındırılmış olması gerekmez. Hatta hataya rastlanılmadığı, şartlar hatalı satırın olduğu komut satırının çalıştırılmasını gerektirmediği sürece program çalışmasına devam eder. Derleyici (Compiler) Derleyici, yazılan kaynak programı CPU nun anlayacağı makine diline dönüştüren yazılımlardır (Şekil 2.8). Programın tamamı gözden geçirilir ve hiç hata yoksa program çalıştırılabilir hale gelir. Hatalar varsa; hata listesi verilir. Kaynak Kod Source Code Compiler Derleyici Object Code (Hex Kod) Linker Bağlayıcı Çalıştırabilir Kod *.EXE Şekil 2.8. Bilgisayar Tabanlı Programlama Adımları Bağlayıcı (Linker) Derleme ile elde edilen Object kodların ilave durumdaki kütüphane vb. ekstra kodlar ile birlikte kendi başına çalıştırılabilecek hale getirilmesi işlemidir. Çevirici (Assembler) Assembly dilinde Mnemonik komutlardan oluşan ve text tabanlı olarak yazılmış programın HEX kodlara dönüştürülmesini sağlayan yazılımlara Assembler-Çevirici adı verilir (Şekil 2.9). Mnemonik Komut Örnekleri (MOVLW, ADDF, GOTO, CALL BNC vb. kısaltmalar) SHL Shift Left Sola Kaydır SHR Shift Right Sağa Kaydır ROR Rotate Right 21

Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ Kaynak Kod Source Code *.ASM Assembler Çevirici Object Code (Hex Kod) Programlayıcı Donanım ve Yazılım Mikrodenetleyici PIC, ATMEL Şekil 2.9. Assembly Dili Programlama Adımları Kullanıcı Arayüzü (User Interface) İnsan-Bilgisayar arasında yer alarak etkileşim sağlayan ve veri giriş-çıkış işlemlerinin yönetildiği yazılım arabirimidir. Yazılımlar için temelde 2 tür kullanıcı arayüzü vardır. Bunlar: Text Tabanlı Kullanıcı Arayüzü (TUI - Text-Based User Interface) Grafik Tabanlı Kullanıcı Arayüzü (GUI Graphics User Interface) Programlama Hataları Program hataları genel olarak 3 sınıfta incelenir (Şekil 2.10): - Syntax Error (Yazım Sözdizim Hatası) - Logical Error (Mantık Hatası) - Run-Time Error (Çalışma Zamanı Hatası) Kaynak Kod Derleyici Makine Dili Sözdizim Hataları (Syntax Error) Mantıksal ve Çalışma Zamanı Hataları (Logical and Run-Time Error) Mantık Hatası, programın çalışması ancak istenmeyen değerler de üretebilmesi durumudur. Hata program çalışmasında sürekli olarak oluşabileceği gibi, nadiren de meydana gelebilir. Bu açıdan hatanın giderilmesi bazen oldukça çok olabilmektedir. Programın çalışması esnasında meydana gelebilecek hataları önceden kestirmek ve program akışını bu duruma göre kontrol etmek amacıyla, programlama işlemlerinde Hata Yakalama Yordamları sıkça kullanılmaktadır. Örnek Hata Yakalama Yordamları; Pascal / Delphi : Try/Except/End ve Try/Finally/End C# : try / catch / finally 22 Şekil 2.10. Programlama Hataları

2. Bölüm: Programlama Bilgisi 2.6. Programlama Önerileri Programın sözdizim, mantık ve çalışma zamanı hatalarından uzak bir şekilde yazılarak doğru çalışması ve doğru sonuçlar üretmesi kodlama ve yazılım geliştirme açısından önemlidir. Programlamada, yazılan bir programın programcının kendisi kadar, başka programcılar tarafından da anlaşılabilir olması arzu edilir. Bu nedenlerle, iyi bir programda aranan özellikler şu şekilde sıralanabilir: Program içinde açıklamalara, kullanım talimatlarına yer verilmelidir. İsimlendirmeler kurallara göreve anlaşılır olarak yapılmalıdır (Deve ve Altçizgi Notasyonu). Programda blok yapılarına ve girintilere dikkat edilmelidir. Program anlaşılmasını zorlaştıran break, continue, goto vb. yapısal olmayan kodlamalardan kaçınılmalıdır. Kullanıcı Dostu (User Friendly) Göze hitap eden, daha anlaşılır, daha hızlı sonuca ulaşan, işlemleri kolaylaştıran ve kullanım kolaylığı sağlayan yazılımlar için kullanıcı dostu tabiri kullanılır. Kullanıcı Dostu tabiri bir bakıma yazılımın kalitesini ve kullanışlılığını göstermektedir. 23

Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 2.7. IDE Integrated Development Environment (Tümleşik Geliştirme Ortamı) IDE (Tümleşik Geliştirme Ortamı), bilgisayar programcılarının hızlı ve rahat bir şekilde yazılım geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür (vikipedi). Yazılım geliştirmede tercih edilen en yaygın IDE araçları Tablo 2.2 de verilmiştir. Tablo 2.2. Çeşitli IDE araçları IDE Türü Text Tabanlı IDE Görsel Tabanlı IDE Grafik Tabanlı IDE Mobil IDE Veritabanı IDE Gömülü Sistemler (Embedded Systems) Örnek C++ Microsoft Visual Studio, Matlab Labview Android Studio MSSQL, Navicat MikroC Pro for AVR, Arduino IDE Bir IDE aracında olması gerekli temel özellikler şe şekilde sıralanabilir: Kaynak Kod Yazım Editörü Kaynak Kod Hiyerarşik Dosya Ağacı Tümleşik Derleyici (Compiler), Yorumlayıcı (Interpreter), Builder Hata Ayıklayıcı (Debugger) Araçlar (Tools) Şekil 2.10 ve Şekil 2.11 de çeşitli IDE ortamları görülmektedir. 24

2. Bölüm: Programlama Bilgisi Şekil 2.11. Code::Blocks IDE örnek ekran alıntısı (http://www.codeblocks.org ) Şekil 2.12. Visual Studio C# Console IDE örnek ekran alıntısı 25

Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 26