Kazanımlar. Programlama Dili Nedir? Programlama Dili. ENF102 Jeoloji

Benzer belgeler
Algoritma. 19. yüzyılda Persli matematikçi Al- Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir.

3/3/2011. ENF-102 Jeoloji 1. Akış Diyagramı. Akış Diyagramı Şekilleri

Kazanımlar. Programlama Dili Nedir? Programlama Dili. Seviye. Çok yüksek seviyeli diller. ENF102 Jeoloji

Algoritmalar. 3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

GÖRSEL PROGRALAMA HAFTA 3 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Programlama Temelleri

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

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

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

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

Algoritmalar ve Programlama. Algoritma

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

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

Bilgisayarda Programlama. Temel Kavramlar

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

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

Bilgisayar Programı Nedir?

ALGORİTMA HAZIRLAMA. Temel tanımlar ve işleyiş. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

4- ALGORİTMA (ALGORITHM)

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

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Bilgisayar II Dersi. Bölüm-2

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir.

Bilgisayar Programlama / Bahar

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

PROGRAMLAMA TEMELLERİ

4- ALGORİTMA (ALGORITHM) M.İLKUÇAR - 1

Dr. Musa KILIÇ Öğretim Görevlisi

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.

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

ÖLÜM 1- GİRİŞ Visual Basic

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

Algoritma ve Programlamaya Giriş

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Programlama Dilinin Özellikleri

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

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

BİLGİSAYAR PROGRAMLAMA MATLAB

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

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

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

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

C++ Dilinde Bazı Temel Algoritmalar

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

PROBLEM ÇÖZME PROGRAMLAMA ve ÖZGÜN ÜRÜN GELİŞTİRME

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Bilgisayar Programlama. 1.Hafta

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

ALGORİTMA VE AKIŞ ŞEMALARI

BÖLÜM 2: ALGORİTMALAR

Algoritma ve Akış Diyagramları

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Algoritma & Matlab.

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

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA. Yazılım Nedir Algoritma Akış Seması Örnekler

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

BÖLÜM 3: AKIŞ DİYAGRAMLARI

ALGORİTMAYA GİRİŞ. Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir.

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

Algoritmanın Hazırlanması

5. PROGRAMLA DİLLERİ. 5.1 Giriş

1. PROGRAMLAMAYA GİRİŞ

Genel Programlama I

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

Algoritma ve Akış Şemaları

C PROGRAMLAMA DİLİNE GİRİŞ

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.)

KBÜ. TBP101 Programlama Temelleri. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

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

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

Bilgisayar Temelleri ve Programlamaya Giriş Yard.Doç.Dr. Metin HASDEMİR İstanbul-2008 PROGRAMLAMAYA GİRİŞ

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


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

Algoritma ve Akış Diyagramları

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

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

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

Bilgisayar programlaması sırasında izlenebilecek bir çok yol ve yöntem vardır. Programcının probleme ilişkin çözümü ortaya çıkarabilmesi için problem

Yrd. Doç. Dr. Fatih YÜCALAR YZM Celal Bayar Üniversitesi Teknoloji Fakültesi

4. Bölüm Programlamaya Giriş

VERİ TABANI YÖNETİM SİSTEMLERİ I

Bilgisayar Programlama Dilleri

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

Basit Algoritma Akış Diagramı Örnekleri

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

... 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

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

BİLGİSAYAR PROGRAMLAMA MATLAB

Bilgisayar ve Programlama

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

C PROGRAMLAMA DİLİ. Hedefler

Program Nedir?(1) Programlamaya Giriş

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR

BLG 1306 Temel Bilgisayar Programlama

Transkript:

