Hafta 1 Programlamaya Giriş

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

Hafta 1 Programlamaya Giriş

Yrd. Doç. Dr. Caner ÖZCAN

Program Nedir?(1) Programlamaya Giriş

Hafta 4 Döngü Yapıları

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

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

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

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

Yrd. Doç. Dr. Caner ÖZCAN

Bilgisayarda Programlama. Temel Kavramlar

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Yrd. Doç. Dr. Caner ÖZCAN

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Yrd. Doç. Dr. Caner ÖZCAN

Dr. Fatih AY Tel: fatihay@fatihay.net

Yrd. Doç. Dr. Caner ÖZCAN

Algoritma ve Programlamaya Giriş

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Hafta 12 Karakter Tutan Diziler

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.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Algoritmalar ve Programlama. Algoritma

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

Hafta 13 Fonksiyonlar

PROGRAMLAMA TEMELLERİ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

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

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

Hafta 5 Algoritma Örnekleri ve Analizi

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

BİLGİSAYAR ORGANİZASYONU

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

Bilgisayar Programlama. 1.Hafta

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

İşletim Sistemlerine Giriş

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

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Ünite-2 Bilgisayar Organizasyonu.

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

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

ALGORİTMA VE PROGRAMLAMA I

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

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

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

Temel Bilgisayar Programlama

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

Temel Bilgisayar Bilgisi

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

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

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

Bilgi ve iletişim teknolojileri

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

BİLGİSAYAR PROGRAMLAMA MATLAB

DONANIM VE YAZILIM. Bilişim Teknolojileri ve Yazılım Dersi

Temel Bilgisayar Kullanımı ve Internet. Ünite 2: Bilgisayar Organizasyonu. Giriş

PORTLAR Bilgisayar: VERİ:

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

Bilgisayarların Gelişimi

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

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

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

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

BİLGİSAYAR KULLANMA KURSU

İÇ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

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI

Donanımlar Hafta 1 Donanım


BİLGİ TEKNOLOJİLERİ SMO103

Algoritma ve Akış Diyagramları

C Dersleri Bölüm 3 : Program akışı

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI. 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar

GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BM-404 BİLGİ GÜVENLİĞİ LABORATUVARI UYGULAMA FÖYÜ

İşletim Sistemleri (Operating Systems)

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

4. Bölüm Programlamaya Giriş

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

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

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.

Bilgisayar Sistemlerine Genel Bakış

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

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

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

Ünite 01 Algoritma Geliştirme

BİL-142 Bilgisayar Programlama II

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

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

Bilişim Teknolojilerine Giriş

BELLEKLER. Kelime anlamı olarak RAM Random Access Memory yani Rastgele Erişilebilir Bellek cümlesinin kısaltılması ile oluşmuş bir tanımdır.

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

BİLGİSAYAR DONANIMI. Feridun Karakoç Dumlupınar Üniversitesi Makine Mühendisliği Bölümü 2015 Kütahya

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

Transkript:

BLM111 Programlama Dilleri I Hafta 1 Programlamaya Giriş Yrd. Doç. Dr. Caner ÖZCAN

Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 15:00-17:00 Perşembe 13:00-15:00 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar: Doç. Dr. Fahri Vatansever, Algoritma Geliştirme ve Programlamaya Giriş, Seçkin Yayıncılık, 12. Baskı, 2015 Brookshear J. G., Computer Science: An Overview, Pearson International Edition, 2007 2

Derse Giriş Bol bol pratik yapın! Notlandırma Vize Sınavı: %40 Final Sınavı: %60 Not için değil, öğrenmek için çalışın. Not nasılsa kazanılır. 3

İçerik 1. Algoritma Kavramı Algoritmalarda Kullanılan Operatörler Algoritmalarda Kullanılan Terimler Algoritma Hazırlama 4

Dönem Boyunca Görülecek Konular Hafta 1- Temel Kavramlar ve Algoritma Hafta 2- Giriş/Çıkış İşlemleri, Değişken Kavramı ve Basit Matematiksel İşlemler Hafta 3- Kontrol Yapıları (if / if-else / switch-case) Hafta 4- Döngü Yapıları (while / do-while / for) Hafta 5- Algoritma Örnekleri ve Analizi-1 Hafta 6- Algoritma Örnekleri ve Analizi-2 Hafta 7- C Programlama Diline Giriş ve C Derleyicisi Hafta 8- C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri (printf, scanf) Hafta 9- C Dilinde Kontrol ve Döngü Yapıları Hafta 10-Diziler Hafta 11-Çok Boyutlu Diziler Hafta 12-Karakter Tutan Diziler Hafta 13- Fonksiyonlar-1 Hafta 14- Fonksiyonlar-2 5

