Problemin çözümü için bilgisayarın yapacağı işlemlerin kodlanması için kullanılan programlardır.



Benzer belgeler
4- ALGORİTMA (ALGORITHM)

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.

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

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

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

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

Algoritma ve Programlamaya Giriş

Algoritmanın Hazırlanması

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

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

ALGORİTMA VE AKIŞ ŞEMALARI

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

Dr. Musa KILIÇ Öğretim Görevlisi

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

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

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

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

Algoritmalar ve Programlama. Algoritma

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

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

Algoritma kelimesinin kökeni:

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

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

BİLGİSAYAR PROGRAMLAMA MATLAB

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

PROGRAMLAMA DİLLERİ I

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

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

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

BLG 1306 Temel Bilgisayar Programlama

Akış Kontrol Mekanizmaları

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

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

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

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

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

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

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.

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları

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

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Bilgisayarda Programlama. Temel Kavramlar

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BÖLÜM 2: ALGORİTMALAR

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

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

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

Temel Bilgisayar Programlama

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

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

ÖRNEK ALGORİTMA VE AKIŞ ŞEMALARI. Örnek 1: Klavyeden girilen 2 sayının toplamını bulan programın algoritma ve akış şemasını yapınız.


EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

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

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

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

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

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

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

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

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

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

ALGORİTMA ÖRNEKLERİ ve YAZILIYA HAZIRLIK SORULARI

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

BLG 1306 Temel Bilgisayar Programlama

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

3. Bölüm Algoritmalar

Bilgisayar II Dersi. Bölüm-2

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Đ

Hafta 4 Döngü Yapıları

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

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

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

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

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

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

BİLGİSAYAR PROGRAMLAMA

C SHARP UYGULAMA ÇALIŞMASI

Bilgisayar Programı Nedir?

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

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

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

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

Genel Programlama I

C++ Dilinde Bazı Temel Algoritmalar

Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA DERSİ

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

I=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] % 4x4 lük birim matris

Transkript:

Temel Bilgisayar Programlama GİRİŞ Bilgisayar programlamada başarı sağlamak için bilgisayar programlamada kullanılan genel kavram ve tanımlar iyi anlaşılmalıdır. Bilgisayar Verileri İşleyerek sonuç bilgiler elde edebilen, bu veri ve bilgileri saklayıp başka ortamlara iletebilen elektronik bir cihazlardır. Bu işlemleri yaparken çok yüksek hızlarda ve bıkmadan-usanmadan tekrarlı olarak aynı işleri yapan bir cihazdır. Ancak tek başına bir Bilgisayar donanımı bu işleri gerçekleştirecek durumda değildir. Bu işlemler yazılım yardımı ile donanım tarafından gerçekleştirilir. Program Nedir? Belli bir amacı gerçekleştirmek için bilgisayarın yapacağı işlemleri tanımlayan kod kümesine program denir. Programlar programcının programda belirlediği sıra ile çalışır. Programlama Nedir? Bir problemin bilgisayarla çözümü için yapılan işlemler bütününe programlama denir. Bunun en önemli kısmı da çözümünün bir programlama dili ile bilgisayar ortamına aktarılması (kodlanması) dır. Programcı Nedir? Programlama işlemini gerçekleştiren şahıslara programcı denir. (Programcı bir problemin bilgisayar ortamında çözümü için problemi analiz eder, algoritma ve akış şemalarını hazırlar, programı kodlar ve örnek veriler ile programı test eder. Gerektiğinde uygulamaya alınan programa destek saplar) Programlama Dili Nedir? Problemin çözümü için bilgisayarın yapacağı işlemlerin kodlanması için kullanılan programlardır. Bilgisayar işlemler 1 ve 0'lardan oluşan binary(ikili) sistemde gerçekleştirir. En temel programlama dilide Hexadecimal kodlarla yazılan makina dilidir. Makina diliyle yazılan programların performansının çok yüksek olamsına rağmen aşağıdaki sebeplerden dolayı sadece donanım yazılımlarında ve sistem yazılımlarında gerektiği kadar kullanılır. Makina dili ile program yazmanın dezavantajları; 1. Program yazabilmek için iyi bir donanım bilgisi(mikro işlemcilerin mimari yapısı) gerekir. 2. Öğrenilmesi zordur. 3. Program yazımı gayet zordur. 4. Program yazımı uzun zaman alır. 5. Makina dili ile yazılan programlar sadece yazıldıkları marka ve model için geçerlidir. Öğr.Gör. Fatih ÖCAL Sayfa 1