Kazanımlar Programlama Dili Nedir? Bu dersin sonunda Programlama dilinin ne olduğunu, Seviye kavramının ne demek olduğunu, Yorumlayıcı ile derleyici arasındaki farkı, Programlama dillerinin hangi kriterlere göre değerlendirildiğini, C dilinin temel özelliklerini, C dilinin tarihçesini, Program geliştirme adımlarını, Program içerisinde kullanılan tanımlamaların neler olduğunu öğreneceksiniz. ENF-102 Jeoloji 2010 2/88 Programlama Dili Programlama dili programcının programı yazarken kullandığı özel bir dildir. Program yazarken dil seçimi, yazılacak programın niteliğine göre yapılmalıdır. Bilgisayar kullanımının artması ile ihtiyaçlara göre programlama dilleri geliştirilmiştir. Programlama dillerinin seviyelerine göre sınıflandırılması Seviye kavramı nedir? Seviye, bir programlama dilinin insan algılamasına olan yakınlığının ölçüsüdür. Yüksek seviyeli diller, insan algılayışına daha yakın, alçak seviyeli diller de bilgisayarın doğal çalışmasına daha yakın olan dillerdir. ENF-102 Jeoloji 2010 3/88 ENF-102 Jeoloji 2010 4/88 ENF102 Jeoloji-2010 1

Seviye Dillerdeki seviye yükseldikçe programcının işi kolaylaşır. Öyle ki, çok yüksek seviyeli programlama dillerinde artık bir işin nasıl yapılacağına ilişkin değil, ne yapılacağına ilişkin komutlar bulunur. Çok yüksek seviyeli diller Görsel programlama dilleri ya da çok yüksek seviyeli programlama dilleri, program kodunun kısmen ya da tamamen görsel bir biçimde çeşitli araçlar tarafından üretildiği dillerdir. Görselliğin ileri uçlarında program kodu bile bulunmayabilir. ENF-102 Jeoloji 2010 5/88 ENF-102 Jeoloji 2010 6/88 Yüksek seviyeli diller Yüksek seviyeli programlama dilleri daha algoritmik dillerdir. Bu dillerde önce işlerin nasıl yapılacağına dair algoritmalar tasarlanır ve bu algoritmalar daha sonra program koduna çevrilir. ENF-102 Jeoloji 2010 7/88 Orta seviyeli diller Bu diller hem kullanıcıya hem de bilgisayara yakın olan yapılar içerirler. Yüksek seviyeli dillerin kolaylıkları ile alçak seviyeli dillerin esnekliğini ve doğallığını kullanırlar. Bu diller özellikle sistem programlarının yazımında tercih edilirler. ENF-102 Jeoloji 2010 8/88 ENF102 Jeoloji-2010 2

Düşük seviyeli diller Sembolik makine dillerini ve doğal makine dillerini kapsar. Programlama Dilleri Bilgisayara en yakın Makina dilleri Düşük seviyeli diller Assembly Orta seviyeli diller C, ADA... Yüksek seviyeli diller Pascal, Basic, Fortran... Çok yüksek seviyeli diller VisualBasic, VB.NET, Acces, Foxpro... İnsana en yakın ENF-102 Jeoloji 2010 9/88 ENF-102 Jeoloji 2010 10/88 Makine dili Bilgisayarın doğal dilidir. Bilgisayarın donanımsal tasarımına bağlıdır. Makine dili 010101001 lerden oluşan komutlardır ve bunlar doğrudan makineye hitap eder. İlk dil olarak kullanılanbudildeikitemel sorun vardır. Bu dilde yazılan kodlar, makinenin işlemcisine, donanım parçalarına verilen kodlardır. Makine dili taşınabilir değildir. ENF-102 Jeoloji 2010 11/88 Makine dili Diğer önemli bir sorun ise, bu dilde kod yazmak, okumak ve algılamak hem zaman alıcı hem de uğraştırıcı olmasıdır. ENF-102 Jeoloji 2010 12/88 ENF102 Jeoloji-2010 3

