ALGORİTMA VE PROGRAMLAMA (Bölüm 1) Prof. Dr. Hakan Ündil - Elektronik Teknolojisi Güz (VİZEDE SORUMLU OLUNAN KONULARINI KAPSAR)

Benzer belgeler
ALGORİTMA VE PROGRAMLAMA (Bölüm 1) Prof. Dr. Hakan Ündil - Elektronik Teknolojisi Güz Bölüm 1-2

Algoritmalar ve Programlama. Algoritma

ALGORİTMA VE PROGRAMLAMA (Bölüm 3)

ALGORİTMA VE PROGRAMLAMA (Bölüm 1) Prof. Dr. Hakan Ündil - Elektronik Teknolojisi Güz (Bölüm 1 2)

2. BÖLÜM. Problem Çözme ve Algoritmalar

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ. Yrd.Doç.Dr. Emel ARSLAN

ALGORİTMA VE PROGRAMLAMA (Bölüm 1)

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

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

Algoritma ve Programlamaya Giriş

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

BÖLÜM 2: ALGORİTMALAR

Bilgisayar II Dersi. Bölüm-2

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

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

ALGORİTMA VE PROGRAMLAMA (Bölüm 3)

ALGORĠTMA VE PROGRAMLAMA (Bölüm 2-3)

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

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

Genel Programlama I

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

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

ALGORİTMA VE PROGRAMLAMA (Bölüm 3)

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

Bilgisayar Programlama. Giriş

Algoritma ve Programlama: Karar Yapıları ve Döngüler

C Programlama Dilininin Basit Yapıları

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

Algoritma ve Akış Diyagramları

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

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

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


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

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

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

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

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

Algoritma ve Akış Diyagramları

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

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Akış Kontrol Mekanizmaları

PROGRAMLAMAYA GİRİŞ DERS 2

BİLGİSAYAR PROGRAMLAMA MATLAB

Temel Giriş/Çıkış Fonksiyonları

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

Hafta 4 Döngü Yapıları

Basit Algoritma Akış Diagramı Örnekleri

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

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

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA KAVRAMI. Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir.

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

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

PROGRAMLAMA DİLLERİ I

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

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

4- ALGORİTMA (ALGORITHM)

C++ Operatörler (Operators)

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

ÖRNEK 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır:

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

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Ödevi Soru

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

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

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

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

DEĞERLENDĐRME ÖDEV % 20 ARASINAV % 30 FĐNAL SINAVI % 50

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

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

Fonksiyonlar (Altprogram)

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

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

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

ALGORİTMA VE PROGRAMLAMA I

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

Bölüm 2 - C ile Programlamaya Giriş

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

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

Algoritmanın Hazırlanması

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

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

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

GEO103 BİLGİSAYAR PROGRAMLAMA

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

BİLGİSAYAR PROGRAMLAMA DERSİ

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

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

Transkript:

ALGORİTMA VE PROGRAMLAMA (Bölüm 1) Prof. Dr. Hakan Ündil - Elektronik Teknolojisi - 2015-2016 Güz (VİZEDE SORUMLU OLUNAN KONULARINI KAPSAR) 1

PROBLEM ÇÖZME ve ALGORİTMALAR Bir problemi çözmek için yapılacak işlemler en genel şekilde iki adımda incelenebilir: 1. Algoritma (Problemi Çözme Yolu) 2. Kodlama (Gerçekleştirme) 2

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) 1. Algoritma Problemin çözümünü tanımlayan adımların sırasıyla elde edilmesidir. 3

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Her Algoritma Aşağıdaki Kriterleri Sağlamalıdır: 1. Girdi : Dışarıdan Sıfır veya farklı bir değer verilmeli. 2. Çıktı : En azından bir değer üretilmeli. 3. Açıklık : Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli. 4. Sonluluk : Her türlü ihtimal için algoritma sonlu adımda bitmeli. 5. Etkinlik : Her komut, kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır. 4

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Algoritma yapma Sırasında Dikkat Edilecek Hususlar: Doğruluğu kesin olarak ispatlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün. Anlaşılması en kolay olan (basit) şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyin. Önce olaya bakışınız çok genel, sonra hazırlayacağınız ayrıntılı liste (detaylı algoritma) ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun. 5

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) 2. Kodlama Bir programlama diliyle bu Algoritma nın programa (yazılıma) dönüştürülmesidir. 6

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Kodlama (Programlama) Dili Seçerken; Dil yapılacak işe uygun özelliklere sahip mi? Diğer dillerle uyumluluğu ve bu dillere dönüştürme imkanları nedir? Öğrenmesinin kolay/zor olup olmadığı, örnekler var mı? Piyasada, bu dili kullanan, yeteri kadar iş gücü(kişi) olup olmadığı gibi hususlara dikkat edilmelidir. 7

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Çözme Aşamaları Problem Çözme Aşamaları: (Daha Ayrıntılı) 1. Sistem İhtiyaçları: Sistem ihtiyaçlarına göre problemin tam olarak ne olduğunun anlaşılmasıdır. Problemin çözümünden neler beklendiği bilinmelidir. Çözümün girdi ve çıktılarının neler olacağı kesin olarak belirlenmelidir. 8

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Çözme Aşamaları 2. Analiz: Sistem ihtiyaçları belirlendikten sonra bunlar temel parçalara ayrılarak bu parçalar ayrı ayrı değerlendirilir. Bu parçalar arasındaki ilişkiler tanımlanır. Bu suretle sonuca gitmeye çalışılır. 9

PROBLEM ÇÖZME ve ALGORİTMALAR(Devam) Çözme Aşamaları 3. Tasarım (Algoritma): Kullanılacak çözüm adımlarını gösteren Algoritma adı verilen bir liste yapılır Böyle bir algoritma tasarlanırken ilk önce ana (genel) adımlar çıkarılır. Daha sonra her adım için daha ayrıntılı bir algoritmaya geçilir. 10

PROBLEM ÇÖZME ve ALGORİTMALAR(Devam) Çözme Aşamaları 4. Kodlama (Programlama): Geliştirilen algoritma bir programlama diline çevrilir. Bu dilin, programın yazımını aşırı zorlaştırmayacak ve karmaşıklaştırmayacak bir dil olması tercih edilmelidir. Programı yazacak olanın bilgisi de dikkate alınır. 11