Bu sebeplerden dolayı insan diline daha yakın olan sembolik diller geliştirilmiştir. Sembolik diller öğrenilmesi ve program yazımı daha kolay olan dillerdir. Ancak sembolik dillerle yazılan programlar makine diline çevrilerek çalıştırılır. Bu sebeple performansları makina diline göre daha düşktür. Programlama dilleri insan diline yakınlıklarına göre yüksekten alçağa doğru şöyle sınıflandırılır. 1. Yüksek seviye diller. : İnsan diline en yakın olan dildir. Makina diline çevrilmesi zaman alır.(basic) 2. Orta Seviye diller. : Az bir tercüme ile makina diline çevilebilir. (C) 3. Alçak seviye diller. : Makina diline çevilmesi daha basittir. (Assembly) 4. Makina dili. : Tercüme gerektirmez. Bilgisayarın temel dilidir. Sembolik diller ile yazılan bir programdan amaç program elde edilişi şekil 1 de gösterildiği gibi ifade edilebilir. Kaynak Derleyici Çevirici Amaç Program Program Program Birleştirici Prg Alt Programlar Şekil 1: Kaynak programdan amaç program elde edilişi Kaynak Program: Sembolik dille yazılan esas programdır. Derleyici Program: Kaynak programı yazım hatalarına karşı kontrol ederek makine diline çeviren yardımcı bir programdır. Çevirici Birleştirici Program: Kaynak programın kullandığı alt programları da kontrol ederek makine diline çevirerek amaç programa dahil eder. Amaç Program: Programlama dilinden bağımsız çalışabilen makine diline çevrilmiş programdır.(exe uzantılı program) Programlama dilleri ayrıca derleyici ve yorumlayıcı(tercüme edici) diller olamak üzere ikiye ayrılır. Derleyici Programlama Dili: Yazılan programı derleme yeteneğine sahip olan programlama dilidir. Bir başka deyişle içinde derleyici olan programdır. Bu tür diller ile yazılan programlar bir kez hata kontrolu yapılarak makina diline dönüştürülür ve EXE uzantılı bağımsız çalışan program elde edilir. Daha sonra makina diline çevrilmiş bu program direkt çalıştırılabilir. Yorumlayıcı Programlama Dili: Derleyici gibi çalışan ancak yazılmış programları o anda Makine diline çeviren yazılımlardır. Bu tür bir yazılımda Programın Makine dili ile oluşturulmuş kısmı bilgisayarda tutulmaz. Programın her çalıştırılmasında her adım için Makine dili karşılıkları oluşturulur ve çalıştırılır. Öğr.Gör. Fatih ÖCAL Sayfa 2