Simgesel Makine dili Assembly dili, makine dilinin komutlarını birkaç tanesini paketleyen bazı kısaltma sözcüklerden ve komutlardan oluşuyordu. Ancak, bu dilde yazılan program makine dilinde olduğu gibi bilgisayarın belleğine yükleniyor ancak programın çalıştırılması aşamasında yorumlayıcı programa ihtiyaç duymaktaydı. ENF-102 Jeoloji 2010 13/88 Yorumlayıcı? Simgesel dilin komutları, bilgisayar tarafından komut komut makine diline çevriliyor ve oluşan makine kodu çalıştırılır. ENF-102 Jeoloji 2010 14/88 Kodun her çalıştırılmasında yazılan kod makine diline çevrileceğine, geliştirilecek bir başka program simgesel dilde yazılan kodu bir kez makine diline çevirsin ve program artık nezamançalıştırılmak istense, bilgisayar yorumlama olmaksızın yalnızca makine kodunu çalıştırsın. ENF-102 Jeoloji 2010 15/88 Derleyici Bu Grace Hopper ın fikrine derleyici denmektedir. Bu program sayesinde Assembly programlama dilleri kullanıyor, programlar derleyici tarafından makine koduna dönüştürülüyor ve makine kodu eski hızından daha hızla çalışıyordu. ENF-102 Jeoloji 2010 16/88 ENF102 Jeoloji-2010 4

Assembly dillerinin kullanılmaya başlamasıyla bilgisayarların kullanımı hızla arttı. Ancak en ufak işlemler için bile çok komut gerektirmesi, programlama sürecini hızlandırma ve kolaylaştırma arayışlarını başlattı. Diğer diller geliştirilmeye başlandı. ENF-102 Jeoloji 2010 17/88 Programlama dillerinin değerlendirilmesi Okunabilirlik Taşınabilirlik Verimlilik Uygulama alanları Alt programlama yeteneği Öğrenme ve öğretme kolaylığı Programlama tekniklerine verilen destekler Giriş/çıkış kolaylığı Veri türleri ve yapıları Esneklik ENF-102 Jeoloji 2010 18/88 C nasıl bir dildir? C orta seviyeli bir dildir. Yani C hem bilgisayarın hem de insanın algısına yakın bir dildir. C verimli bir dildir. Dilin düzeyi düşük olmasından dolayı hızlı çalışır. C dilinin ana uygulama alanı sistem programlama dır. C nasıl bir dildir? C algoritmik bir dildir. C sözdizimi kurallarını bilmek yetmez, algoritma bilgisini de bilmeyi gerektirir. Taşınabilirliliği çok yüksek bir dildir. İfade gücü yüksek, okunabilirliliği güçlü bir dildir. Esnek bir dildir. Kullanıcıya kısıtlama getirmez. ENF-102 Jeoloji 2010 19/88 ENF-102 Jeoloji 2010 20/88 ENF102 Jeoloji-2010 5

C nasıl bir dildir? C güçlü bir dildir, çok iyi bir biçimde tasarlanmıştır. Cdoğal bir dildir. Bilgisayar sistemi ile uyum içindedir. C nin standart bir kütüphanesi vardır. Sık yapılan işlemler için ortak bir alan sağlanmıştır. C nasıl bir dildir? C nin eğitimi diğer bilgisayar dillerine göre daha zordur. C dili Unix işletim sistemi ile bütünleşme içindedir. C de alt programlama tekniği ileri düzeyde kullanılmaktadır. ENF-102 Jeoloji 2010 21/88 ENF-102 Jeoloji 2010 22/88 C dilinin zayıf yanları Esnek ve güçlü bir dil olması programcının hata yapma riskini arttırır. Kod yazımında yapılan hataların bulunması diğer dillere göre zordur. C PROGRAMLAMA DİLİ TARİHİ Genel Bakış ENF-102 Jeoloji 2010 23/88 ENF102 Jeoloji-2010 6

Giriş C dili C Dili, Dennis Ritchie tarafından 1972 yılında yazıldı ve UNIX'in işletim sisteminin sistem dili olarak geliştirilmiştir. Ritchie o yıllarda B adlı programlama dilinin tasarımcısı olan Ken Thomson ile birlikte Unix işletim sistemi O zamanın yapısal programlama dilleri olan ALGOL 60, CPL, BPCL sistem programlama açısından oldukça yetersizdi. Ritchie, Thomson tarafından tasarlanan B diline yeni fikirler getirerek C dilinin temellerini atmış oldu. üzerinde çalışıyordu. ENF-102 Jeoloji 2010 25/88 ENF-102 Jeoloji 2010 26/88 C dili C önceleri geniş kitleler tarafından tanınmıyordu. C nin bütün dünyada tanınması ve yıldızının parlaması 1978 de Dennis Ritchie ve Brian Kernighan tarafından yazılan The C Programmin Language kitabıyla birlikte oldu. ENF-102 Jeoloji 2010 27/88 Program Geliştirme Adımları ENF102 Jeoloji-2010 7

