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



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

GEO103 BİLGİSAYAR PROGRAMLAMA

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

Algoritmalar ve Programlama. Algoritma

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Đ

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

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

Bilgisayarda Programlama. Temel Kavramlar

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

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

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

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

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

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

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

BİLGİSAYAR PROGRAMLAMA DERSİ

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

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

BİLGİSAYAR PROGRAMLAMA MATLAB

Dr. Musa KILIÇ Öğretim Görevlisi

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

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

Algoritma ve Akış Diyagramları

BLG 1306 Temel Bilgisayar Programlama

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

Bilgisayar Programı Nedir?

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

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.

Algoritmanın Hazırlanması

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

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

BÖLÜM 2: ALGORİTMALAR

Algoritma ve Akış Diyagramları

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

Algoritma kelimesinin kökeni:

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

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

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

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

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

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

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Genel Programlama I

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

BİLGİSAYAR PROGRAMLAMA DERSİ

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

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

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

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

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

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

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

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

Algoritma ve Akış Şemaları

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

HSancak Nesne Tabanlı Programlama I Ders Notları

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

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

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

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

3. Bölüm Algoritmalar

ALGORİTMA VE PROGRAMLAMA I


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

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

1. PROGRAMLAMAYA GİRİŞ


Yazılım Mühendisliğine Giriş 2018 GÜZ

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

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

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

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

BİLGİSAYAR PROGRAMLAMA DERSİ

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.

Programlama Dilinin Özellikleri

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

Dr. Fatih AY Tel: fatihay@fatihay.net

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

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

PROGRAMLAMA ve YAZILIM. Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK

Bazen de bir işletme veya yönetimin otomasyonunu sağlamak amacı ile bu tip problemler tanımlanır.

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

Pascal Programlama Dili

Algoritma ve Akış Şemaları

PROGRAMLAMA TEMELLERİ

BİLGİSAYAR PROGRAMLAMA DERSİ

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

Bilgisayar Programlama Dilleri

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

PROGRAM AKIŞ DİYAGRAMLARI

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

ALGORİTMA VE AKIŞ ŞEMALARI

Transkript:

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

I) Algoritmik Program Tasarımı, Akış Şemaları Algoritmik program tasarımı, verilen bir problemin bilgisayar ortamında çözülecek biçimde adım adım ortaya koyulması ve herhangi bir programlama aracıyla kodlanması sürecidir. Akış şeması (flow chart), yapılacak bir işin veya programın şekilsel/grafiksel olarak ortaya koyulması veya başka bir deyişle tanımlanmasıdır. Bilgisayar Mühendisliğine Giriş 2

Yazılım Program Algoritma Program Parçası Komut ve Veri Donanım Bilgisayar Mühendisliğine Giriş 3

Algoritma, genel olarak tek bir problemi çözecek davranışın, temel işleri yapan komutların/deyimlerin adım adım ortaya konulmasıdır. Örn: Yalnızca sıralama veya arama yapan algortimalar. Tüm algoritmaları içerisinde barındırıp günlük veya iş yaşamındaki gereksinimi karşılayacak çözüm ise programdır. Örn: Küme elemanlarının okunması, onların sıralanması, diskte saklanması, istenilen bir elemanın aranması gibi işlemler bütünü programı oluşturur. Bir algoritmanın kısa bir parçacı program parçasıdır. Bilgisayar Mühendisliğine Giriş 4

Yapısal şema (The Structure Chart), genel olarak yazılım veya programın ana parçalarını göstermek için kullanılır. Örn: Öğrenci Otomasyonu Kayıt Sorgulama Ders Kayıt Not İşleme İstatistik Arama Bilgisayar Mühendisliğine Giriş 5

Bir problem çözülürken biri algoritmik, diğeri herustic (sezgisel) olarak adlandırılan iki yaklaşım vardır. Algoritmik yaklaşımda, çözüm için olası yöntemlerden en uygun olanı seçilir ve yapılması gerekenler adım adım ortaya konulur. Herustic yaklaşımda ise, çözüm açıkça ortada değildir. Tasarımcının deneyimi, birikimi ve o andaki düşüncesine göre problemi çözecek birşeylerin şekillendirilmesiyle yapılır. Program tasarımcısı, algoritmik yaklaşımla çözemediği, ancak çözmek zorunda olduğu problemler için bu yaklaşımı kullanır. Bilgisayar Mühendisliğine Giriş 6