Diğer programlama tanımları: Veri(Data): İşlemin giriş elemanlarına veri denir. Bilgi(Information): Verilerin işlenmesiyle elde edilen elemanlardır. Değişken(Variable): Algoritma ve program içinde farklı yerlerde farklı değerler alabilen ifadelerin bulunduğu hafıza alanlarına veya bunların sembolik isimlerine değişken denir. Sabit(Const): Algoritma veya program içinde değeri değişmeyen ifadelerin bulunduğu hafıza alanlarına veya bunların sembolik isimlerine denir. Programlarda yapılan tanımlamalarda(değişken, sabit, sınıf, nesne vb) kullanılan programlama dilinin tanımlama kurallarına uyulmalıdır. Genel olarak ise Türkçe karakterler ve programlama dilinin anahtar kelimeleri kullanılmamalıdır. String(Karakter dizisi): Program çıktısında (ekran veya yazıcı) algoritma ve programda yazıldığı gibi görülmesi istenen ifadelerdir. Genellikle tek veya çift tırnak içinde yazılır. Matematiksel İşlemler ve İşlem Öncelik Sırası: Matematiksel bir ifade içinde sabitler, değişkenler, parantezler ve işlem operatörleri bulunur. Matematiksel ifade içinde operatörler mutlaka yazılmalıdır. A*b/2*a veya a*b/(2*a) gibi. Unari operatörleri hariç iki operatör yan yana kullanılamaz. Matematiksel bir ifade içinde işlemler soldan sağa doğru işlem öncelik sırasına göre yapılır. İşlem öncelik sırası aşağıdaki gibidir. a. Parantez işlemleri b. Üslü işlemler c. Çarpma ve bölme işlemi d. Toplama ve çıkarma işlemi Aynı öncelik sırasına sahip iki işlemden soldaki önce gerçekleştirilir. Birbirini takip eden üs alma işlemleri varsa işlem sağdan sola doğru yapılır. (X^y^a) Parantezler yardımı ile işlemlerin öncelik sırası değiştirilebilir. *Tüm parantezler normal parantez olarak kullanılır. *Bir işlemde parantez hatası yapmamak için açılan parantez kadar parantezin kapanmasına dikkat edilir. Öğr.Gör. Fatih ÖCAL Sayfa 3

BÖLÜM 1: Bir Problemin Bilgisayar ile Çözüm Aşamaları: Bir problemin bilgisayar ile çözümü gerektiğinde öncelikle bu işe hizmet edebilecek hazır programların olup olmadığı araştırılır. Var ise mevcut program tercih edilmeli. Varlığı bilindiği halde tercih edilmiyorsa sebepleri araştırılmalı. Yeni bir çözüm düşünülüyorsa aşağıdaki yol izlenmelidir. 1.Problemin analizi. 2.Algoritmanın hazırlanması. 3.Akış şeması hazırlanmalı. 4.Programın kodlanmalı. 5.Örnek veriler ile program test edilmeli. 6.Program uygulamaya alınmalı. 1.Problemin analizi: İyi ve hızlı birsonuç için problemin çok iyi analiz edilmesi gerekir. Analiz aşamaları şunlardır. i. Programla ne yapılmak isteniyor? ii. Gerekli giriş verileri nelerdir? iii. Program çıktıları neler olacaktır? iv. İstenen çıktıların elde edilebilmesi için giriş verileri hangi işlemlere tabi tutulmalı? v. Programın hazırlanması ne kadar zaman gerektirir? vi. Programın bilgisayarda çalışma süresi ve tekrarı ne kadardır? vii. Gerekli donanınlar nelerdir?(hafıza, elektronik kart vb). viii. Yardımcı programlara ihtiyaç varmıdır?(vtys vb) ix. Problemin bilgisayarla çözümü maddi ve manevi olarak ekonomik ve uygun mudur? NOT: Problemin çözümünün kodlamadan önceki hiç bir aşamasında herhangi bir donanım veya yazılım esas alınmamalıdır. Çözümler genele hitap edecek şekilde hazırlanmalıdır. Not: Algoritma ve akış şemalarında program sonu sadece bir yerde olmalı ve sonlandırma gereken yerlerde program akışı bitiş kısmına yönlendirilmelidir. Öğr.Gör. Fatih ÖCAL Sayfa 4