Giriş Programlamada asıl olan problem çözümüdür. Problem çözme işleminde ne kadar iyiyseniz o oranda iyi bir programcı olabilirsiniz. Program geliştirme yöntemi Bilgisayar programcılarının program geliştirme yöntemi aşağıdaki adımlardan oluşur: Problem Analiz Tasarım Uygulama Sınama Bakım ENF-102 Jeoloji 2010 29/88 ENF-102 Jeoloji 2010 30/88 Problem Bu ilk adımda programcı, problemi anlamaya çalışır. Problemin ne olduğunu, çözümde nelerin gerekli olduğunu, lazım olan ön bilgileri belirler. Problemi anlamanın çözümün yarısı olduğu unutulmamalıdır! ENF-102 Jeoloji 2010 31/88 Analiz Bu adımda problemi çözüm için verilen değerler ile programın elde etmesi gereken değerlerin ne olduğu belirlenmelidir. Girdiler ve çıktılar madde madde yazılır. Bu girdi ve çıktı arasındaki ilişki belirlenir. Belirlenen ilişki formüller ile açıklanabilir. ENF-102 Jeoloji 2010 32/88 ENF102 Jeoloji-2010 8

Analiz Problem adımı başarılı bir şekilde gerçekleşmeden analiz adımına geçilmemelidir. Problem çözümünde ilk iki adım çok önemlidir. Çözüm için bir fikir bulunamamışsa problem tekrar gözden geçirilmelidir. ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. PROBLEM: Bu problemde üçgen alanını bulmak için gerekli olan formülün bulunması zorunludur. Formül olduğunu düşünmek çözüm yöntemi hakkında bir fikir oluştuğu anlamına gelir. ENF-102 Jeoloji 2010 33/88 ENF-102 Jeoloji 2010 34/88 ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. ANALİZ Girdiler: Taban ve Yükseklik Çıktılar: Alan ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. Verilen değerler ile çıktı arasındaki formüle edilmiş ilişkiyi belirlemek gerekir. Gerekli olan girdileri ve birbirleri arasındaki ilişkileri belirleyerek bir problemi modelleme işlemine soyutlama (abstraction) adı verilir. Alan=(Taban X Yukseklik)/2 ENF-102 Jeoloji 2010 35/88 ENF-102 Jeoloji 2010 36/88 ENF102 Jeoloji-2010 9

Tasarım Probleminçözümüiçingerekliolançözüm aşamalarını mantıksal sıra içerisinde yazılması aşamasıdır. Yapılan işleme algoritma adı verilir. İyi bir algoritmanın ikişartı vardır. Bütün adımlar mantıksal bir düzen ve sıra içerisinde verilmeli Verilen adımların tamamı çalıştırılabilir olmalıdır. Tasarım Algoritmanın oluşturulmasında sözde kod (pseudocode) adı verilen günlük konuşma diline yakın bir dil kullanılabilir. Kullandığı dil programcının kendi inisiyatifine kalmıştır. ENF-102 Jeoloji 2010 37/88 ENF-102 Jeoloji 2010 38/88 Tasarım Algoritma tasarlanırken bütün problem parçaları aynı anda çözülmeye çalışılmaz. Problem kendi içinde önemli parçalara ya da alt problemlere ayrılır ve sonra bu alt problemler çözülerek esas problemin çözümüne gidilir. Bu yönteme yukarıdan aşağı tasarım (topdown design) (divide & conquer- böl ve yönet diye de bilinir) adı verilir. Tasarım Algoritma tasarımının önemli bir parçası da masa incelemesi (desk check) denilen algoritmanın doğru çalışıp çalışmadığının adım adım izlenerek (trace) kontrol edilmesidir. Bu kontrol etme esnasında erkenden fark edilen hatalar programcıya hem zaman kazandıracak, hem de boş yere enerji harcamasına mani olacaktır. ENF-102 Jeoloji 2010 39/88 ENF-102 Jeoloji 2010 40/88 ENF102 Jeoloji-2010 10