Bilgisayar Nedir? Hesaplama yapabilme ve mantıksal kararlar verebilme yeteneğine sahip cihazlardır. Saniyede trilyonlarca toplama işlemi yapabilme. Bilgisayar programları komut kümeleridir. Bilgisayarlar donanım olarak isimlendirilen çeşitli aygıtlar ile birlikte çalışırlar (klavye, ekran, fare, diskler, hafıza, DVD, CD-ROM, bilgi işlemi birimi vs.) Bilgisayar programları Yazılım olarak isimlendirilir. 6

Bilgisayar Nedir? En eski hesaplama aracı "Abaküs" 7

Bilgisayar Nedir? Kronolojik olarak bilgisayarların gelişimi: M.Ö. 500 Abaküs 1642 Pascalın Mekanik Toplama Makinesi 1827 Babbage'in çıkarma makinesi 1941 İkili>İkili Mekanik Hesaplayıcı (Zuse) 1944 Ondalık Elektromekanik Hesaplayıcı (Aiken) 1945-54 İlk Kuşak Vakum Tüpler ve ışınlar 1955-64 İkinci Kuşak Tranzistörler ve Manyetik Bellekler 1965-71 Üçüncü Kuşak Tümleşik Devreler 1971-90 Dördüncü Kuşak VLSI Devreler 1982 IBM Pc & MS-DOS 1984 MAC 1990 lar Paralel İşlemciler 8

Bilgisayar Organizasyonu Merkezi İşlem Birimi Aritmetik/M antık Birimi Kaydedici Birimler Ana Hafıza BUS Kontrol Birimi... 9

Bilgisayar Organizasyonu CPU (Merkezi İşlem Birimi- diğer ismi İşlemci). İlk CPUlar boyut olarak büyük birimlerdi. (belki birkaç kattan oluşan elektronik devreler) Günümüz bilgisayarlarındaki CPUlar 2x2 inç kare şeklinde paketlenmiş bir yapıdadır. CPUlar anakart üzerinde yerleştirilir. İşlemciler, küçük boyutlarından dolayı mikroşlemciler olarak ta adlandırılır. 10

Bilgisayar Organizasyonu CPU üç bölümden oluşur: Artimetik/Mantık Birimi, Kontrol birimi ve Kaydedici birimi. Aritmetik/ mantık birimi veri üzerinde toplama ve çıkarma gibi işlemler gerçekleştiren devreleri barındırır. Kontrol birimi bilgisayarın aktivitelerini koordine etmek için gerekli devreleri barındırır. Kaydedici birimi CPU içinde geçici olarak verileri saklayan ve kaydedici (register) olarak isimlendirilen veri depolama hücrelerini (ana hafıza hücrelerine benzer) barındırır. 11

Bilgisayar Organizasyonu Hafıza: Bilgilerin kalıcı ya da geçici olarak saklandığı ortamlardır. RAM (Random Access Memory) Bellek: Rastgele erişilebilir bellektir. Bu belleğe kalıcı olmayan bellek de denir. Elektrik kesildiğinde ya da bilgisayar kapatıldığında ram bellekteki veriler silinir. Ram bellek Ana hafıza olarak da isimlendirilir ROM (Read Only Memory) Bellek: Sadece okunabilir bellektir. Bu bellek üzerindeki bilgiler üretici firma tarafından yazılır. Kullanıcı tarafından üzerinde bulunan bilgiler değiştirilemez. 12

Bilgisayar Organizasyonu Genel amaçlı kaydediciler CPU tarafından üzerinde işlem yapılan verilerin geçici olarak tutulduğu yerlerdir. Bu kaydediciler aritmetik/mantık biriminin girişlerini tutar ve bu birim tarafından oluşturulan sonuçların saklanması için yer ağlar. Hafızadaki veri önce kontrol birimi tarafından genel amaçlı kaydedicilere aktarılır ve aritmetik/mantık birimine hangi kaydedicilerin sonuçları alacağı bildirilir. Ana hafızadan CPU ya veri transferi için bu iki birim arasında BUS adı verilen bir grup hat oluşturulur. Bunun için CPU, istenen verilerin tutulduğu hafızadaki adresleri bir sinyal ile hafıza birimine yollar. İşlenen verinin CPU tarafından tekrar hafızaya gönderilmesi için hafıza birimine hedef hafıza hücresinin adresini bir sinyal ile yollar ve verinin o adrese yazılmasını sağlar. 13