2.Algoritma Hazırlanması: Algoritma sözcüğü Ebu Abdullah Muhammed İbn Musa el Harezmi adındaki dünyaca ünlü matematikçi alimden kaynaklanır. Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. "Hisab el-cebir ve el-mukabala و الجبر حساب) "(المقابلة kitabı dünyanın ilk cebir kitabıdır ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa'da çok ilgi görür. Analitik geometrinin kurucusu, ikinci dereceden bir ve iki bilinmeyenli denklemlerin çözümünü hem cebirsel hem de geometriksel olarak gösteren, matematiksel işlemlerde sıfır sayısının nasıl kullanılacağını ilk defa açıklayan kişidir. Alimin ismini telaffuz edemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayıları kullanarak aritmetik problemler çözme kuralları" manasında kullanırlar. Bu sözcük daha sonra "algoritma" ya dönüşür ve genel kapsamda kullanılır. (Literatür) Algoritmada işlem çözüm aşamaları maddeler halinde tek tek belirtilmelidir. Algoritma yapı olarak yol tarif etmeye benzer. Algoritma hazırlarken uyulmasında fayda görülen kurullar: i. İşlemlerde kullanılacak elemanların tanımlanması ii. Gereken değişkenlere ilk değer atamalarının yapılması iii. Gerekli ise giriş verileri düzenlenmeli iv. Matematik ve mantık işlemleri gösterilmeli v. Çıkış düzenlenmeli vi. Çalışma bitirilmeli Hayatımızda her işin bir algoritması vardır ve farkında olamadan sürekli algoritma yaparız. İyi algoritma yapanlar maddi ve manevi olarak her zaman bir adım öndedir. Örneğin çay demlemenin algoritmasını yapacak olursak. (Çok farklı çay demleme algoritmaları hazırlanabilir.) (niyet) 2. Çaydanlığa ihtiyaç kadar su doldur. 3. Ocağı yak 4. Çaydanlığı ocağa koy. 5. Demliği temizle 6. Demliğe dem at (istersen demi yıka. Yıkamayacaksan demi su kaynayınca koy) 7. Çaydanlığın üzerine koy 8. Su kaynayınca demliğe sıcak su ilave et 9. Çaydanlığa tekrar su ilave et ve ocağa koy 10. Demliği çaydanlığın üzerine koy. 11. Çay demini aldığında afiyetle iç. Öğr.Gör. Fatih ÖCAL Sayfa 5

Algoritma Örnekleri: Örnek 1: İki sayının toplamını bulan program algoritması. Çözüm aşağıdaki iki şekilde yapılabilir. 2.Tanımlamalar Sayi1, Sayi2, Sonuc 3.Oku Sayi1,Sayi2 4.SonucSayi1+Sayi2 5.Yaz Sonuc 6.DUR 2.Tanımlamalar Sayi1, Sayi2 3.Oku Sayi1,Sayi2 4. Yaz Sayi1+Sayi2 5.DUR Örnekte görüldüğü gibi bir problemin çözümü için birden fazla algoritma olabilir. Her programcı genel esaslar içerisinde kendi mantığı ile çözümler üretir. Ayrıca algoritmalarda genellikle başlangıçta Başla adımı yazılmaz. Ancak biz daha sonra hazırlayacağımız akış şemalarıylada uyum açısından bu adımıda yazacağız. Kullanılması zorunlu değildir. Not: Algoritmada bir satırda birden fazla veri okuma işlemi yapılsada programlamada(kodlama) kullanılan programlama dili imkan verse bile program okunurluğu açısından her verinin ayrı bir satırda okunması tercih edilir. Örnek 2: Girilen iki sayının farkını bulan program algoritması: 2.Tanımlamalar Sayi1, Sayi2, Sonuc 3.Oku Sayi1,Sayi2 4. Sonuc Sayi1-Sayi2 5.Yaz Sonuc 6.DUR 2.Tanımlamalar Sayi1, Sayi2 3.Oku Sayi1,Sayi2 4. Yaz Sayi1-Sayi2 5.DUR Örneklerde görüldüğü gibi çözüm için gerekli olan adımlar sıralı ve acık bir bicimde belirlenmistir. Bu nedenle algoritma hazırlandıktan sonra dikkatle incelenmeli ve varsa adımlardaki yanlıslıklar duzeltilmelidir. Programlamada üç temel yapı vardır. Bunlar; Sıralı yapı, Koşullu yapı ve Tekrarlı yapılar olarak ifade edilebilir. GOTO(git) Kavramı: Yapısal programlada artık bu metot kullanılmasada eski programlama uyum ve algoritma mantığın anlaşılması açısından işlenecektir. Kullanılmasını bizde tavsiye etmiyoruz. Öğr.Gör. Fatih ÖCAL Sayfa 6

GOTO SatırNo veya GOTO Etiket şeklinde kullanılır. Program akışını belirtilen etiket veya satır noya aktarmaya yarar. NOT: Bu kavram kullanılırken sonsuz döngüye girmemeye dikkat edilmelidir. Program mutlaka bir şekilte durması sağlanmalıdır. Örnek 3: Girilen sayıları ekrana yazan program. 2.Tanımlamalar Sayi 3.Oku Sayi 2.Tanımlamalar Sayi 3.Oku Sayi 4.Yaz Sayi Sonsuz döngü 4.Eğer Sayi=0 Git 7 5.Git 3 5.Yaz Sayi 6.DUR 6.Git 3 7.DUR Koşullu işlemler: Sıralı algoritma ile her probleme çözüm bulunamaz bazen program akışının sıradaki koddan farklı kodlara yönlenmesi gerekebilir bu gibi durumlarda Eğer yapısından faydalanılır. Bu sayede farklı kodun çalışmasını gerektiren şartın sağlanıp sağlanmadığına bakılır. Şart sağlanıyor ise program akışı dallanır. Eğer Şart => İşlem Bu durumda belirtilen şart sağlanıyorsa işlem gerçekleştirilir ve program akışı bir sonraki satıra geçer. Şart sağlanmıyor ise işlem gerçekleştirilmeden program akışı bir sonraki satıra geçer. Örnek 4: Klavyeden girilen ve sıfırdan farklı bir sayı için sayı sıfırdan büyük ise SAYI SIFIRDAN BÜYÜK yazan program algoritmasını yazınız. 2. Tanımla Sayi 4. Eğer Sayi>0 ise Yaz SAYI SIFIRDAN BÜYÜK 5. DUR Eğer şart sağlandığında bir işlem, şart sağlanmadığında başka bir işlem yapılacak ise aşağıdaki yapı kullanılır. Eğer Şart => İşlem1 Değilse İşlem2 Bu durumda belirtilen şart sağlandığında işlem1 şart sağlanmadığında işlem2 gerçekleştirilir. Öğr.Gör. Fatih ÖCAL Sayfa 7

Örnek 5: Klavyeden girilen ve sıfırdan farklı bir sayı için sıfırdan büyük ise SAYI SIFIRDAN BÜYÜK değilse SAYI SIFIRDAN KÜÇÜK yazan program algoritmasını yazınız. 2. Tanımla Sayi 4. Eğer Sayi>0 ise Yaz SAYI SIFIRDAN BÜYÜK Değilse Yaz SAYI SIFIRDAN KÜÇÜK 5. DUR Aynı işlemi şöylede yapabiliriz. 2. Tanımla Sayi 4. Eğer Sayi>0 ise Yaz SAYI SIFIRDAN BÜYÜK 5. Eğer Sayi<0 ise Yaz SAYI SIFIRDAN KÜÇÜK 6. DUR Peki şunu yazabilirmiyiz?! 2. Tanımla Sayi 4. Eğer Sayi>0 ise Yaz SAYI SIFIRDAN BÜYÜK 5. Yaz SAYI SIFIRDAN KÜÇÜK 6. DUR! Soru sayının sıfıra eşit olma durumunuda yazan algoritmayı yazınız. Koşullu işlemlerde bağlaçlar: Koşullu işlemlerde birden fazla şarta bağlı olarak işlem yapılacak ise şartlar ve, veya bağlaçlarından faydalanılır. Eğer birden fazla şarttan tamamının sağlanması durumunda işlem gerçekleştirilecek ise VE bağlacı, herhangi bir şartın sağlanması durumunda işlem yapılacak ise VEYA bağlacı ile şartlar birbirine bağlanır. Örnek 6: Vize ve final notu girilen öğrencinin başarılı olabilmesi için Final notunun en az 45 ortalamasının ise 59 dan büyük olması gerektiğine göre öğrencinin başarı durumunu değerlendiren programı yazınız. (Ortalama vize nin % de 40 ı finalin % de 60 ı ile bulunacak) 2. Tanımla Vize,Final, Ort 3. Oku Vize,Final 4. OrtVize*0,4+Final*0,6 5. Eğer Final>=45 ve Ort>59 Yaz Başarılı 6. DUR Öğr.Gör. Fatih ÖCAL Sayfa 8

Örnek 7: Vize ve final notu girilen öğrencinin başarılı olabilmesi için Final notunun en az 45 ortalamasının ise 59 dan büyük olması gerektiğine göre öğrencinin başarısızlık(tekrar) durumunu değerlendiren programı yazınız. 2. Tanımla Vize,Final,Ort 3. Oku Vize,Final 4. OrtVize*0,4+Final*0,6 5. Eğer Final<45 veya Ort<60 Yaz TEKRAR 6. DUR Soru1: ikinci derece denklemin köklerini bulan prg algoritmasını hazırlayınız.(karekök için karekök ifadesini kullanınız) Soru2: Girilen üç kenar ölçüsünün bir üçgen oluşturup oluşturmadığını kontrol eden ve oluşturuyorsa çeşidini (Çeşitkenar, eşkenar veya ikizkenar) ekrana yazan program algoritmasını yazınız. İlk Değer Ataması( Toplam 0 ): Bir değişkenin program içinde ilk değeri kullanılıyorsa o değişkene mutlaka uygun ilk değer ataması yapılmalıdır.(girilen sayılar toplamını bulmak vb) Algoritmanın Çalıştırılması: Örnek veriler verilerek algoritma program aşamalarında değişkenlerin aldığı değerler takip edilir. Tekrarlı yapılar: Bir veya bir grup program cümlesi işletilip sona erdikten sonra tekrar işletilmesi gerektiği durumlarda tekrarlı yapılar kullanılır. Tekrarlı işlemler için kullanılan metotlar şunlardır. 1. Başka işlem sorgulaması 2. Sayaç Metodu 3. Son kart metodu 4. Döngü metodu 1.Başka işlem sorgulaması: Bu metot da işlem gerçekleştirilip sona erdikten sonra kullanıcıya işlemin yeni değerler için tekrarlanıp tekrarlanmayacağı sorulur kullanıcı evet cevabını verirse işlem tekrarlanır hayır cevabını verirse program akışı bir sonraki program cümlesine geçer. Örnek 8: Kullanıcının girdiği sayılar toplamını bulan program her defasında kullanıcıya devam edip etmeyeceğini sorar ve kullanıcı hayır cevabını verdiğinde o ana kadar girilen sayılar toplamını ekrana yazar. Program algoritmasını yazınız. Öğr.Gör. Fatih ÖCAL Sayfa 9

2. Tanımla Sayi,Toplam0,Cevap 4. ToplamToplam+Sayi 5. Yaz Devam E/H? 6. Oku Cevap 7. Eğer Cevap= E ise Git 3 8. Yaz Sayılar Toplamı=, Toplam 9. DUR Kullanıcı hayır cevabı verene kadar girilen sayıların toplamını bulan prg algoritması Soru3a:Vize ve final notu girilen öğrencinin ortalamasını bulan program algoritmasını yazınız. Soru3b:Soru3a daki soruyu başka işlem sorgulaması ile tekrarlanacak şekilde düzenleyiniz. Soru4:Kullanıcı hayır cevabını verene kadar girilen her ismi ekrana yazan prg algoritmasını yazınız. 2.Sayaç metodu: Bu metot işlemin tekrarlanma sayısının belli olduğu durumlarda kullanılır. Bu metot da ayrı bir sayaç değişkeni kullanılır ve işlem her tekrarlandığında değeri bir artırılarak istenen değere ulaşıp ulaşmadığına bakılır. İstenen değere ulaşılmış ise işlem sona erdirilir aksi halde işlem tekrarlanır. Örnek 9: Klavyeden girilen 4 sayının toplamını bulan program algoritmasını yazınız. 2. Tanımla Sayi,Toplam0,Sayac0 4. ToplamToplam+Sayi 5. SayacSayac+1 6. Eğer Sayac<4 ise Git 3 7. Yaz Sayılar Toplamı=, Toplam 8. DUR Algoritmanın çalıştırılması Sayi Toplam Sayac 13 0 0 13 1 5 18 2 1 19 3 6 25 4 Girilen 4 sayının toplamını bulan prg algoritması. Soru5: Kullanıcı hayır cevabı verene kadar girilen sayıların toplam ve ortalamasını bulan prg algoritması Soru6: Tam bölünen iki sayının bölümünü bulan prg algoritmasını çarpma ve bölme operatörü kullanmadan yazınız. Soru7: Girilen iki sayının farkını fark operatörü kullanmadan bulunuz. Soru8: Tam bölünemeyen iki sayının bölümünü ve kalanı bulan prg algoritmasını çarpma ve bölme operatörü kullanmadan yazınız. Öğr.Gör. Fatih ÖCAL Sayfa 10

3.Son Kart Metodu: Bu metot işlemin tekrarlanma sayısının bilinmediği ancak değişkenin alacağı son değerin bilindiği durumlarda kullanılır. Şart sağlanıncaya kadar döngü işlemleri tekrarlanır. Dolayısıyla işlemin tekrar sayısı değişkenin alacağı son değere bağlıdır. Örnek 10: Sıfır girilene kadar girilen sayılar toplamını bulan program algoritması. 2. Tanımla Sayi,Toplam0 4. Eğer Sayi=0 ise Git 7 5. ToplamToplam+Sayi 6. Git 3 7. Yaz Girilen sayılar toplamı=,toplam 8. DUR Soru9: Sıfır girilene kadar girilen sayıların toplam ve ortalamalarını bulan prg algoritmasını hazırlayınız. Soru10: Sıfır girilene kadar girilen tek ve çift sayıların ayrı ayrı toplam ve ortalamasını bulan prg algoritmasını hazırlayınız. Soru11: Girilen 4 sayının toplam ve ortalamasını bulan prg algoritmasını yazınız. Aşağıdaki 12-19 arası soruları a)0(sıfır) giriline kadar b)girilen 20 sayı için gerçekleştiriniz. Soru12: Klavyeden girilen tek sayıların toplamını bulan program algoritması Soru13: Klavyeden girilen tek sayıların toplam ve ortalamasını bulan program algoritması Soru14: Klavyeden girilen tek ve çift sayıların ayrı ayrı toplamını bulan program algoritması Soru15: Klavyeden girilen tek ve çift sayıların ayrı ayrı toplam ve ortalamasını bulan program algoritması Soru16: Girilen pozitif sayıların toplamını bulan program Soru17: Girilen pozitif sayıların sayısını bulan program Soru18: Girilen pozitif sayıların toplam ve ortalamasını bulan program Soru19: Girilen pozitif venegatif sayıların ayrı ayrı toplam ve ortalamasını bulan program Soru20: 4 ile 183 arasındaki tek sayıların toplam ve ortalamasını bulan prg algoritmasını hazırlayınız. Soru21: 4 ile 183 arasındaki tek ve çift sayılarınayrı ayrı toplam ve ortalamasını bulan program Algoritmasını hazırlayınız. 4.Döngü Metodu: Bu metodu programlama dili ile uygulamalara başladığımızda işleyeceğiz. Ama genel olarak bu metot da yine belirlenen koşula göre döngü işlemleri tekrarlanır. Bu da kullanılan programlama dilinin sunduğu döngü komutlarına bağlı olarak ve genellikle iki şekilde olur. Şart sağlandığı sürece veya şart sağlanıncaya kadar döngü işlemleri tekrarlanır. Öğr.Gör. Fatih ÖCAL Sayfa 11