PROBLEM ÇÖZME ve ALGORİTMALAR(Devam) Çözme Aşamaları 5. Sistem Testi: Program değişik girdiler ile çalıştırılır Programın ürettiği sonuçlar (çıktılar) kontrol edilerek test işlemi gerçekleştirilir. Sonuçlar beklendiği gibi ise programın doğru çalıştığı ispatlanmış olunur Değilse doğru çalışmayan kısımları tespit edilerek düzeltilir. 12

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Çözme Aşamaları 6. Bakım: Programın güncel şartlara göre yeniden düzenlenmesini içeren bir konudur. Oluşan hataların giderilmesi Yeni eklemeler yapılması Ya da programın teknolojisinin yenilenmesi gibi işlemlerdir. 13

PROBLEM ÇÖZME ve ALGORİTMALAR(Devam) Çözme Aşamaları (Adımlar) Herhangi bir adımda sorun yaşanırsa (gerektiğinde) bir adım geri dönülür 14

Problem Çözmede Algoritma ve Programlama Yukarıda açıklanan Problem Çözme Aşamalarından ikisi dersimizin konusunu ile doğrudan ilgilidir : Algoritma (Tasarım) Programlama (Kodlama) Bu başlıkları daha ayrıntılı olarak inceleyelim 15

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Algoritma Türleri Algoritma Türleri: İki farklı şekilde ifade edilebilirler: 1. Pseudo (Sözde) Kod 2. Akış Diyagramı (Akış Şeması) 16

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo (Sözde) Kod 1. Pseudo (Sözde) Kod: Bir algoritmanın; Hem programlama dili kuralları Hem de konuşma dili kullanılarak ortaya koyulması/tanımlanmasıdır. Not: İyi bir biçimde yazılmış, Psedo Kod dan, programlama diline kolaylıkla geçilebilir. 17

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) Pseudo Kod Doğrudan konuşma dilinde Programlama mantığı altında Eğer, iken gibi şart kelimeleri ve Büyük, Eşit, Küçük ise vb. ifadeler ile yazılır. Not: Aynı Problem için çok farklı Psedo Kod Yazılabilir. 18

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) Örnek 1: Verilen iki sayının toplamının bulunarak bu toplamın yazdırılması algoritmasını psedo (sözde) kod ile yazınız. 1. Başla 2. Birinci Sayıyı Oku 3. İkinci Sayıyı Oku 4. İki Sayıyı Topla 5. Toplamı yaz 6. Dur 19

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) Örnek 2: Verilen bir sıcaklık derecesine göre suyun durumunu belirten bir algoritmayı psedo (sözde) kod ile yazınız. Not 1: Programın, sıcaklığa göre Su, Buz, Buhar şeklinde Suyun durumunu göstermesi istenmektedir. Not 2: Önce programın ne yaptığına dâir açıklama mesajı sonra da sıcaklık değerinin girilmesi için uyarı mesajı yazılsın. 20

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) 1. Başla 2. Programın görevini açıklama mesajı yaz 3. Kullanıcının sıcaklığı girmesi için bir uyarı mesajı yaz 4. Girilen Sıcaklığı Oku 5. Eğer Sıcaklık sıfırdan Küçük ise Durum= Buz 6. Eğer Sıcaklık 100 e Eşit yada Büyük ise Durum= Buhar 7. Değilse Durum = Su 8. Durum sonucunu Yaz. 9. Son 21

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) Programın Çalışması: (140 derece örneği için) Bu Program, sıcaklığa göre Su, Buz, Buhar şeklinde suyun durumunu gösterir. (Açıklama mesajı) Lütfen derece cinsinden sıcaklığı giriniz: 140 BUHAR (Uyarı mesajı) (Çıktı) (Girdi) 22

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) Örnek 3: Bir Pseudo (sözde) Kod yazarak bir öğrencinin dönem sonu not ortalamasını hesaplayıp öğrencinin dersten geçip geçmeyeceğini tespit edin. Not : Not ortalaması eşit ağırlıklı 4 nottan oluşsun ve Geçme notu 50 olsun. 23

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) 1. Başla 2. Öğrencinin dersten aldığı 4 notu Girin uyarı mesajını yaz. 3. Ortalamayı hesaplamak üzere notları topla ve 4 e böl. 4. Eğer Ortalama 50 nin altında ise Başarısız yaz. 5. Değilse (Aksi halde) Başarılı yaz. 6. Son 24

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Psedo Kod (Devam) Aynı Psedo Kodu Programlama Diline daha yakın tarzda farklı şekilde tekrar yazalım: 1. Başla 2. M1,M2,M3,M4 Öğrencinin Notlarını Girin 3. ORTALAMA = (M1+M2+M3+M4)/4 4. Eğer (ORTALAMA < 50) ise Başarısız yaz 5. Değilse (Aksi halde) Başarılı yaz 6. Son 25

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı 2. Akış Diyagramı (Akış Şeması): Algoritmanın görsel/şekilsel olarak ortaya koyulmasıdır. Yapılması gerekenleri geometrik şekillerden oluşan sembollerle gösterir. 26

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı (Devam) Akış Diyagramı kullanılması ile program Görsellik kazanacağından Programın takip edilmesi daha da kolaylaşır. 27

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı (Devam) SEMBOLLER (Sık Kullanılanlar) : Terminal Sembolü: Akış Diyagramında Başlangıç ya da Bitiş belirtir. Giriş İşlemi Sembolü: Bir Giriş işlemini temsil eder. İşlem Sembolü: Algoritmada bir işlemi temsil eder Ön Tanımlı İşlem Sembolü: Daha önce tanımlı bir işlemi temsil eder Karar Sembolü: İki değerin mukayesesi dahil karar işlemini temsil eder Çıkış İşlemi Sembolü: Bir Çıkış işlemini temsil eder. 28

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı (Devam) Örnek 4: Girilen bir uzunluğa ait inch (inç) değerini santimetreye çeviren hem bir Psedo kod yazıp hem de bir Akış Diyagramı çiziniz. Not: 1 inch = 2.54 cm dir. 29

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı (Devam) Psedo Kod Akış Diyagramı 1. Başla 2. inch olarak uzunluğu (Linc) girin. 3. inch değerini 2,54 ile çarparak santimetreye çevir. 4. Uzunluğu santimetre olarak (Lcm) yaz. 5. Son 30

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı (Devam) Öğrencinin Ortalamasını hesaplayıp durumunu belirleyen Örnek 3 için; BAŞLA Psedo Kodu (yazılmıştı) 1. Başla 2. M1,M2,M3,M4 değerlerini girin 3. ORTALAMA = (M1+M2+M3+M4)/4 4. Eğer (ORTALAMA <50) ise BAŞARISIZ yaz 5. Değilse(aksi halde) BAŞARILI yaz M1,M2,M3,M4 ORTALAMA = (M1+M2+M3+M4)/4 H ORTALAMA <50 Mi? E 6. Son BAŞARILI BAŞARISIZ DUR 31

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı (Devam) 2 Örnek 5 : ax bx c 0 şeklindeki ikinci derece bir denklemin köklerini bulmak için bir psedo kod yazarak akış diyagramı çizin. Hatırlatma: [d: diskriminant ] olmak üzere d = sqrt ( b 2 4ac ) olmak üzere (sqrt: Karekök) Denklemin Kökleri; x1 = ( b + d)/2a x2 = ( b d)/2a ve şeklinde hesaplanır. 32