Veri Saklama Birimleri Bilgisayar sistemlerindeki bütün bilgiler ikilik sistemde 1 ve 0 ile temsil edilen elektrik sinyalleri ile saklanır. İkilik sistemdeki her bir basamağa bit denir. Bit nicelik ifade edebilmek için yeterli bir birim değildir. Temel hafıza birimi olarak byte kullanılır. 1 bayt = 8 bit Bilgisayar sisteminde her bir karakter 8 bit ten oluşur. Örneğin: A karakteri bilgisayar içinde 0100001 sayısıyla ifade edilir. İşte bu sayının her basamağına 1 Bit denir. 14

Veri Saklama Birimleri Kapasite ölçüm birimleri küçükten büyüğe Bit, Byte (Bayt),KB(Kilo Byte), MB (Mega Byte), GB (Giga Byte), TB (Tera Byte). 1 Byte=8 Bit 1 KB (Kilo Bayt)=1024 Byte 1 MB (Mega Bayt)=1024 KB 1 GB (Giga Bayt)=1024 MB 1 TB (Tera Bayt)=1024 GB dır. 15

Programlama Dili Bilgisayarın fonksiyonel bir beyni olmadığı için insanlar komutlar yazmalıdır. Bir Problemin Algoritmik çözümünün Bilgisayara anlatılmasını sağlayan, son derece sıkı-sıkıya kuralları bulunan kurallar dizisidir. Bu özel dile programlama dili denir. 16

Programlama Dili [kaynak]http://tr.wikipedia.org/wiki/programlama_dili

Programlama Dili [1]http://rigaux.org/language-study/diagram.html

Programlama Nedir? Kullanım amaçları ve yerlerine göre birçok değişik program türü vardır: Sistem programları: Her program, bir işletim sistemi üzerinde çalışır. İşletim sistemi, diğer programların çalışması için gerekli olan kaynakları ve ortamı sağlar. Sürücüler: İşletim sistemi ile donanım aygıtları arasında iletişim sağlayan programlardır. Klavye ile yazılan yazıların algılanması için, klavyenin sürücü programı kullanılır. Uygulamalar: İşletim sistemi üzerinde çalışan, kullanıcıların ihtiyaç duyduğu işlevleri sağlayan programlardır. 19

Programcı Kimdir? Belirli işlevlere sahip programlar geliştiren kişilere programcı denir. Programcı, kullanılan teknolojiyi, platformu iyi tanıması gerekir. Programcılar 3 grupta incelenir: Mimar: Programların yazılması için gerekli teknolojileri belirler. Geliştirici: Programı yazan kişidir. Analist: Programın geliştirilmesi aşamasında, hatanın kaynaklarını bulan ve geliştiricilere raporlayan programcıdır. 20

Programlama Dillerinin Sınıflandırılması Programlama dilleri sıklıkla seviyelerine göre sınıflandırılır. Seviye, bir programlama dilinin insan algılamasına olan yakınlığının bir ö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. Dilin seviyesi yükseldikçe programcının işi de kolaylaşır. Çok yüksek seviyeli dillerde bir işin nasıl yapılacağına ilişkin değil, ne yapılacağına ilişkin komutlar bulunur. Seviyenin yükselmesi programcının işini kolaylaştırırken genel olarak verimliliği ve esnekliği azaltır. 21

Programlama Dillerinin Sınıflandırılması 22

Programlama Dillerinin Sınıflandırılması Makine Dilleri Bilgisayarın kendi doğal dili Sayı dizilerinden oluşur (çoğunlukla 1 ve 0 a indirgenmiştir.) Makine bağımlıdır Alçak Seviyeli Diller (Assembly Dili) Temel komutları temsil etmek için İngilizce benzeri kısaltmalar. Assembler, Assembly dilini makine diline çevirmek için kullanılır. 23