BÖLÜM 2: Akış Diyagramı(Flow Chart): Bir algoritmanın grafiksel olarak gösterimine akış şeması denir. Genele hitap edecek şekilde hazırlanması esastır. Her sembolün ayrı bir anlamı vardır ve şemada sembol içine o adımda neler yapıldığı yazılarak çözüm açıklanmış olur. Mesela giriş sembolü içine girilecek bilginin hangi değişkene okunacağını kutu içerisine yazabilirsiniz. Akış şeması hazırlamanın faydaları şöyle sıralanabilir: i. Bu sayede oluşturulan bir algoritma tüm dünyada ve tüm programcılar tarafından rahatlıkla anlaşılır. ii. Bazen bir problemin çözümü için birden fazla algoritma ve akış şeması hazırlanarak bunlardan en uygun olana göre program kodlanır. iii. Programın kodlanması kolaylaşır. iv. Kodlama hataları en aza iner. v. Çözüm ve program üzerindeki hakimiyet artar. Akış şemalarında kullanılan grafik sembolleri standartlaşmıştır. Bunları Tablo 1 den inceleyebilirsiniz Tablo 1 :Akış şemalarında kullanılan semboller Şekil Anlamı İşlemleri ve atamaları gösterir Giriş ve çıkış işlemleri için Karar işlemleri için Program başlangıcı ve sonu için Bağlama işlemleri için Olayların akış yönünü belirlemek için Tekrarlı işlemleri göstermek için. (Döngü) Öğr.Gör. Fatih ÖCAL Sayfa 12