Tasarım Algoritma yazarken her bir adıma numara verilir. İlk adım "BAŞLA", son adımda her zaman "DUR" olur. Aşağıda ilk örnek algoritma çalışması verilmiştir. Burada bilgisayar yürüyebilen, hareket edebilen bir robot gibi düşünülmüştür. Problem "Yerinden kalkıp tahtaya adını yazma" işidir. Algoritma aşağıdaki gibi yazılabilir. ENF-102 Jeoloji 2010 41/88 ENF-102 Jeoloji 2010 42/88 Yerinden kalkıp tahtaya adını yazma 1. BAŞLA 2. Yerinden kalk 3. Yönün tahtaya doğru mu? 1. Hayırsa Tahtaya Dön 2. Evetse adım 4 e git 4. Tahtaya doğru yürü 5. Tahtaya geldin mi? 1. Hayırsa adım 4'e 2. Evetse adım 6'ya git 6. Kalemi al 7. Adını yaz 8. DUR ENF-102 Jeoloji 2010 43/88 Yerinden kalkıp tahtaya adını yazma Burada bilgisayar robota emirler, belli sorgulamalar yapılarak ve mantıksal bir sıra içinde verilmiştir. Yerinden kalk emri verilmeden ondan yürümesi istenemez. Kalemi almadan adını yaz emrinin verilmesi doğru olmazdı. Sorgulamalarla da işlemi yapıp yapmadığı kontrol edilmiştir. ENF-102 Jeoloji 2010 44/88 ENF102 Jeoloji-2010 11

Yerinden kalkıp tahtaya adını yazma Bu örnek, sadece adımların tutarlılığını ve mantıksal sırasını göstermek içindi. Yoksa bilgisayar bu tür işleri yerine getiremez. Esasında kullanıcılar bilgisayarlara belli girdiler verir. Onlarda programcının verdiği adımlara göre bu girdiler üzerinde matematiksel ve mantıksal işlemler Üçgenin Alanı Yukarıdaki verilen üçgen alanını hesaplama işlemi için gerekli olan algoritma, sözde kod (pseudocode) kullanarak aşağıdaki gibi oluşturulabilir. 1. BAŞLA 2. Taban değerini al 3. Yükseklik değerini al 4. Taban ile yüksekliği çarp sonucu ikiye böl 5. Sonucu yaz 6. DUR yaparak bir çıktı üretirler. ENF-102 Jeoloji 2010 45/88 ENF-102 Jeoloji 2010 46/88 Üçgenin Alanı Önceki algoritma kendi içerisinde tutarlı ve mantıksal sıra ile yazılmıştır. Değerler verilmeden alan hesabı işlemini yaptırmak doğru olmazdı. Fakat algoritmalarda daha öncede belirtildiği gibi kısa ve basit kelimelerle emirler verilecektir. Böylece uygulama yapılacak program kodlarına adapte olmak kolaylaşacaktır. Üçgenin Alanı 1. BAŞLA 2. OKU taban, 3. OKU yükseklik 4. alan= (Taban X Yükseklik)/2 5. YAZ alan 6. DUR ENF-102 Jeoloji 2010 47/88 ENF-102 Jeoloji 2010 48/88 ENF102 Jeoloji-2010 12