Programlama Dillerinin Sınıflandırılması Her bilgisayar yalnızca kendi makine dilini doğrudan anlayabilir. Makine dili bir bilgisayarın kendi doğal dilidir ve donanım içerisinde tanımlanmıştır. Makine dilleri genellikle bilgisayara yapacağı temel komutları bildiren sayı dizilerinden oluşurlar (çoğunluklar 1 ler ve 0 lar dan oluşur). Makine dilleri makine bağımlıdır. Her bilgisayarın kendine hastır. Bir bilgisayar sistemi için kullanılan makine kodları başka bir sistemde kullanılamayabilir. 24

Programlama Dillerinin Sınıflandırılması Makine dili programlaması çok yavaş ve hata yapmaya çok elverişlidir. Bilgisayarların doğrudan anlayabildiği sayı dizileri ile uğraşmak yerine programcılar temel işlemleri temsil etmek için İngilizce kısaltmalar kullanmaya başladılar. Bu kısaltmalar assembly dilinin temelini oluşturmuştur. Assembler lar assembly dilinde yazılan bir programı makine diline çevirmek için tasarlanmışlardır. 25

Programlama Dillerinin Sınıflandırılması Orta seviyeli diller hem kullanıcıya hem de bilgisayara yakın olan yapılar içerirler. Orta seviyeli diller, yüksek seviyeli dillerin kolaylıkları ile aşağı seviyeli dillerin esnekliğini ve doğallığını kullanırlar. C tipik bir orta seviyeli dildir. Orta seviyeli diller özellikle sistem programlarının yazımında kullanılırlar. 26

Programlama Dillerinin Sınıflandırılması Yüksek seviyeli programlama dilleri daha algoritmik dillerdir. Bu dillerde önce işlerin nasıl yapılacağına ilişkin algoritmalar tasarlanır. Daha sonra bu algoritmalar program koduna çevrilir. Basic, Pascal, Fortran gibi diller bu grup dillerdir. 27

Programlama Dillerinin Sınıflandırılması Çok yüksek seviyeli diller, program kodunun kısmen ya da tamamen görsel biçimde çeşitli araçlar tarafından üretildiği dillerdir. Windows sistemlerinde.net çatısı altında C# ve Visual Basic gibi diller yoğun olarak kullanılmaktadır. Çok yüksek seviyeli dillere deklaratif diller de denir. Veritabanlarının yönetimlerinde kullandığımız dilleri bu gruba sokabiliriz. 28

Derleyici Nedir? Derleyici (Compiler), bir bilgisayar dilinde yazılmış olan kodu, bilgisayarın (yada elektronik cihazın) donanımına uygun makine diline çeviren bilgisayar programıdır. Derleyici öncelikle yazılan program kodunun doğru yazılıp yazılmadığını kontrol eder, eğer hatalar varsa bunları programcıya bildirir. Eğer kod doğru ise derleme yapılan sisteme uygun olan 0 ve 1 lerden oluşan makine kodunu üretir (EXE dosyası). 29

Yorumlayıcı Nedir? Yorumlayıcı (Interpreter), bir programın kaynak kodunu derlemek yerine doğrudan satır satır yürüten bir programdır. BASIC gibi bazı diller hem derleyici hem yorumlayıcı programlar ile kullanılabilir. JAVA dili, yorumlayıcı kullanması nedeniyle taşınabilir (platform bağımsız) bir yapıya sahip olmuştur. 30

Derleyiciler ile Yorumlayıcılar Arasındaki Farklar Derleyiciler, basitçe bir kaynak kodu hedef koda çevirdikten sonra çalıştırır ve dolayısıyla koddaki hataları yakalama işlemini ve kodun iyileştirilmesini daha kod çalıştırmadan yapar. Yorumlayıcılar ise kodu satır satır veya bloklar halinde çalıştırıp sırası gelmeyen satırları hiç çalıştırmaz ve bu satırlardaki hataları hiçbir zaman göremez. Kodun bütününe ait iyileştirmeleri yapamaz.

Programlama Dillerinin Sınıflandırılması Yüksek seviyeli dillerde yazılan programları makine diline çeviren çevirici programlara Derleyici (Compiler) denir. Yüksek seviyeli diller programcılara günlük İngilizce diline benzer ifadeler ve genel kullanılan matematiksel notasyonları kullanmasına izin verir. Yorumlayıcı programlar yüksek seviyeli diller ile yazılan programların makine diline çevirmeden çalıştırılabilmelerini sağlar. Derlenen programlar doğrudan yorumlananlara nazaran daha hızlı çalışmalarına rağmen yorumlayıcılar program geliştiriciler arasında daha popülerdir. 32