PROBLEM ÇÖZME ve ALGORİTMALAR (Devam) Akış Diyagramı (Devam) Akış Diyagramı Psedo Kod BAŞLA 1. Başla 2. a, b, c katsayılarını girin a, b, c b b 4 a c 3. d =sqrt ( ) hesapla 4. x1 = ( b + d)/(2 x a) hesapla 5. x2 = ( b d)/(2 x a) hesapla 6. x1 ve x2 yi yaz 7. Son d = sqrt (b.b 4.a.c) x1 = ( b + d) / (2.a) X2 = ( b d) / (2.a) x1, x2 Not: sqrt, Karekök anlamındadır. DUR 33

ALGORİTMA VE PROGRAMLAMA (Bölüm 2) 34

BİLGİSAYARDA İŞLEMLER Bilgisayar programları ile gerçekleştirilen işlemlere genel olarak bir göz atalım: Bu işlemler temelde 3 Grupta toplanabilir: 1. Matematiksel İşlemler 2. Karşılaştırma(Karar) İşlemleri 3. Mantıksal(Lojik) İşlemler 35

Bilgisayarda İşlemler (Devam) Matematiksel İşlemler (Devam) 1. Matematiksel İşlemler: Temel Aritmetik İşlemler; (Toplama,çıkarma,çarpma,bölme) Matematiksel Fonksiyonlar; (Üstel,logaritmik,trigonometrik,hiperbolik vb.) 36

İşlem Toplama a+b Çıkarma a-b Bilgisayarda İşlemler (Devam) Matematiksel İşlemler (Devam) Matematikte Bilgisayarda a+b a-b Çarpma a.b a*b Bölme a:b a/b Üs alma a b a^b 37

Bilgisayarda İşlemler (Devam) Matematiksel İşlemler (Devam) Öncelik Sırası İşlem Bilgisayar dili 1 Parantezler ((.)) 2 Üs alma a^b 3 Çarpma ve bölme a*b ve a/b 4 Toplama ve çıkarma a+b ve a-b NOT: Bilgisayar diline kodlanmış bir matematiksel ifadede, aynı önceliğe sahip işlemler mevcut ise bilgisayarın bu işlemleri gerçekleştirme sırası soldan sağa (baştan sona) doğrudur. Mesela ; Y=A*B/C işleminde; Önce A*B işlemi yapılacak, ardından bulunan sonuç C ye bölünecektir. 38

Bilgisayarda İşlemler (Devam) Matematiksel İşlemler (Devam) 39

Bilgisayarda İşlemler (Devam) (Karar) Karşılaştırma İşlemleri (Devam) 2. Karar (Karşılaştırma)İşlemleri Operator Karşılaştırma Operatörleri > Daha büyük < Daha küçük = Eşit Tanımı Daha büyük veya eşit Daha küçük veya eşit Eşit değil 40

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) A>B bir karşılaştırma (mukayese) ifadesidir. Test etmek istediğimiz bir şartı tanımlar Bu şartın sağlanıp sağlanmama durumuna göre farklı işlemler yapılabilir. A>B ise A nın değerini, aksi halde B değerini yazan psedo kod (parçası) yazalım: 41

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Bu durumda Psedo kod (parçası) şöyle olacaktır: Eğer A>B doğru ise A nın değerini yaz. Değil ise (Aksi halde) B nin değerini yaz. Not: A=B durumu, A<B ile birlikte Değil ise durumuna dahil olacaktır. 42

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Bu Karar yapısını Akış Diyagramı (parçası) olarak gösterelim; E A>B Mi? H A Değeri B Değeri 43

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Bir başka yapıya örnek olarak; Eğer A>B doğru ise İŞLEM i yaparak tekrar test eden A>B doğru değil ise (aksi halde) B nin değerini yazan bir karar yapısına ait bir Akış Diyagramı (parçasını) gösterelim. Not: Programın tamamına ait (Başla dan Son a kadar) A. Diyag. gösterilmezse «parçası» ifadesi kullanılır. 44

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Akış Diyagramı (Parçası) İŞLEM E A>B Mi? H B Değeri 45

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Bir başka yapıya örnek olarak; Eğer A>B doğru ise A değerini yazdıktan sonra Devam eden, A>B doğru değil ise (aksi halde) A değerini yazmadan Devam eden Karar yapısına ait bir Akış Diyagramı (Parçasını) çizelim. 46

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Akış Diyagramı (Parçası) A>B Mi? H E A Değeri 47

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Daha farklı Karar Yapıları bulunmakla birlikte bunları ilerdeki uygulamalarımıza bırakarak birkaç örneği (tam program için); Hem psedo hem de Akış Diyagramı olarak inceleyelim: 48

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Örnek 6 :Girilen iki değeri mukayese ettikten sonra büyük olanı yazan bir psedo (sözde) kod ve akış diyagramı veriniz. 1. Başla 2. DEGER1 ve DEGER2 yi Girin 3. Eğer (DEGER1 > DEGER2) ise MAX a DEGER1 i aktar 4. Değilse (Aksi halde) MAX a DEGER2 yi aktar 5. MAX değerini yaz 6. Son 49

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Akış Diyagramı BAŞLA DEGER1,DEGER2 E DEGER1>DEGER2 Mİ? H MAX = DEGER1 MAX = DEGER2 MAX DUR 50

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) Örnek 7 : 3 sayıyı (N1,N2,N3) okuyan ve en büyük değeri yazan bir program için bir psedo kod yazarak Akış Diyagramı çiziniz. 51

Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) 1. Başla 2. N1, N2, N3 değerlerini girin 3. Eğer (N1>N2) ise Eğer (N1>N3) ise MAX a N1 i aktar Değilse [N1>N2 ve N1>N3] demektir. MAX a N3 ü aktar [N1>N2 ve N3>N1] demektir. 4. Değilse; Eğer (N2>N3) ise MAX a N2 yi aktar [N2>N1 ve N2>N3] demektir.. Değilse MAX a N3 ü aktar 5. MAX değerini yaz. 6. Son [ N2>N1 ve N3>N2] demektir. 52