Üçgenin Alanı Uzun cümleler yazmak yerine kısa basit kelimelerle ve formülize edilmiş işlemlerle çözüm sağlanmış oldu. Her algoritma BAŞLA emri ile başlar ve DUR emriyle de biter. Dışarıdan verilmesi gereken bilgiler için OKU, sonuçları göstermek içinde YAZ emri kullanılabilir. Örnek: Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır. ENF-102 Jeoloji 2010 49/88 ENF-102 Jeoloji 2010 50/88 Çözüm 1: 1. Evden dışarıya çık 2. Otobüs durağına yürü 3. Durakta gideceğin yöndeki otobüsü bekle 4. Otobüsün geldiğinde otobüse bin 5. Seyahat bedelini öde 6. İneceğin yere yakınlaştığında arkaya yürü 7. İneceğini belirten ikaz lambasına bas 8. Otobüs durunca in 9. İşyerine doğru yürü 10. İş yeri giriş kapısından içeriye gir 11. Mesai arkadaşlarınla selamlaş 12. İşini yapmaya başla. ENF-102 Jeoloji 2010 51/88 Çözüm 2: 1. Evden dışarıya çık 2. Otobüs durağına yürü 3. Otobüsün saati geçmiş? 4. Durakta gideceğin yöndeki bir sonraki otobüsü bekl 5. Bir sonraki otobüs gelene kadar 4. adımı uygula 6. Otobüsün geldiğinde otobüse bin 7. Seyahat bedelini öde 8. İneceğin yere yakınlaştığında arkaya yürü 9. İneceğini belirten ikaz lambasına bas 10. Otobüs durunca in 11. İşyerine doğru yürü 12. İş yeri giriş kapısından içeriye gir 13. Mesai arkadaşlarınla selamlaş 14. İşini yapmaya başla. ENF-102 Jeoloji 2010 52/88 ENF102 Jeoloji-2010 13

Örnek : İki sayıyı toplamak için gerekli programa ait algoritmanın oluşturulması. Algoritma: 1. Başla 2. Birinci sayıyı gir 3. İkinci sayıyı gir 4. İki sayının toplamını yap 5. Toplamın değerini yaz 6. Bitir 1. Başla 2. X değerini gir 3. Y değerini gir 4. Z = X+Y 5. Z yi yaz 6. Bitir ENF-102 Jeoloji 2010 53/88 ENF-102 Jeoloji 2010 54/88 Örnek : Beş sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması Toplam adı için Top Ortalama adı için Ort Girilen sayılar için X Arttırma için Sayac kullanılırsa Algoritma: 1. Başla 2. Top = 0, Sayac = 0 3. X i gir 4. Top= Top+X 5. Sayac = Sayac +1 6. Eğer Sayac <5 ise A3 e git 7. Ort= Top/5 8. Top ve Ort değerlerini yaz 9. Bitir ENF-102 Jeoloji 2010 55/88 ENF-102 Jeoloji 2010 56/88 ENF102 Jeoloji-2010 14

Akış Diyagramı Algoritma adımlarını şekillerle ifade etme işine akış diyagramı adı verilir. Standartlaşmış şekillerle ifade edilirler. Akış Diyagramı ENF-102 Jeoloji 2010 58/88 Akış Diyagramı Şekilleri Akış Diyagramı Şekilleri başla ve dur işlem eğer (koşul bildirimi veya karar) sayfa içi bağlayıcı giriş ekrandan değer oku farklı sayfa bağlayıcı görüntüleme ekrana çıktı yaz ENF-102 Jeoloji 2010 59/88 bağlayıcı oklar ENF-102 Jeoloji 2010 60/88 ENF102 Jeoloji-2010 15

Akış Diyagramı ÖRNEK : Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. Algoritmadaki ifadeler şekillerin içerisine yazılır. BAŞLA ve DUR şekilleri hariç her bir şeklin anlamı belli olduğundan içlerine tekrar anlamla aynı olacak kelime ve ifadeler yazılmaz. 1. BAŞLA 2. OKU taban, 3. OKU yukseklik 4. alan= (Taban X Yukseklik)/2 5. YAZ alan 6. DUR BAŞLA taban yukseklik alan = (taban X yukseklik)/2 alan DUR ENF-102 Jeoloji 2010 61/88 ENF-102 Jeoloji 2010 62/88 Uyarılar... Akış şemalarında tek bir başlangıç simgesi olmalıdır Bitiş simgesi birden çok olabilir. Karar simgesinin haricindeki simgelere her zaman tek giriş ve tek çıkış yolu bulunur. Bağlaç simgesi sayfanın dolmasından ötürü parçalanan akış şemasının öğelerini birleştirmede kullanılır. Simgeler birbirleri ile tek yönlü okla bağlanırlar. Okların yönü algoritmanın mantıksal işlem akışını tanımlar. ENF-102 Jeoloji 2010 63/88 Uygulama Algoritması oluşturulan programın herhangi bir dilin kurallarına uyarak ve komutlarını kullanarak yazılma aşamasıdır. Sözde kod (Pseudocode), kullanılan programlama diline dönüştürülür. ENF-102 Jeoloji 2010 64/88 ENF102 Jeoloji-2010 16