Önceden tanımlı işlemler için. İşlevler (fonksiyonlar functions) Klavyeden Bilgisayara bilgi girilecek konumu belirten şekildir. Girilecek bilginin hangi değişkene okunacağını kutu içerisine yazabilirsiniz. Algoritmada bir bilginin ekrana yazılacağı konumu gösteren şekildir. Ekrana yazılacak ifade ya da değişken bu şekil içerisine yazılır. Bilginin Yazıcıya yazılacağı konumu gösteren şekildir. Kütük, dosya veya veri tabanı Öğr.Gör. Fatih ÖCAL Sayfa 13

Örnek11:Örnek 1 de verilen algoritmanın akış şeması 2.Tanımlamalar Sayi1, Sayi2, Toplam 3.Oku Sayi1,Sayi2 4.ToplamSayi1+Sayi2 5.Yaz Toplam 6.DUR 2.Tanımlamalar Sayi1, Sayi2 3.Oku Sayi1,Sayi2 4. Yaz Sayi1+Sayi2 5.DUR Başla Başla Tanım Sayi1,Sayi2,Toplam Tanım Sayi1,Sayi2 Oku Sayi1,Sayi2 Oku Sayi1,Sayi2 ToplamSayi1+Sayi2 Yaz Sayi1+Sayi2 Yaz Toplam DUR DUR Çalışma Ödevi: Tüm algoritma örneklerinin ve sorularının akış şemalarını çiziniz. Öğr.Gör. Fatih ÖCAL Sayfa 14

Örnek 12:Örnek 10 için akış şeması. Sıfır girilene kadar girilen sayılar toplamını bulan program algoritması. 2. Tanımla Sayi,Toplam0 4. Eğer Sayi=0 ise Git 7 5. ToplamToplam+Sayi 6. Git 3 7. Yaz Girilen sayılar toplamı=,toplam 8. DUR Başla Tanımla Sayi,Toplam0 Oku Sayi Sayi=0? E H Yaz Toplam=,Toplam ToplamToplam+Sayi DUR KAYNAKÇA Fatih Öcal Ders notları(1989-2012). Ebubekir Yaşar. Algortima ve Programlamaya Giriş. Murathan Yayınevi, Trabzon: 2011 Emre Ayrılmaz. C# 3.0 ile Programlama Temelleri. Bilge Adam Yayınları, İstanbul:2008 Mehmet Aktaş, EBİL Eğitim ve Yazılım Ltd. Şti. Mustafa Aksu, Algoritma ve Programlamaya Giriş Ders Notları. <www.hakankör.com.tr> www.gokhandokuyucu.com <eylül 2011> Öğr.Gör. Fatih ÖCAL Sayfa 15