Akış Diyagramı: Bilgisayarda İşlemler (Devam) Karar (Karşılaştırma)İşlemleri (Devam) BAŞLA N1,N2,N3 E N1>N2 Mİ? H E H E H N1>N3 N2>N3 Mİ? Mİ? MAX = N1 MAX = N3 MAX = N2 MAX = N3 MAX DUR 53

Bilgisayarda İşlemler (Devam) Mantıksal İşlemler 3. Mantıksal İşlemler Mantıksal işlem Matematiksel sembol Komut/Operatör VE. AND VEYA + OR DEĞİL NOT NOT1: VE,VEYA,DEĞİL operatörleri hem matematiksel işlemlerde hem de karar ifadelerinde kullanılırlar. NOT2: Bütün şartların sağlatılması isteniyorsa şartlar arasına VE (AND) Herhangi birinin sağlatılması isteniyorsa şartlar arasına VEYA (OR) Şartı sağlamayanlar isteniyorsa DEĞİL (NOT) mantıksal operatörü kullanılır. 54

Örnek 8: Bir sınıfta Bilgisayar dersinden 65 in üzerinde not alıp, Türk Dili veya Yabancı Dil derslerinin herhangi birinden 65 in üzerinde not alanların isimleri yazan bir Psedo Kod un yazılması istensin. Açıklama: Bilgisayarda İşlemler (Devam) Mantıksal İşlemler (Devam) Burada 2 şart vardır: Bilgisayar dersinden 65 in üzerinde not almış olmak temel şarttır. Diğer iki dersin notlarının herhangi birinin 65 in üzerinde olması 55

Bilgisayarda İşlemler (Devam) Mantıksal İşlemler (Devam) Bu durumda Psedo Kod yazılırsa: 1. Başla 2. Bilg. Not, TDili Not, YDil Not değerlerini giriniz. 3. Eğer Bilg. Not>65 VE (TDili Not>65 VEYA YDil Not>65) ise İsmi Yaz 4. Son Not : Burada 3. satırdaki komut için VE, VEYA operatörleri kullanılmıştır. 56

Bilgisayarda İşlemler (Devam) Mantıksal İşlemler (Devam) Örnek 9 : Bir işyerinde çalışan işçiler arasından yalnızca yaşı 23 üzerinde olup Maaş olarak Asgari ücret alanların isimleri yazılmak istenebilir. Bu durumda bir Psedo Kod yazarsak : 57

1. Başla 2. Yaş, Maaş, Asgari ücret i girin 3. Eğer Yaş>23 VE Maaş=Asgari ücret ise İsmi Yaz 4. Dur Bilgisayarda İşlemler (Devam) Mantıksal İşlemler (Devam) Not: İsmi Yaz komutu 1. ve 2. şartın her ikisi de sağlanıyorsa çalışır. 58

ALGORİTMALARDA SIKÇA KULLANILAN BAZI TERİMLER Tanımlayıcı Değişken Sabit Aktarma Sayaç Döngü Ardışık Toplama Ardışık Çarpma İçiçe Döngüler 59

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Tanımlayıcı: Programdaki ; Değişkenleri, Sabitleri, Kayıt alanlarını, Özel bilgi tiplerini vb. adlandırmak için kullanılan kelimelerdir. Tanımlayıcılar, yerini tuttukları ifadelere çağrışım yapacak şekilde seçilmelidir. ( İsim ve Telefon için: adtelef gibi) 60

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Tanımlayıcılarda ; İngiliz alfabesindeki A-Z veya a-z arası 26 harf ile 0-9 arası rakamlar kullanılabilir. Tanımlayıcı isimleri harfle veya alt çizgiyle başlayabilir. Sembollerden sadece alt çizgi (_) kullanılabilir. Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan oluşamaz. 61

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Değişken: Genelde programın her çalıştırılmasında, farklı değerler alırlar. Değişken isimlendirilmeleri de yukarıda sayılan tanımlayıcı kurallarına uygun şekilde yapılmalıdır. Meselâ ; Bir ismin aktarıldığı değişken; ad Bir isim ve soy ismin aktarıldığı değişken; adsoyad Ev telefon no sunun aktarıldığı değişken; evtel Ev adresinin aktarıldığı değişken; evadres İş adresinin aktarıldığı değişken; isadres şeklinde verilebilir. 62