Sınama Program yazıldıktan sonra, uygun aşamalardan geçirilip, verilen girdilere göre uygun çıktıları üretip üretmediği kontrol edilir. Bu aşamada program girdi olarak verilebilecek tüm değerlere göre; özellikle de uç değerlere göre sınanır. Örneğin girdi olarak bir tamsayı girilmesi gereken programda, girilen sayının negatif olması halinde yapılacak işlemler tanımlanmamış olabilir. Bu gibi durumlar bu aşamada gözden geçirilmelidir. ENF-102 Jeoloji 2010 65/88 Bakım Sınama aşamasından sonra ortaya çıkan aksaklıklar varsa bunlar giderilir. ENF-102 Jeoloji 2010 66/88 ÖRNEK : Çalıştığı gün sayısı ve yevmiyesi girilen işçinin maaşını hesaplayan algoritmayı ve akış diyagramını yapınız. PROBLEM Bu program çalıştığı gün sayısı ve günlük yevmiyesi verilen işçinin maaşını bulacaktır. Maaş hesaplanırken işçinin çalıştığı gün sayısı ile günlük yevmiyesi çarpılarak maaş hesaplanabilir. ENF-102 Jeoloji 2010 67/88 ENF-102 Jeoloji 2010 68/88 ENF102 Jeoloji-2010 17

ANALİZ Girdiler: Gün Yevmiye Çıktılar: Maaş İlişki Maas=Gun X Yevmiye TASARIM 1. BAŞLA 2. OKU gun 3. OKU yevmiye 4. maas=gun x yevmiye 5. YAZ maas 6. DUR ENF-102 Jeoloji 2010 69/88 ENF-102 Jeoloji 2010 70/88 AKIŞ ŞEMASI BAŞLA gun, yevmiye maas = gun x yevmiye maas Tanımlamalar DUR ENF-102 Jeoloji 2010 71/88 ENF102 Jeoloji-2010 18

Değişken Bir önceki örnekte gun ve yevmiye değerleri değişik işçiler için farklı olacaktır. Örneğin bir işçinin çalıştığı gün sayısı 25 iken diğerinin ki 30 olabilir. Program içerisinde değerleri birer isimle temsil etmek zorunluluğu buradan kaynaklanır. Doğrudan sayılar yerine değerleri temsil eden isimler kullanılır. Değişken Program içerisinde değerleri değişen bu tür yapılara değişken (variable) denir. Değişken isimleri verirken, aşağıdaki kurallara dikkat etmek uygun olacaktır. Ayrıca bütün programlama dillerinde bu kurallar aşağı yukarı aynıdır. Şimdiden bu kurallara dikkat edilmesi programlama dilini öğrenirken kolaylık sağlayacaktır. ENF-102 Jeoloji 2010 73/88 ENF-102 Jeoloji 2010 74/88 Değişken Değişken isimleri içerisinde barındırdıkları ya da başka bir deyişle temsil ettikleri değeri anımsatmak zorundadırlar. İsim seçerken programcı kendisine göre bir sistematik geliştirmeli, sonradan kendisinin baktığında hatırlayabileceği ve hep aynı olan bir yöntem benimsemelidir. Örneğin işçinin maaş değerini tutan değişkenin adı sadece m de olabilirdi, fakat daha iyi temsil etmesi ve anlaşılırlık açısından maas ismi tercih edilmiştir. ENF-102 Jeoloji 2010 75/88 Değişken Değişken isimleri muhakkak bir harf ile başlamalıdır. Yani rakamla başlamazlar ancak rakamla devam edebilirler. Adı sayi1 olan bir değişken olabilir ama adı 1sayi olan değişken olamaz. ENF-102 Jeoloji 2010 76/88 ENF102 Jeoloji-2010 19