Problem ve Problem Çözümü Bir işlemin, otomasyonun yada bilimsel hesaplamanın bilgisayarla çözülmesi fikrinin ortaya çıkmasına problem denir. Problemi Çözebilmek için öncelikle sorunun çok net olarak programcı tarafından anlaşılmış olması gerekir. Tüm ihtiyaçlar ve istekler belirlenmelidir. Bir sorunun tabii ki birden fazla çözümü olabilir. Bu durumda bilgisayar ile en uygun çözüm seçilmelidir. 33

Algoritma Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı olmamalıdır. Belirli bir sayıda adım sonunda algoritma sonlanmalıdır. Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır. Algoritmalar pseudo kod(sahte kod) veya akış diyagramları ile ifade edilirler. 34

Pseudo Kod Pseudo code algoritma geliştirmeye yardımcı olmak için kullanılan yapay ve resmi olmayan bir dildir. Pseudo code günlük konuşma dili gibidir; Kolay Kullanıcı dostu Gerçek olmayan bir programlama dili. Bilgisayarlar tarafından çalıştırılamaz. Bir programı yazmaya başlamadan önce onun hakıında düşünmenize yardımcı olur. Sadece eylem ifadelerinden oluşur. Tanımlamalar çalıştırılabilir ifadeler değildir ve herhangi bir eyleme sebep olmaz. Bu sebeple pseudocode içinde yer almazlar. 35

Pseudo Kod 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 kullanılır. 36

Akış Diyagramı Çeşitli anlamlar ifade eden ve birbirine oklarla bağlanan şekillerle görsel olarak algoritmanın adımlarını ifade etmektir. Akış şemaları Dikdörtgen, Baklava, Elips, Daire gibi özel amaçlı bazı sembollerin çizilmesi ile oluşturulurlar. Eylem sembolü Başla / Bitir Bağlayı cı Karar Sembo lü 37

Kontrol Yapıları Araştırmacılar tüm programların sadece üç kontrol yapısı ile yazılabileceğini gösterdi. Bu yapılar, sıra yapısı, seçim yapısı ve tekrarlama yapısı. Kontrol Yapıları Sıra yapısı Seçim yapısı Tekrar yapısı 38

Kontrol Yapıları Sıra Yapısı (Sequence) Bir programdaki ifadeler bir biri ardına yazıldıkları sırada çalıştırılırlar. Aksi belirtilmediği sürece C ifadeleri bir biri ardına yazıldıkları sıra ile çalıştırılırlar. Sınav notunu toplama ekle Sayacı 1 artır toplam = toplam + not sayac = sayac + 1 39

Kontrol Yapıları (Sıra Yapısı) Örneğin; eğer bir uçak bir hedefe füze göndermek isterseniz adımlarınız şu şekilde olabilir. Adım sırası takip edilmez ise işlem başarısız olacaktır. 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 40

Kontrol Yapıları (Sıra Yapısı) 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 41

Kontrol Yapıları C dili üç tip seçim yapısı sunar. if seçim ifadesi ya bir şartın sağlanması durumunda (true) bir eylem gerçekleştirir ya da şartın sağlanmaması durumunda (false) eylemi pas geçer. if else seçim ifadesi bir şartın sağlanması durumunda bir eylem gerçekleştirir, sağlanmaması durumunda ise başka bir eylem gerçekleştirir. switch seçim ifadesi bir değişkenin değerine göre bir çok farklı eylemden birini gerçekleştirir. if seçim ifadesi tekli seçim olarak bilinir çünkü tek bir eylemi ya seçer ya da görmezden gelir. if else ifadesi çift seçim ifadesi olarak bilinir çünkü iki farklı eylem arasından birini seçer. switch ifadesi ise çoklu seçim ifadesi olarak bilinir çünkü bir çok farklı eylem arasından seçim yapar. 42

Algoritma Temelde algoritmamı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. 43

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

Kaynaklar Doç. Dr. Fahri Vatansever, Algoritma Geliştirme ve Programlamaya Giriş, Seçkin Yayıncılık, 12. Baskı, 2015 J. G. Brookshear, Computer Science: An Overview 10th Ed., Addison Wisley, 2009 Kaan Aslan, A dan Z ye C Klavuzu 8. Basım, Pusula Yayıncılık, 2002 Paul J. Deitel, C How to Program, Harvey Deitel. 45