Kaba ve Gerçek Kod (Pseudo Code ve Real Code) Pseudo Code (Kaba Kod), bir algoritmanın yarı programlama dili kuralı, yarı konuşma diline dönük olarak ortaya koyulması/ tanımlanmasıdır. Bu şekilde gösterim algoritmayı genel hatlarıyla yansıtır. Real Code (Gerçek Kod), algoritmanın herhangi bir programlama diliyle, belirli bir veri yapısı üzerinde gerçekleştirilmiş halidir. Bir algoritmanın gerçek kodu, yalnızca tasarlandığı veri yapısı üzerinde koşar; veri yapısı değiştirildiğinde algoritmanın gerçek kodu üzerinde oynamalar yapılmalıdır. Bilgisayar Mühendisliğine Giriş 7

Pseudo Kod Örnekleri Pseudo kod örnekleri: assign (ilkdeğer) value (100) if (sayı<x) then (ilk satıra git) else (son satıra git) while (döngü<girilen_değer) do assign (toplam) value (toplam+döngü) Bilgisayar Mühendisliğine Giriş 8

Akış Şemaları (Flow Charts) Akış şeması, algoritmanın görsel/şekilsel olarak ortaya koyulmasıdır. Problemin çözümü için yapılması gerekenleri, başından sonuna kadar, geometrik şekillerden oluşan simgelerle gösterir. Her simge, yapılacak bir işi veya komutu gösterir. Bilgisayar Mühendisliğine Giriş 9

Akış Şemaları için Kullanılan Bazı Semboller Başlama / Bitiş Karar Verme Dosya İşlemi İşlemler Döngü Giriş (Klavyeden..) Çıkış (Ekrana ) Çıkış (Kağıt ) Bilgisayar Mühendisliğine Giriş 10

Örnek Klavyeden girilen iki sayıyı alıp aritmetik ortalamasını hesaplayan ve sonucu ekrana yazan bir algoritmanın akış şeması? Başla A,B Ort=(A+B)/2 Ortalama= Ort Dur Bilgisayar Mühendisliğine Giriş 11

Karar Verme Hayır Koşul Evet Koşul Evet İşlem 1 İşlem 1 İşlem 2 İşlem N a) Koşulun durumuna bağlı olarak 2 farklı işlem vardır. b) Olumsuz koşulda yapılacak işlem yoktur; olumlu olması durumunda ise N adet işlem yapılacaktır. Bilgisayar Mühendisliğine Giriş 12

Karar Verme (Devam) Bu yapıyı art arda birden çok kez kullanıp aşağıdaki gibi bir kaşılaştırma dizisi oluşturulabilir. Hayır Koşul 1 Evet İşlem 1 Hayır Koşul 2 Evet Hayır Koşul (N-1) Evet İşlem (N-1) İşlem N Bilgisayar Mühendisliğine Giriş 13

Hayır Koşul 1 Evet Hayır Koşul 2 Evet İşlem 1 Hayır Koşul (N-1) Evet İşlem 1 İşlem N İşlem (N-1) Olumsuz taraftan içiçe karşılaştırma simgesi örneği Bilgisayar Mühendisliğine Giriş 14

Örnek ax 2 + bx + c = 0 şeklindeki ikinci dereceden bir denklemin köklerini bulan algoritmayı tasarlayıp akış şeması ile gösteriniz. Bilgisayar Mühendisliğine Giriş 15

Başla a,b,c Delta=b2-4ac Delta>0 x1=(-b+ delta)/2a x2=(-b- delta)/2a Delta=0 x1,x2 x1=-b/2a x1 Gerçek Kök Yok Dur Bilgisayar Mühendisliğine Giriş 16