Sabit: Algoritmalarda Sıkça Kullanılan Terimler (Devam) Programdaki değeri değişmeyen ifadelere sabit denir. Yukarda açıklanan İsimlendirme kuralları na uygun olarak oluşturulan sabitlere Sayısal veriler doğrudan (Örn: A=7) Alfasayısal veriler ise tek yada çift tırnak içinde aktarılır. (Örn: A= puan25 veya A= puan25 ) Not: Alfasayısal (alfanümerik), Verinin hem harf hem de rakamlardan oluştuğunu belirtmek için kullanılır. 63

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Örnek 10 : Öğrenci adını içeren bir mesajı Psedo Kod ile yazalım; 1. Başla 2. Bir isim giriniz (A) 3. Derse Hoş geldin mesajı (B) yaz 4. B ve A yı Yaz 5. Dur Not: Burada (A) nın isim bilgisi taşıdığı yani öğrenciye göre değişeceği için Değişken olduğuna (B) nin de değişmeyen bir ifade yani Sabit olduğuna dikkat edelim. 64

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Yukarıdaki algoritma (psedo kod), dışarıdan girilen bir A değişkeni ile B sabitini birleştirip aşağıdaki iki örnekteki gibi ekrana yazar. A değişkeni B sabiti Ekranda yazılan Onur Derse Hoş geldin Derse Hoş geldin Onur Emre Derse Hoş geldin Derse Hoş geldin Emre 65

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Aktarma: Herhangi bir bilgi alanına, veri yazma; herhangi bir ifadenin sonucunu başka bir değişkende gösterme vb görevlerde aktarma operatörü kullanılır. değişken=ifade ( Örn: puan=a*65 ) = sembolü, aktarma operatörüdür ve sağdaki ifadenin/işlemin sonucunu soldaki değişkene aktarır. 66

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Değişken yazan soldaki kısım herhangi bir değişken ismidir. (Yukarıdaki örnekte puan kelimesidir.) İfade yazan sağdaki kısımda ise matematiksel, mantıksal veya alfasayısal ifade olabilir. (Yukarıdaki örnekte bir çarpma ifadesi) Bu durumda değişkenin eğer varsa bir önceki değeri silinir. 67

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Sayaç : Programlarda bazı işlemlerin belirli sayıda yaptırılması veya işlenen/üretilen değerlerin sayılması gerekebilir. Örnek: say=say+1 ( say adlı değişken için) Yukardaki işlemde sağdaki ifadede değişkenin eski değerine 1 eklenmekte; bulunan sonuç yine kendisine yeni değer olarak aktarılmaktadır. Not: Bu ifadeden önce say=7 ise sonra say=8 olur. 68

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Sayacın genel formülü; Sayaç değişkeni = Sayaç değişkeni + adım Örnek: X=X+3 (X değişkenini adım kadar (3) arttırır) Örnek: S=S-5 (S değişkenini adım kadar (5) azaltır) 69

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Örnek 11: Aşağıda 1-5 arası sayılar yazdırılmaktadır. (Sayac için S değişkeni kullanılmıştır) 1. Başla 2. S=0 (S değişkenine 0 ilk değerini ver.) 3. Eğer S>4 ise git 7. (S, 4 den büyükse 7. satıra git) 4. Değilse S=S+1 (S, 4 den büyük değilse S yi 1 arttır) 5. S yi Yaz (S değerini yaz) 6. Git 3. (3. satıra git) 7. Dur 70

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Önceki S Değeri Yeni S Değeri Ekrana Yazılan 0 0+1=1 1 1 1+1=2 2 2 2+1=3 3 3 3+1=4 4 4 4+1=5 5 71

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Döngü: Bir çok programda bazı işlemler,belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yaptırılmaktadır. Programlardaki belirli işlem bloklarını, verilen sayıda gerçekleştiren işlem akış çevrimlerine Döngü denir. 72

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Örnek 12: 1 ile 10 arası tek sayıların toplamını hesaplayan ve yazan bir Psedo Kod yazınız. Not: T, toplamı; J, tek sayıları (1,3,5,7,9) temsil eden değişkenlerdir. 73

Algoritmalarda Sıkça Kullanılan Terimler (Devam) 1. Başla 2. T=0 ( Önce T toplam değişkenini sıfırla) 3. J=1 ( İlk tek sayıyı J değişkenine aktar) 4. Eğer J>10 ise git 8. (J>10 olduysa 8. adıma git) 5. Değilse T=T+J (Aksi halde T değişkenini J kadar arttır) 6. J=J+2 ( J yi adım yani 2 kadar arttır) 7. Git 4. ( 4. adıma git) 8. T yi yaz ( Toplamı yani T yi yazdır) 9. Dur Not: 7. ile 4. satırlar arasında Döngü vardır. 74

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Önceki J Değeri Önceki T Değeri Yeni T Değeri Yeni J Değeri 1 0 0+1=1 3 3 1 1+3=4 5 5 4 4+5=9 7 7 9 9+7=16 9 9 16 16+9=25 11 11 - - - 75

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Ardışık Toplama: Programlarda, aynı değerin üzerine yeni değerler eklemek için kullanılır. Örnek11: Klavyeden girilen 5 sayının ortalamasını bulan programın algoritmasını Psedo Kod ile yazalım. Not: T: (Ardışık) Toplamı; S: Girilen sayının sırasını göstersin. 76

Algoritmalarda Sıkça Kullanılan Terimler (Devam) 1. Başla 2. T=0 (Toplamı yani T yi sıfırla) 3. S=0 (Girilen sayının sırasını sayan S yi sıfırla) 4. Eğer S>4 ise git 8 (S>4 yani S=5 olduysa 8. adıma git) 5. Değilse S=S+1 (Aksi halde S yi 1 arttır) Sayıyı (A) girin (Klavyeden A sayısının girilmesini iste) 6. T=T+A (Girilen sayıyı T ile topla) 7. Git 4. (4. adıma git) 8. Ortalama=T/5 (Ortalama yı hesapla) 9. Ortalama yı yaz (Ortalama yı yaz) 10. Dur 77

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Ardışık Çarpma : Ardışık çarpma işleminde; aynı değer (çarpım), yeni değerlerle çarpılarak eskisinin üzerine aktarılmaktadır. Örnek 14: Klavyeden girilen N sayısının faktöriyelini hesaplayan programın algoritmasını Psedo Kod ile yazınız. Not: 5! (5 faktöriyel); 1.2.3.4.5 sayılarının çarpımıdır. Faktöriyel değeri Faktor adlı değişkende (ardışık) çarpma ile hesaplanır. 78