Değişken Değişken isimlerinin içerisinde rakam ya da harf olmayan nokta, virgül, artı, yıldız (.,+*vs.)gibisimgelerbulunamaz. Eğer değişken ismi iki kelimeden oluşuyorsa, araya boşluk konmaz. Bu durumda birleşik yazılır yadaaltçizgi (_) işareti konulabilir. Yani vize notu yerine vizenotu ya da vize_notu kullanılmalıdır. Değişken Değişkenler tanımlandığında ya da değer aldıklarında onlara RAM bellekte bir hücre ayrılır. Değişkenlerin tuttukları değerler bu hücre içerisine yazılırlar. ENF-102 Jeoloji 2010 77/88 ENF-102 Jeoloji 2010 78/88 Değişken Değişkenler değer aldıklarında bu değerler ayrılan bellek hücrelerine yerleştirilirler. Eğer bir değer aldıktan sonra program içerisinde ikinci bir değer almışlarsa; eski değer silinir, yerine yeni değer yerleşir. Aynı hücre içerisinde iki farklı değer tutulamaz. Değişken Değişkenlerin bellekte ayrılmış hücrelerine değer yazma işine aktarmak anlamında değer atamak (assign) denilir. Değişkenlere değer atama simgesi olarak eşittir ( = ) kullanılır. Bu simgenin anlamı eşitliğin sağındaki değeri, solundaki değişkenin içerisine ata ya da aktar anlamına gelmektedir. ENF-102 Jeoloji 2010 79/88 ENF-102 Jeoloji 2010 80/88 ENF102 Jeoloji-2010 20

Değişken c = 500 emri, c değişkenine 500 değerini ata" şeklinde düşünülür. Eşitliğin sağ tarafındaki 500 değeri soldaki c değişkeninin içerisine atanır. Bu emirden sonra c değişkeninin değeri 500 olmuştur. Sabitler ENF-102 Jeoloji 2010 81/88 Sabitler Program içerisinde değeri değişmeyen yapılardır. Örnek olarak matematikteki Pi sayısı, kimyadaki Avagadro sayısı verilebilir. Bu değerler her zaman aynıdır. Algoritmanın başında tanımlanırlar ve bundan sonrada değerleri değişmez. ENF-102 Jeoloji 2010 83/88 Sabitler Sayısal sabitler olduğugibiyazılırlar. Örneğin, girdi olarak verilen yarıçapa göre daire alanını hesaplayan bir algoritmada, alan aşağıdaki gibi hesaplanabilir. alan= 3,14 X r X r ENF-102 Jeoloji 2010 84/88 ENF102 Jeoloji-2010 21

Sabitler Kullanılan bu formülde pi sayısı 3.14 olarak alınmıştır. Bunun anlamı, algoritmaya girilen yarıçap değerleri çok farklı olabilir ama kullanılan pi sayısı hep aynı kalacaktır. Yani sabit kalacaktır. Fakat, sabit de olsa önceden tanımlanarak, sabit değerinin verilmesi iyi bir programcılık alışkanlığı olacaktır. Sabitler Sayısal olmayan, yani alfasayısal sabitler kullanılırken ( ) tırnak işaretleri arasına alınır. Örneğin ekrana programcının adı yazılacaksa YAZ ali denemez. ENF-102 Jeoloji 2010 85/88 ENF-102 Jeoloji 2010 86/88 Sabitler Buradaki ali kelimesini bilgisayarımız bir değişken ismi olarak algılayacak ve bellek üzerinde adı ali olan bir değişken olup olmadığını araştıracaktır. Varsa değerini yazmaya çalışacaktır. Amaç Ali adını ekrana yazdırmaksa, verilecek emri şöyle olmalıdır: YAZ "Ali" Kaynakça: Yorulmaz, M., Yorulmaz, S. (2005).Programlamayı C ile öğreniyorum (2. Baskı).Palme Yayınları, Ankara Aslan, K. (2002). A'dan Z'ye C Kılavuzu. Pusula Yayıncılık, İstanbul. Ergin, N., C Kaynak Kitabı, C ve Sistem Programcıları Derneği http://computer.howstuffworks.com/c.htm ENF-102 Jeoloji 2010 87/88 ENF-102 Jeoloji 2010 88/88 ENF102 Jeoloji-2010 22