Döngü Yapısı Bu yapı kullanılırken, döngü sayacı, koşul bilgisi ve sayacın artım bilgisi verilmelidir. Döngü sayacı kullanılmıyorsa sadece döngüye devam edebilmek için gerekli olan koşul bilgisi verilmelidir. Genel olarak çoğu programlama dilinin döngü deyimleri ; While Do- while For gibi yapılar üzerine kurulmuştur. Farklı dillerde bu yapılara farklı alternatifler olsa da döngülerin çalışma mantığı genel olarak benzerdir. Bilgisayar Mühendisliğine Giriş 17

While Deyimi Koşul daha çevrim içerisine girmeden sınanır. Koşul olumsuz olduğunda çerime hiç girilmez ve döngü içerisinde yapılması gerekenler atlanır. Döngüye Giriş Koşul İşlem N İşlem 1 Çevrim içerisinde koşulu etkileyen kod olmalıdır. Döngüden Çıkış Bilgisayar Mühendisliğine Giriş 18

Do-While Deyimi Bu döngü deyiminde, çevrim en az bir defa olmak üzere gerçekleşir. Çünkü koşul sınaması döngü sonunda yapılmaktadır. Eğer koşul sonucu olumsuz ise bir sonraki çevrime geçilmeden döngüden çıkılır. Çevrimin devam edebilmesi için her döngü sonunda yapılan koşul testinin olumlu sonuçlanması gerekir. Döngüye Giriş Çevrim içerisinde koşulu etkileyen kod olmalıdır. İşlem 1 İşlem N Koşul Döngüden Çıkış Bilgisayar Mühendisliğine Giriş 19

For Deyimi Diğer deyimlerden farklı olarak, döngü sayacı doğrudan koşul parametreleri düzeyinde verilir. Döngü girmeden önce sayaç değişkenine başlangıç değeri atanmakta ve daha sonra koşula bakılmaktadır. Döngü içerisinde belirtilen işlemler yapıldıktan sonra sayaç değişkeni arttırılmaktadır. Döngüye Giriş Döngüye Giriş Başlangıç Artım İşlem N İşlem N Koşul İşlem 1 Koşul İşlem 1 Döngüden Çıkış Döngüden Çıkış Bilgisayar Mühendisliğine Giriş 20

İçiçe Döngülerin Kullanılması İç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. Döngüye Giriş Başlangıç Koşulu ve Artım Koşul İşlem N En içteki döngü bir dıştaki döngünün her adımında N kez tekrarlanır. Koşul İşlem 1 Döngüden Çıkış Bilgisayar Mühendisliğine Giriş 21

Örnek (Faktöriyel Hesabı) n! = 1.2....(n-1).n şeklinde ifade edilir. Başla Fak=1 N Sayac=2, Sayac <=N Sayac ++ Faktöriyel fak Fak=Fak*Sayac N ile hangi sayının faktöriyelin hesaplanacağı belirlenir ve N çevrimlik bir döngü kurulur. İlk çevrimde 1!, ikinci çevrimde 2! ve sırayla N inci çevrim sonucunda da N! değeri hesaplanmış olur. Sayac>N koşulu oluştuğunda döngüden çıkılır ve elde edilen sonuç dış ortama aktarılır. Dur Bilgisayar Mühendisliğine Giriş 22

Örnek Bankaya aylık getirisi %8 ile 1000 YTL para yatırılmıştır. Buna göre; a)10 ay sonrası için paranın ne kadar olacağını ve bu süre içerisinde her ay sonunda ne kadar olacağını hesaplayıp ekrana yazan programın akış şemasını nasıldır? b)paranın kaç ay sonra 5000 YTL olacağını hesaplayan programın akış şeması nasıldır? Bilgisayar Mühendisliğine Giriş 23

a) Başla Para=1000 ay=1 ay<=10 ay++ Faktöriyel fak Para=para+para*0,08 1000 YTL 10 ay sonra = para Dur Bilgisayar Mühendisliğine Giriş 24

b) Başla Para=1000 ay=0 Ne zaman, para değeri 5000 den eşit veya büyük olduğunda döngü sonlanır ve döngü içerisindeki ay bilgisinin son hali bize istediğimiz değeri verir. Para < 5000 ay, para ay=ay+1 Para=para+para*0,08 Dur Bilgisayar Mühendisliğine Giriş 25