Algoritmalarda Sıkça Kullanılan Terimler (Devam) 1. Başla 2. N sayısını girin ( Hangi sayının faktöriyelini hesaplasın) 3. Faktor=1 (İstenen Faktöriyel değeri 1 den başlasın) 4. S=0 5. Eğer S>N-1 ise git 9. (S, N-1 den büyükse işlem bitecek) 6. S=S+1 (Çarpılacak sayıları elde etmek için arttır) 7. Faktor=Faktor*S (Önceki Faktor değerini yeni S ile çarp) 8. Git 5. (5. adıma git) 9. Faktor u yaz (Faktor değerini yaz) 10. Dur 79

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Döngü Yapısı : Bu yapı kullanılırken; Döngü sayacı Şart bilgisi ve Sayacın artım bilgisi gibi değerler verilmelidir. Not: Döngü sayacı kullanılmıyorsa sadece döngüye devam edebilmek için gerekli olan şart bilgisi verilmelidir. 80

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Genel olarak pek çok programlama dilinin döngü deyimleri : 1) While 2) Do-while 3) For gibi yapılar üzerine kurulmuştur. Not: Farklı dillerde bu yapılara farklı alternatifler olsa da döngülerin çalışma mantığı genel olarak benzerdir. 81

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Döngü Yapısı (Devam) 1. Durum (While): Şart daha çevrim içerisine girmeden sınanır. Şart sağlanmıyorsa İşlem hiç yapılmaz Ve döngü içerisindeki İşlem de yapılması gerekenler atlanır. 82

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Döngü Yapısı (Devam) Döngüye Girildikten sonra Şart ın sağlanıp sağlanmadığına bakılır. Sağlanmıyorsa Döngüden çıkılır. Şart sağlandığı sürece (defa) İşlem yapıldıktan sonra döngüden çıkılır. 83

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Örnek 15: Bu tür bir döngü için daha önce algoritması yazılan Örnek 12 e ait bir akış diyagramı çizelim. Önce Örnek 12 i hatırlayalım: Klavyeden girilen N sayısının faktöriyelini hesaplayan programın algoritmasını Psedo Kod ile yazınız. 84

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Not: Faktor=1 ile Faktöriyele ilk değeri veriliyor. Böylece 1 sayısının Faktöriyeli baştan yazılmış oluyor. Sayac=2 ile Sayac a başlangıç olarak 2 değeri veriliyor. Sayac değeri 2 den başlayarak girilen Örn: N=10 değerine eşit olana kadar (2,3,4.9,10) Faktor=Faktor*Sayac işlemi tekrar yapılıyor. Sayac++ ile her seferinde Sayac 1 arttırılıyor. 85

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Döngü Yapısı (Devam) 2. Durum (Do-While): Bu durumda çevrim en az bir defa gerçekleşir. Çünkü şart sınaması döngü sonunda yapılmaktadır. Eğer şart sağlanmıyorsa bir sonraki çevrime geçilmeden döngüden çıkılır. Çevrimin Devam edebilmesi için her döngü sonunda yapılan şart testinin olumlu sonuçlanması gerekir. 86

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Döngü Yapısı (Devam) 87

Algoritmalarda Sıkça Kullanılan Terimler (Devam) Döngü Yapısı (Devam) 3. Durum (For): Diğer deyimlerden farklı olarak, döngü sayacı doğrudan şart parametreleri olarak başta verilir. Döngüye girmeden önce sayaç değişkenine başlangıç ve artım değeri atanmakta ve daha sonra şarta bakılmaktadır. Şart sağlandığı sürece belirtilen «İşlem» yapıldıktan sonra her seferinde sayaç değişkeni arttırılmaktadır. Döngü sayısına ulaşınca (şart sağlanamayınca) döngü sona erer. 88

Algoritmalarda Sıkça Kullanılan Terimler (Devam) 89

Algoritmalarda Sıkça Kullanılan Terimler (Devam) İçiçe Döngüler İçiçe Döngüler: Programlamada yaygın kullanılan bir döngüdür. İçiçe döngü kurulurken en önemli unsur, içteki döngü sonlanmadan bir dıştaki döngüye geçilmemesidir. Diğer bir deyişle döngüler birbirlerini kesmemelidir. En içteki döngü bir dıştaki döngünün her adımında N kere tekrarlanır. İç ve dış döngülerin çarpımı kadar İşlem yapılmış olur. 90

Algoritmalarda Sıkça Kullanılan Terimler (Devam) 91

ALGORİTMA VE PROGRAMLAMA (Bölüm 3) 92

C PROGRAMLAMA DİLİ C Nasıl Bir Programlama Dilidir? C orta düzey bir programlama dili olarak son derece esnek kullanımlı bir dildir. C, bir Assembly dili derleyicisinin sağladığı esneklik ve gücü sağlarken üst düzey bir programlama dilinin sağladığı kolay anlaşılabilirlik özelliğini de sunmaktadır 93

C PROGRAMLAMA DİLİ (Devam) Başlarken C Dilinin Temel Özellikleri : C, oldukça fazla sayıda ifade ve denetim komutları bulunduran bir programlama dilidir. Ancak, dikkatli yazılmalıdır. Zira hatalı veya eksik bir işaret programımızı doğru çalıştırmayacaktır. 94

C PROGRAMLAMA DİLİ (Devam) Başlarken Program Yazma, Derleme ve Çalıştırma: Önemli olan, önce basit bir programı yazıp derleyebilmek, çalıştırabilmek ve elde edilen sonuçları görebilmektir. Yazma, Derleme ve Çalıştırma kullandığımız ortama bağlı olmakla birlikte genellikle kolay bir şekilde yapılabilir. 95

C PROGRAMLAMA DİLİ (Devam) Başlarken C dilinde yazılan programın uzantısı (.c) olur. C dilindeki program (derleyici, bağlayıcı ve Kütüphane fonksiyonları ile) önce (.obj), sonra (.exe) uzantılı olur Yani PC de yürütülebilir hale gelir. 96

C PROGRAMLAMA DİLİ (Devam) Başlarken 97

C PROGRAMLAMA DİLİ (Devam) Başlarken C de bulunan pek çok fonksiyonun kullanılabilmesi için bazı kütüphane başlık dosyalarının (include) programa eklenmesi gerekir. Karışıklığı önlemek adına programlarımızda gösterilmeyecek olan bu dosyalardan en temel ve önemli olanı: #include <stdio.h> şeklindedir ve

C PROGRAMLAMA DİLİ (Devam) Başlarken Bu başlık dosyasından başka ileri matematik işlemlerde kullanılan #include <math.h> Yine rastgele sayı üretmek, sıralama yapmak vb. işlemlerde #include <stdlib.h> gibi farklı başlık dosyaları ekleme ifadeleri mevcuttur İhtiyaca göre bu ifadelerin main() öncesinde programın başına eklenmesi gerekir.

C PROGRAMLAMA DİLİ (Devam) Başlarken IDE (Tümleşik Geliştirme Ortamı): Tümleşik Geliştirme Ortamları, Derleyicileri Bağlayıcıları tek bir ortam içinden kullanabilmeyi sağlarken Ayrıca Hata ayıklama (debug), Gözlem penceresi (watch) gibi bileşenlere sahiptirler. 100

C PROGRAMLAMA DİLİ (Devam) Başlarken IDE lerde yazım işlemini kolaylaştıracak vurgulamalar, uyarılar ve yardım menüleri mevcuttur. Derleyici ve bağlayıcı parametreleri menülerden ayarlanabilir. Her yazılım dilinin kendi IDE si mevcuttur 101

İlk Program: Programlamayı öğrenmeye başlarken sıkça kullanılan bir ifade olan Merhaba C yi ekrana yazdıran bir mini örnek programla başlayalım: main() { C PROGRAMLAMA DİLİ (Devam) Başlarken printf( Merhaba C\n ) ; } Not: Daha evvel de belirtildiği gibi yukarıdaki printf() fonksiyonunun çalışabilmesi için main() den önce #include <stdio.h> yazarak kütüphane başlık dosyasının eklenmesi gerekir. Dersimizdeki örneklerde bu dosya eklenmeyecektir ancak bilgisayarda derleme yapmadan önce programda kullanılan fonksiyonlara göre bu ve benzer dosya/dosyaların ilave edilmesi şarttır. 102

C PROGRAMLAMA DİLİ (Devam) Başlarken Bu programın ekran çıktısı; Merhaba C şeklinde olur. Açıklamalar: main İngilizcede ana, asıl anlamındadır. printf() ekrana yazdırmak için kullanılan bir fonksiyondur. 103

C PROGRAMLAMA DİLİ (Devam) Başlarken Her komuttan (fonksiyondan/deyimden) sonra ; konulması şarttır. \n Merhaba C ifadesinden sonra satır atlatır. { ve } küme parantezleridir. main() fonk. bunun içine yazılır. 104

C PROGRAMLAMA DİLİ (Devam) Başlarken Bir C programı boyutu ne olursa olsun bir ya da daha fazla fonksiyon denilen bloktan oluşur. C Dilinde olmazsa olmaz fonksiyon (blok) main() fonksiyonudur * (bloğudur). Program her zaman bu main() adlı fonksiyondan çalışmaya başlar. Not: Bundan sonra blok yerine fonksiyon ifadesi kullanılacaktır. 105

C PROGRAMLAMA DİLİ (Devam) Başlarken o Genelde fonksiyonun yanındaki parantez içinde parametreler (argümanlar) yer alır. Örn: printf( Merhaba C\n ) ; deki Merhaba C\n gibi. o main() fonksiyonunun herhangi bir parametresi olmadığından parantezi boştur. o Fonksiyonlar arasında haberleşme ve (varsa) değerlerin transferi parametreler (argümanlar) maharetiyle gerçekleşir. o Fonksiyonlar adı yazılan yerde çağrılır(çalışır). 106

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu printf() FONKSİYONU printf( Merhaba C \n ); satırı (deyimi) adı printf çağırır. olan bir fonksiyon Not :printf() ekrana bir bilginin yazılmasını sağlayan bir kütüphane fonksiyonudur ve standart C arşivinin (kütüphanesinin) bir parçasıdır. 107

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu printf() fonksiyonu asla otomatik olarak yeni bir satıra geçiş sağlamaz. Aşağıdaki program ilk örnekteki ile aynı çıktıyı verecektir : main() { } printf( Merhaba ) ; printf( C ) ; printf( \n ) ; 108

Benzer şekilde \n \t \b \ C PROGRAMLAMA DİLİ (Devam) Bazı Kontrol Karakterleri satır atlattığı gibi tab için, geriye doğru silme (kürsörü bir karakter öne alma) işlemi için (Backspace), çift tırnağın kendisini yazdırmak için kullanılır. Bunlar görünmeyen kontrol karakterlerdir. Ekrandaki çıktıyı kontrol etmektedirler. 109

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu Mesaj ile birlikte bir değişkenin değerini ekrana yazdırmak için yine printf() fonksiyonu kullanılabilir. İlk örnek Merhaba C de olduğu gibi sadece mesaj ve değişkenin biçimi çift tırnak içine alınarak belirtilir. 110

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu printf() fonksiyonu ile hem mesaj hem de değişken değeri birlikte yazılabilir. Örnek: Ekranda sonuc adlı desimal bir değişken yazdırılacaktır. Bunun için önce sonuc= ifadesi, bu ifadenin hemen yanına bu değişkenin değeri yazılacaktır. Değişken değerinden sonra dir. eklenecektir. Gerekli printf() deyimini (komutunu) yazınız. 111

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu Cevap: printf( sonuc= %d dir.,sonuc); şeklinde yazılabilir. Not: Yukarıdaki printf() fonksiyonu ile sonuc adlı değişkenin değeri sonuc= ifadesinin yanına yazılmakta sonra da dir. eklenmektedir. 112

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu Burada %d, değerin desimal olarak yazılacağını belirtir. Ekranda sonuc değişkeninin değeri komuttaki %d nin yerine yazılır. Bu durumda ekran çıktısı, (sonuc değeri 25 olsun) sonuc=25 dir. şeklinde olur. 113

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu Örnek: Daha önce hesaplanmış m değişkeni Sayi= ve n değişkeni Karekoku= ifadelerinden sonra ekrana yazdırılmak istenmektedir. m değişkeni desimal (tam sayı), n değişkeni ondalıklı (virgüllü) sayı olacaktır. Tek bir printf() fonksiyonunu yazınız. Not: Ondalıklı sayı için %f kontrol karakteri kullanılır. 114

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu Cevap: printf( Sayi= %d Karekoku=%f,m,n); şeklinde olabilir. Ekran çıktısı : ( m=5 ve n= 2.236076 değişken değerleri için) Sayi= 5 Karekoku= 2.236076 şeklinde olacaktır. 115

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu Yukarıda görüldüğü gibi %d, %f vb. gibi kontrol karakterleri dışındaki çift tırnak içindeki karakterler çıkışta aynen yazılır. Parantezde kaç değişken varsa o kadar kontrol karakteri olmalıdır. (Örnekte: m ve n için %d ve %f ) Not : Eğer (n) değişkeni için kontrol karakteri olarak %f yazılmayıp %d şeklinde yazılsaydı 2.236076 sayısı yerine çıktıda sadece 2 (tam sayı kısmı) olarak görülecekti. 116

C PROGRAMLAMA DİLİ (Devam) printf() fonksiyonu printf() komutu içinde yaygın olarak kullanılan bazı yazdırma kontrol karakterleri şöyledir: %c : tek karakter [ örn: M ] %d : ondalık [ örn: -3.26] %u : işaretsiz ondalık [ örn: 4.76] %f : ondalık kayan nokta [ örn: 314.2857] %e : bilimsel (üslü) gösterim [ örn: 3.142857e+002] %x : heksadesimal [ örn: 3F ] %s : karakter katarı [ örn: ADRES ] 117