II) Programlama Çözülmesi söz konusu olan bir problem çözümlenip, algoritması ortaya konulduktan sonra sıra bilgisayar programının hazırlanmasına gelir. Programlama, bir işlemin bilgisayarın anlayabileceği bir biçime dönüştürülmesi işlemidir. Bilgisayar Mühendisliğine Giriş 26

Bilgisayarların asıl işlevleri, büyük miktarda verileri işlemektir. Bu yüzden bilgisayar verileri okuyabilmeli, saklayabilmeli, aralarından gerekeni seçebilmeli ve onların üzerinde gereken işlemleri yapabilmelidir. Bütün bu işlemleri, bilgisayara neyi nasıl hangi sırayla yapması gerektiğini gösteren programlar aracılığıyla gerçekleştirir. Programlama işlemi ise programlama dilleri aracılığı ile yerine getirilir. Bilgisayar Mühendisliğine Giriş 27

Programlama Dilleri Farklı problem alanlarına göre farklı dillerden söz etmek mümkündür. Dilin seçimi bu yüzden önemli olabilir. Probleme uygun dilin seçilmesi programın geliştirilmesinde kolaylık ve hızlı çalışma sağlayabilir. Bilgisayar Mühendisliğine Giriş 28

Programlama dillerinin tümü simgeseldir. Yani bilgisayarın anlayacağı işlemleri insanların da anlayabileceği simgelerle ifade ederler. Örnek bir program içersinde yer alan write şeklindeki bir komutun yazma işlemini gerçekleştirdiğini söylemek oldukça kolaydır. Bu gibi komut ve ifadeler özel programlar aracılığı ile bilgisayarın anlayabileceği dile çevirirler. Bu programlara derleyici ya da yorumlayıcı adı verilir. Bilgisayar Mühendisliğine Giriş 29

Programın, bir programlama diline bağlı olarak hazırlanan simgesel kodlardan oluşan kısmına kaynak program (source code) adı verilir. Bu kaynak programın derlenip bilgisayarda çalışabilecek makine kodlarına çevrilmiş koduna ise nesne kodu (object code) ismi verilir. Bilgisayar Mühendisliğine Giriş 30

Programlama dillerini seviyelerine göre dört kısımda sınıflandırmak mümkündür: Makine Dilleri Assembly Dilleri Yüksek Düzey Diller Dördüncü Kuşak Diller Bilgisayar Mühendisliğine Giriş 31

Makine Dilleri Doğrudan işlemcinin komut setinde yer alan makine kodlarından oluşur. En düşük seviyeli dil olarak kabul edilir. Komutlar ve veriler tamamen ikili düzende ifade edilir. Bilgisayar Mühendisliğine Giriş 32

Assembly Dilleri Makine dilinde yer alan kodların anımsatıcı sembollerle (mnemonic symbols) ifade edildiği daha üst düzey bir dildir. Adresler ikilik değil simgesel olarak ifade edilir. Bu programların makine diline çevrilmesini sağlayan programlara assembler adı verilir. Bilgisayar Mühendisliğine Giriş 33

Yüksek Düzeyli Diller Programcıya kolaylık sağlamak üzere geliştirilmiş tüm diller bu gruba girer. Komutlar yapılacak işlemin ingilizce karşılığı anımsatıcı kodlardır. Bu diller bilgisayar donanımından bağımsız olarak çalışabilirler. Yüksek düzey dillerde hazırlanan kodlar ancak makine diline çevrilip çalıştırılabilirler. Bu dillere örnek olarak BASIC, C, C++, COBOL, PASCAL verilebilir. Bilgisayar Mühendisliğine Giriş 34

Dördüncü Kuşak Diller Yüksek seviyeli dillere göre daha esnek yapıya sahip olan dördüncü kuşak diller programcının yapması gereken bir çok kodu otomatik olarak üretebilen özelliklere sahiptirler. Bu dillere en iyi örnek sorgulama dilleridir. Sorgulama dilleri veritabanları üzerinde çok az kod ile karmaşık sorguların yapılabilmesine olanak sağlayan araçlardır. Bilgisayar Mühendisliğine Giriş 35