C PROGRAMLAMA DİLİ (Devam) scanf() fonksiyonu scanf() FONKSİYONU: Klavyeden değer okumak için scanf() adlı yine bir standart kütüphane fonksiyonu kullanılabilir. Bu fonksiyonda da benzer kontrol karakterleri vardır ve okunacak değerin tipini belirler. printf() e benzer şekilde %d tam sayı, %f kesirli (virgüllü) sayı okunacağını ifade eder. 118

C PROGRAMLAMA DİLİ (Devam) scanf() fonksiyonu Mesela iki scanf() fonksiyonu ile önce a değişkenine bir tam, sonra b değişkenine bir kesirli sayı okunacaksa; scanf ( %d, &a); scanf ( %f, &b);. yazılabilir Not: Burada a veya b adlı değişkenlerin hafızadaki değerleri (içeriği) anlamında başlarına & karakteri gelmektedir. 119

C PROGRAMLAMA DİLİ (Devam) scanf() fonksiyonu Eğer X ve Y adlı iki desimal değişkeni aynı scanf() fonksiyonunda okumak istersek, aşağıdaki gibi iki farklı şekilde yazabiliriz. (Mesela klavyeden girilecek sayılar 12 ve 567 olsun) İki komut arasındaki fark ilk %d den sonraki virgüldür. scanf( %d,%d, &X, &Y); scanf( %d %d, &X, &Y); /* Sayılar arasına virgül konarak giriş yapılır. Yani klavyede 12,567 yazılır */ /* Sayılar arasına boşluk konarak giriş yapılır. Yani klavyede 12 567 yazılır */ 120

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu Şimdiye kadar öğrendiklerimizi uygulamak için Örnek : main() fonksiyonu içinde iki sayıyı toplayıp ortalamasını alarak ekrana yazdıran bir C programı yazınız. 121

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu main() { int a,b,top ; /* a ve b toplanacak sayilar, top ise toplam degiskeni */ float ort ; /* ortalama degiskeni ort ve tipi kesirli (virgüllü) */ printf( iki sayı giriniz: ) ; /* ekrana iki sayı giriniz: mesaji yazilsin*/ scanf( %d,%d,&a,&b); /* a ve b tam sayı olarak klavyeden okuyacak */ top= a+b ; /* a ve b toplanip top degiskenine aktariliyor*/ ort = top/2 ; /* ortalama alinip ort degiskenine aktariliyor */ printf ( ortalama= %f dir.,ort) ; /* ort degeri yaziliyor */ } /* Bu karakterler arasına açıklama yazılabilir */ 122

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu Ekran Girişi ve Çıktısı ise ( a= 5 ve b= 4 olduğu kabul edilsin, Giriş sayıların arasına virgül konarak kullanıcı tarafından klavyeden yapılıyor) iki sayı giriniz: 5,4 ( ortalama=4.500000 Not: Çıktıda Float tipi sonuç noktadan sonra 6 basamak (12 basamak veren derleyiciler de vardır) yazıldı. 123

Örnek: Tamsayı olarak verilen X ve Y nin farkını (X-Y) hesaplayıp SAYILARIN FARKI= C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu ifadesinden sonra yazdıran main() fonk. yazınız. main() { /* Bu ornek main fonksiyonu X ve Y nin farkini hesaplar*/ int X,Y,fark ; /* X, Y, fark tam sayi */ printf ( iki sayı giriniz: ) ; /* Ekrana iki sayı giriniz: mesaji yazilsin */ scanf ( %d,%d,&x,&y) ; /* X ve Y klavyeden okunacak */ fark= X-Y ; /* X ve Y cikarilip fark degiskenine aktariliyor*/ printf ( SAYILARIN FARKI= %d, fark) ; /* cikis yaziliyor */ } 124

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu Ekran Girişi ve çıktısı olarak ( X=25 ve Y=13 olduğu kabul edilirse ) iki sayı giriniz: 25, 13 SAYILARIN FARKI= 12 dir. Örnek: Klavyeden girilen kesirli sayı olan yarıçap (R) ile dairenin alanı ve çevresini hesaplayan ve ekrana yazdıran bir main() fonk. yazınız. ( = 3.14 alınacaktır) 125

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu main () { float R,S,C ; /* R: Yaricap S: Alan C: Cevre olsun*/ printf( Yaricapi Giriniz: ); /* Yaricapi Giriniz: yaz*/ scanf ( %f, &R); /* Yaricapi R degiskenine oku*/ S= 3.14 * R * R ; /* Alani hesapla*/ C = 2 * 3.14 * R ; printf ( Dairenin Alani= %f\n, S); printf ( Dairenin Cevresi= %f, C); } /* Bu ornek main fonk. Dairenin alani ve Cevresini hesaplar*/ /* Cevreyi hesapla*/ /* Alani ekrana yazdir*/ /* Cevreyi yazdir*/ 126

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu Programın Ekran Girişi ve Çıktısı: (Dairenin Yarıçapı = 5.2 kullanıcı tarafından girilmiş olsun) Yarıcapi Giriniz: 5.2 Dairenin Alani= 84.905600 Dairenin Cevresi= 32.656000 127

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu Örnek: Tabanı (a) ve yüksekliği (h) virgüllü sayı olarak verilen bir üçgenin alanını hesaplayıp yazdıran main() fonk. yazınız. main() { /* Bu main fonksiyonu ücgenin alanini hesaplar*/ float a,h,alan; /* a: taban, h: yukseklik ve alan olsun */ printf ( Taban ve yuksekligi giriniz: ) ; /* kenarlari girin mesaji */ scanf ( %f,%f,&a,&h); /* a ve h klavyeden okunacak */ alan = a*h/2; /* alan hesaplanip alan adli degiskene aktariliyor */ printf ( Ucgenin Alani= %f,alan) ; /* cikis yaziliyor */ } 128

C PROGRAMLAMA DİLİ (Devam) main() fonksiyonu Ekran Girişi ve çıktısı : (Üçgende a=5.5 ve h=4.6 olarak klavyeden girilsin ) Taban ve yuksekligi giriniz: 5.5, 4.6 Ucgenin Alani= 12.650000 dir. 129