ALGORĠTMA VE PROGRAMLAMA I

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

ALGORİTMA VE PROGRAMLAMA I

Algoritmalar ve Programlama. Algoritma

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

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

Hansel zeki bir çocukmuģ. Sabah ormana doğru yürürlerken, akģam yemeğinde cebine sakladığı kuru ekmeğin kırıntılarını (yere iz bırakıp kaybolmamak ve

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Algoritma ve Programlamaya Giriş

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

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

ALGORİTMA VE PROGRAMLAMA I

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

Bilgisayar Programlama. Giriş

BÖLÜM 2: ALGORİTMALAR

Program AkıĢ Kontrol Yapıları

İÇ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 TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

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

Bilgisayar ve Programlama

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

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

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

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

Genel Programlama I

Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir:

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

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

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

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

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

Bilgisayar II Dersi. Bölüm-2

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


ALGORİTMA VE PROGRAMLAMA I

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

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

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

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

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

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

Bilgisayar Programlama / Bahar

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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.

Dr. Musa KILIÇ Öğretim Görevlisi

ALGORİTMA VE PROGRAMLAMA II

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

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

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

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

Bilgisayar Programı Nedir?

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

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

Bilgisayar Programlama. 1.Hafta

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

ALGORİTMA VE PROGRAMLAMA I

Algoritma ve Programlama II Dersi 3.ÖDEVĠ

BMT 101 Algoritma ve Programlama I 2. 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

ALGORİTMA VE PROGRAMLAMA II

Bilgisayarda Programlama. Temel Kavramlar

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

Algoritmanın Hazırlanması

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

Algoritma ve Akış Diyagramları

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

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

ALGORİTMA VE PROGRAMLAMA I

BİLGİSAYAR PROGRAMLAMA MATLAB

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

ALGORİTMA VE AKIŞ ŞEMALARI

Seri No Takibi İÇERİK

ALGORİTMA VE PROGRAMLAMA I

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA VE PROGRAMLAMA II

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

ALGORİTMA VE PROGRAMLAMA II

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

Algoritma ve Akış Şemaları

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Üçüncü adımda ifade edilen özel kısıtları oluģturabilmek için iki genel yöntem geliģtirilmiģtir:

Otomatik Lotlama ve Ticari İzlenebilirlik

Algoritma ve Akış Diyagramları

Programlama Temelleri

C++ Dilinde Bazı Temel Algoritmalar

YZM 2105 Nesneye Yönelik Programlama

ALGORİTMA VE PROGRAMLAMA I

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

1. PROGRAMLAMAYA GİRİŞ

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

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

4- ALGORİTMA (ALGORITHM)

BİLGİSAYAR PROGRAMLAMA DERSİ

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

ALGORİTMA VE PROGRAMLAMA II

ENF182 Temel Bilgisayar Bilimleri Ö Ğ R. G Ö R. G Ö K H A N K U T L U A N A

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

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

Transkript:

ALGORĠTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Genel BakıĢ 2 1. Bölüm: Algoritmaya GiriĢ Problem Çözme Algoritma Nedir? Algoritma Gösterim ġekilleri Düz yazı Sözde kod AkıĢ Ģeması Mantıksal Yapılar ĠĢlemler ve Operatörler Algoritmada Kullanılan Terimler

Genel BakıĢ 3 2. Bölüm: Programlamaya GiriĢ Program Programlama IDE (Integrated Development Environment, TümleĢik GeliĢtirme Ortamı) Derleyici (Compiler) Yorumlayıcı (Interpreter) Bağlayıcı (Linker) ÇalıĢtırma (Execution) Hata Türleri Debug

1. BÖLÜM 4 ALGORĠTMAYA GĠRĠġ

5 YAZILIM MÜHENDĠSLĠĞĠ ÖĞRENCĠLERĠNĠN DĠKKATĠNE!!! SĠZLER BĠLGĠSAYARCI DEĞĠLSĠNĠZ SĠZLER PROGRAMCI DEĞĠLSĠNĠZ SĠZLER YAZILIM MÜHENDĠSLERĠSĠNĠZ ÇEVRENĠZDE MESLEĞĠNĠZĠ NE KADAR SAVUNURSANIZ MEZUN OLDUĞUNUZDA ĠTĠBARINIZ O KADAR YÜKSEK OLUR.

Problem Çözme 6 Ġnsanlar sürekli düģünür ve problem çözerler. Birçok problem, az ya da hiç düģünülmeden çözülebilir. Problem: Bugün evden çıkarken ne giymeliyim? Çözüm: Bunun için muhtemelen pencereden dıģarıya bakılır. Hava yağmurlu ise mevsime göre giyinmenin yanı sıra dıģarıya çıkarken bir de Ģemsiye alınması gerekir. Hava güneģli ve sıcak ise daha ince giyinilerek dıģarıya çıkılır. Böylece problemin çözümü kendiliğinden oluģturulan bir kararla sağlanır.

Problemi Kim Çözecek? 7 Bilgisayar, sadece yazılımcının kendisine söylediği Ģeyi nasıl yapacağını bilir. Sonuç olarak yazılımcı bilgisayara problemi nasıl çözeceğini bildirmelidir.

Problem Çözme (devam ) 8 Bilgisayara nasıl iģ yaptıracak, nasıl iletiģim kuracaksınız? Bilgisayarın dili makine dilidir. Onunla makine mantığı ile iletiģim kurabiliriz. Bir Program ile. Bilgisayarlar program olmadan çalıģmazlar. Bu da Algoritma (talimat, rutin, reçete) ile olur.

Problem Çözme Sırası 9 1. Problemi anlama (Understanding, Analyzing), 2. Bir çözüm yolu geliģtirme (Designing), 3. Algoritma ve program yazma (Writing), 4. Tekrar tekrar test etme (Reviewing) Polya, George (1957) How To Solve It, Princeton University Press, 2 nd Edition

Örnek: Bana bir Eczane programı lazım? 10 Problemi anlamak için küçük parçalara ayırmamız ve soru sormamız lazım. Sağlık sektöründe eczanecilik nasıl iģliyor? Ġlaç giriģ-çıkıģ süreçleri nasıl geçekleģiyor? Satacak ürünüm bitince Depodan nasıl mal alırım? MüĢterilere satıģ nasıl yapılıyor?? Reçetesiz ürünlerin satıģında fark var mı? Sağlık Bakanlığı e-recete entegrasyonu nasıl? Barkod okuma nasıl gerçekleģiyor? Soruları sordukça süreçleri anlayacaksınız. Belki de iģin yanlıģ yapıldığını göreceksiniz. Piyasada buna "At Gözlüğü Takmak" diyoruz.

Problem Çözme Farklı BakıĢ 11 Problemin tanımlanması Problem Çözme AĢaması Çözümün ana hatlarının ortaya konulması Ana hatlara bağlı bir algoritma geliģtirilmesi Algoritmanın doğruluğunun sıralanması Algoritma kodları belirli bir programlama diline dönüģtürülür. GerçekleĢtirim AĢaması Program bilgisayarda çalıģtırılır. Program belgelemesi ve bakımı yapılır.

Problem Çözme - Descartes 12 Problem çözmede, soruna hemen giriģmek yerine, dikkatli ve sistematik yaklaģım ilke olmalıdır. Problem iyice anlaģılmalı ve mümkün olduğu kadar küçük parçalara ayrılmalıdır. Descartes in "Discourse on Method" isimli kitabında problem çözme teknikleri Ģu dört madde ile özetlenir: 1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir Ģeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının. 2. KarĢılaĢtığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün. 3. Düzenli bir biçimde düģünün; anlaģılması en kolay olan Ģeylerle baģlayıp yavaģ yavaģ daha zor ve karmaģık olanlara doğru ilerleyiniz. 4. Olaya bakıģınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir Ģeyi dıģarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

Algoritma Nedir? 13 19.yy da İranlı Musaoğlu Horzumlu Mehmet (Alharezmi adını Araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu. Algoritma Alharezmi'nin Latince okunuşudur. Basit tanım: Belirli bir görevi yerine getiren sonlu sayıdaki iģlemler dizisidir. GeniĢ tanım: Verilen herhangi bir sorunun çözümüne ulaģmak için uygulanması gerekli adımların hiç bir yoruma yer vermeksizin açık, düzenli ve sıralı bir Ģekilde söz ve yazı ile ifadesidir. Algoritmayı oluģturan adımlar özellikle basit ve açık olarak sıralandırılmalıdır.

Algoritmaya Dair 14 Algoritmanın etkin bir Ģekilde oluģturulması Program yazma adımından çok daha önemlidir. Hazırlanan algoritmanın programlama diliyle yazılması iģin basit kısmıdır. Tasarladığınız algoritma iyi değilse, kullandığınız dilin hiçbir önemi yoktur (C, C++, C#, Java, Visual Basic vb.) Bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir. Bu da gösteriyor ki herhangi bir problemin çözümü için birbirinden farklı yüzlerce bilgisayar programı yazılabilir.

Algoritma Türlerine Örnekler 15 Arama algoritmaları Bellek yönetimi algoritmaları Bilgisayar grafiği algoritmaları Evrimsel algoritmalar Genetik algoritmalar Kriptografik algoritmalar Optimizasyon algoritmaları Sıralama algoritmaları Veri sıkıģtırma algoritmalar Veri Madenciliği algoritmaları ĠĢ Zekası algoritmaları Astronomi algoritmaları Dinamik Programlama algoritmaları Sağlık bilimleri algoritmaları Fizik algoritmaları Veritabanı algoritmaları ĠĢletim sistemi algoritmaları

16 Algoritmaların Sahip Olması Gereken Genel Özellikler GiriĢ/çıkıĢ bilgisi, Sonluluk, Kesinlik, Etkinlik, BaĢarım ve performans.

Algoritmaların Sahip Olması Gereken 17 Genel Özellikler (Devam ) GiriĢ/ÇıkıĢ Bilgisi Algoritmalarda giriģ ve çıkıģ bilgileri olmalıdır. DıĢarıdan gelen verilere giriģ bilgisi denir. Bu veriler algoritmada iģlenir ve çıkıģ bilgisini oluģturur. ÇıkıĢ bilgisi her algoritmada mutlaka vardır. Algoritmaların temel amacı giriģ bilgisini iģleyerek çıkıģ bilgisi oluģturmaktır. Ancak her durumda bir algoritmanın çıkıģ bilgisi istenenleri tam olarak karģılayamaz. Böyle durumlarda ilk algoritmanın ürettiği çıkıģ bilgisi baģka bir algoritmaya giriģ bilgisi olarak gönderilir ve böylece kullanıcı istediği bilgiye sahip olmuģ olur.

Algoritmaların Sahip Olması Gereken 18 Genel Özellikler (Devam ) Sonluluk Her türlü olasılık için algoritma sonlu adımda bitmelidir. Algoritma sonsuz döngüye girmemelidir.

Algoritmaların Sahip Olması Gereken 19 Genel Özellikler (Devam ) Kesinlik Her komut, kiģinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır. Algoritmanın her adımı anlaģılır, basit ve kesin bir biçimde ifade edilmiģ olmalıdır. Kesinlikle yorum gerektirmemeli ve belirsiz ifadelere sahip olmamalıdır.

Algoritmaların Sahip Olması Gereken 20 Genel Özellikler (Devam ) Etkinlik Yazılan algoritmalar etkin ve dolayısıyla gereksiz tekrarlardan uzak oluģturulmalıdır. Bu algoritmanın temel özelliklerinden birisidir. Ayrıca algoritmalar genel amaçlı yazılıp yapısal bir ana algoritma ve alt algoritmalardan oluģturulmalıdır. Böylece daha önce yazılmıģ bir algoritma daha sonra baģka iģlemler için de kullanılabilir. Buna örnek vermek gerekirse eğer elimizde, verilen n adet sayının ortalamasını bulmakta kullandığımız algoritma varsa bu algoritma, bir sınıfta öğrencilerin yaģ ortalamasını bulan bir algoritma için de kullanılabilmelidir.

Algoritmaların Sahip Olması Gereken 21 Genel Özellikler (Devam ) BaĢarım ve Performans Amaç donanım gereksinimi (bellek kullanımı gibi), çalıģma süresi gibi performans kriterlerini dikkate alarak yüksek baģarımlı programlar yazmak olmalıdır. Gereksiz tekrarlar ortadan kaldırılmalıdır. Bir algoritmanın performans değerlendirmesinde aģağıdaki temel kriterler göz önünde bulundurulur. Birim ĠĢlem Zamanı Veri Arama ve Getirme Zamanı Kıyaslama Zamanı Aktarma Zamanı

Örnek: Çay Demleme Algoritması 22 Mutfakta değilsen mutfağa git. Çayı kontrol et, çay yoksa? Markete git, çay al. Çaydanlığa bak, dolu değilse su doldur. Ocağı yak ve çaydanlığı ateģin üstüne koy. Suyun kaynamasını bekle. Su kaynadıktan sonra çayı bırak ve üstüne suyu dök. Yine demliğe biraz daha su ilave ederek bekle. Su kaynadığında biraz dinlendirerek ateģi kapat. Çay bardağını al çayını doldur. Çayına istediğin kadar Ģeker at (ya da atma) ve karıģtır. Geldiğin odaya geri dön. Ve çayı iç.

23 Yazılım GeliĢtirme YaĢam Döngüsünde Algoritma Nerede? Analiz Tasarım Algoritma ve AkıĢ ġemaları Kodlama Derleme (Compile) Bağlama (Link) ÇalıĢtırma (Execute) Test (Sınama) Bakım

Algoritma Gösterim ġekilleri 24 1. Düz yazı ile gösterim, 2. Sözde kod (pseudocode) ile gösterim, 3. AkıĢ Ģeması ile gösterim.

Düz Yazı ile Gösterim 25 Çözülecek problem, adım adım metin olarak yazılır. Her satıra numara verilir. BAġLA ile baģlanıp BĠTĠR ile sonlandırılır.

Örnek: Tahtaya Adını Yazma Algoritması 26 1. BAġLA 2. Yerinden kalk 3. Yönün tahtaya doğru mu? Hayırsa tahtaya dön Evetse 4. adıma git 4. Tahtaya doğru yürü 5. Tahtaya geldin mi? Hayırsa 4.adıma git Evetse 6. adıma git 6. Kalemi al 7. Adını yaz 8. BĠTĠR

Örnek: Tahtaya Adını Yazma Algoritması 27 Örneğin amacı, adımların tutarlılığını ve mantıksal sırasını göstermektir. Burada emirler, belli sorgulamalar yapılarak ve mantıksal bir sıra içinde verilmiģtir. Yerinden kalk emri verilmeden kiģiden yürümesi istenemez. Kalemi almadan adını yaz emrinin verilmesi doğru olmaz. Sorgulamalarla da iģlemi yapıp yapmadığı kontrol edilmiģtir.

Örnek: Tahtaya Adını Yazma Algoritması 28 Aslında bilgisayar bu tür iģleri yerine getiremez. Kullanıcılar bilgisayarlara belli girdiler verir. Onlar da programcının verdiği adımlara göre bu girdiler üzerinde matematiksel ve mantıksal iģlemler yaparak bir çıktı üretirler.

Sözde Kod (Pseudocode) ile Gösterim 29 Herkesin anlayabileceği ve rahatlıkla bir programlama diline çevrilebilecek basit komutlardan oluģan bir dildir. Sözde kodun temel iģlevi program geliģtirmeye geçmeden algoritmayı oluģturmak ve üzerinde tartıģabilmektir. Sözde kodlar, doğrudan konuģma dilinde ve programlama mantığı altında, eğer, iken gibi koģul kelimeleri ve > = < gibi ifadeler ile beraber yazılır. Programda kullanılacak elemanları temsil etmek üzere uygun isimler veya değiģkenler seçilir. Cebirsel notasyon ve kararlar kullanarak aritmetik iģlemler gerçekleģtir.

Örnek: Ġki Sayının Toplamı Algoritması 30 1. BAġLA 2. Birinci sayıyı gir 3. Ġkinci sayıyı gir 4. Ġki sayıyı topla 5. Sayıların toplam değerini yaz 6. BĠTĠR

Örnek: Ġki Sayının Toplamı Algoritması 31 Düz Yazı 1. BAġLA 2. Birinci sayıyı gir 3. Ġkinci sayıyı gir 4. Ġki sayıyı topla 5. Sayıların toplam değerini yaz 6. BĠTĠR Sözde Kod Toplam için T, birinci sayı için X, ikinci sayı için Y seç 1. BAġLA 2. X değerini OKU 3. Y değerini OKU 4. T = X + Y 5. T değerini YAZ 6. BĠTĠR

Örnek: Üçgenin Alanını Hesaplayan Algoritma 32 1. BAġLA 2. Taban değerini gir 3. Yükseklik değerini gir 4. Taban ile yüksekliği çarp ve sonucu ikiye böl 5. Çıkan sonucu yaz 6. BĠTĠR

Örnek: Üçgenin Alanını Hesaplayan Algoritma 33 Düz Yazı 1. BAġLA 2. Taban değerini gir 3. Yükseklik değerini gir 4. Taban ile yüksekliği çarp ve sonucu ikiye böl 5. Çıkan sonucu yaz 6. BĠTĠR Sözde Kod Taban için t, yükseklik için y, alan için A seç 1. BAġLA 2. t değerini OKU 3. y değerini OKU 4. A = (t * y)/2 5. A değerini YAZ 6. BĠTĠR

AkıĢ ġemaları ile Gösterim 34 Bir algoritmanın görsel Ģekiller ve sembollerle ifade edilmiģ haline «Akış Şemaları» adı verilir. AkıĢ Ģeması sembolleri ANSI (American National Standards Institute) standardı olarak belirlenmiģ ve tüm dünyada kullanılmaktadır. Algoritma doğal dille yazıldığı için herkes tarafından anlaģılamayabilir ya da baģka anlamlar çıkarılabilir. Ancak akıģ Ģemalarında her bir Ģekil standart bir anlam taģıdığı için farklı yorumlanması mümkün değildir.

AkıĢ ġeması ġekilleri 35 BAġLA BĠTĠR AkıĢ Ģemasının baģlangıç ve bitiģ yerlerini gösterir. BaĢlangıç simgesinden çıkıģ oku vardır. BitiĢ simgesinde giriģ oku vardır. Aritmetik iģlemler ve değiģik atama iģlemlerinin temsil edilmesi için kullanılır. DıĢarıdan bilgi giriģ ve çıkıģı için kullanılır. Belgeye, yazıcıya, ekrana çıktı için kullanılır.

AkıĢ ġeması ġekilleri 36 Kontrol ve karar verme iģlemlerini temsil eder. Döngü olduğunu gösterir. Oklar Ģemanın akıģ yönünü belirler. Bağlantı iģlemlerini temsil eder.

Örnek: Ġki Sayının Toplamı AkıĢ ġeması 37 Sözde Kod Toplam için T, birinci sayı için X, ikinci sayı için Y seç 1. BAġLA 2. X değerini OKU 3. Y değerini OKU 4. T = X + Y 5. T değerini YAZ 6. BĠTĠR BaĢla X ve Y değerlerini OKU T = X + Y T değerini YAZ Bitir

Mantıksal Yapılar 38 Bir bilgisayar programının geliģtirilmesinde kullanılan programlama dili ne olursa olsun bu programların akıģ Ģemalarında genel olarak üç basit mantıksal yapı kullanılır. 1. Sıralı Yapı 2. Karar Verme Yapısı 3. Tekrarlı Yapı

Mantıksal Yapılar: Sıralı Yapı 39 Sıralı yapı, hazırlanacak programdaki her iģlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir iģlem baģlayamaz. BaĢla ĠĢlem 1 ĠĢlem 2 ĠĢlem 3 Bitir

Mantıksal Yapılar: Karar Verme Yapısı 40 Birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi Ģartlarda hangi sıralı yapının seçileceğini belirler. Girdi Doğru KoĢul YanlıĢ ĠĢlem 1 ĠĢlem 2 Bitir

Mantıksal Yapılar: Tekrarlı Yapı 41 Algoritma içinde, bazı satırlar tekrarlı Ģekilde iģlem görüyorsa, bir döngü söz konusudur. Döngülere belirli bir koģul geçerli olduğu sürece devam eden eylemleri tanımlamak için baģvurulur. BaĢla Toplam+=sayac sayac++ Doğru Sayac <=3 YanlıĢ toplam Bitir

ĠĢlemler ve Operatörler 42 ĠĢlemler 3 e ayrılır: 1. Matematiksel ĠĢlemler Temel Aritmetik ĠĢlemler: Toplama, çıkarma, çarpma, bölme. Matematiksel Fonksiyonlar: Üstel, logaritmik, trigonometrik, hiperbolik vb. 2. KarĢılaĢtırma ĠĢlemleri 3. Mantıksal (Logic) ĠĢlemler

Matematiksel ĠĢlemler 43 ĠĢlem Toplama Çıkarma Çarpma Bölme Üs alma Gösterim a + b a - b a * b a / b a ^ b Matematiksel Yazım Bilgisayar Gösterim

KarĢılaĢtırma ĠĢlemleri 44 DeğiĢkenlerin büyük olma, küçük olma ve eģit olma durumlarını kontrol eden iģlemlerdir. ĠĢlem Sembolü Anlamı = EĢittir < > EĢit değildir > Büyüktür < Küçüktür >= Büyük eģittir <= Küçük eģittir

Mantıksal ĠĢlemler 45 «Ve, Veya, Değil» operatörleri hem matematiksel iģlemlerde hem de karar ifadelerinde kullanılır. Mantıksal ĠĢlem Ve Veya DeğiĢ Komut And Or Not VE bağlacı ile söylenmek istenen her iki koģulun da sağlanmasıdır. VE bağlacı ile bağlanmıģ önermelerden en az birinin yanlıģ olması sonucu yanlıģ yapar. VEYA bağlacı ile bağlanan koģullardan bir tanesinin doğru olması sonucu doğru yapar.

Mantıksal ĠĢlemler (devam ) 46 DEĞĠL bağlacı; doğruyu yanlıģ, yanlıģı doğru yapar. Örnek: Yazılım departmanında çalıģan erkek personellerden yaģı 30 un üzerinde olanları ekrana yazdır. Eğer; (percinsiyet = Erkek) VE (peryas > 30) ise ekrana yazdır. 1. KOġUL 2. KOġUL

Algoritmada Kullanılan Terimler 47 1. Tanımlayıcı 2. DeğiĢken 3. Atama 4. Sayaç 5. Döngü

Algoritmada Kullanılan Terimler: Tanımlayıcı 48 Programcı tarafından oluģturulur. 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. Ġngiliz alfabesindeki A-Z veya a-z arasındaki 26 harf ile 0-9 arası rakamlar kullanılabilir. Sembollerden sadece alt çizgi (_) kullanılabilir. Tanımlayıcı isimleri harfle veya alt çizgiyle baģlayabilir. Tanımlayıcı ismi, rakamla baģlayamaz veya sadece rakamlardan oluģamaz.

Algoritmada Kullanılan Terimler: DeğiĢken 49 Programın her çalıģtırılmasında, farklı değerler alan bilgi/bellek alanlarıdır. DeğiĢken isimlendirilmeleri, tanımlayıcı kurallarına uygun biçimde yapılmalıdır. Örnekler: Dikdörtgenin uzun kenarının aktarıldığı değiģken: uzun_kenar, UzunKenar, uzunkenar Bir öğrenciye ait ismin aktarıldığı değiģken: isim, ogrenci_isim, ogrenciisım

Algoritmada Kullanılan Terimler: Atama 50 DeğiĢkenlere değer aktarma iģlemidir. DeğiĢkenlere atanan bu değerler daha sonra tekrar kullanılabilirler. DeğiĢken = Değer Sağdaki Değer sonucu DeğiĢken e aktarılır. Bu durumda DeğiĢken in bir önceki değeri varsa silinir. i = 0

Algoritmada Kullanılan Terimler: Sayaç 51 Bazı iģlemlerin belirli sayıda yaptırılması ve üretilen değerlerin sayılması gerekebilir. Bu tür sayma iģlemlerine algoritmada Sayaç adı veriler. Sayaçlar da birer değiģkendir. Sayac = Sayac + 1 Bu iģlemde Sayac değiģkenine 1 eklenmekte ve oluģan sonuç yine kendisine yani Sayac değiģkenine aktarılmaktadır.

Algoritmada Kullanılan Terimler: Döngü 52 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. Örneğin; 1 ile 1000 arasındaki tek sayıların toplamını hesaplayan programda T=1+3+5. yerine 1 ile 1000 arasında ikiģer artan bir döngü kurulu ve döngü değiģkeni ardıģık toplanır.

Örnek: 1-5 arasındaki sayıların ekrana yazdırılması 53 1. BAġLA 2. Sayac = 1 3. Sayac değerini YAZ 4. Sayac = Sayac + 1 5. Eğer Sayac < 6, GĠT 3 6. BĠTĠR BaĢla Sayac = 1 Sayac YAZ Sayac = Sayac + 1 Evet Sayac <6 Hayır Bitir

Örnek: 1-5 arasındaki sayıların ekrana yazdırılması 54 1. BAġLA 2. Sayac = 1 3. Sayac değerini YAZ 4. Sayac = Sayac + 1 5. Eğer Sayac < 6, GĠT 3 6. BĠTĠR DeğiĢken Ġzleme Tablosu Eski Sayac Yeni Sayac Ekran 1 2 1 2 3 2 3 4 3 4 5 4 5 6 5

Örnek: 1-10 Arasındaki Tek Sayıların Toplamı 55 1. BAġLA 2. Sayac = 1 3. Toplam = 0 4. Eğer Sayac > 10, GĠT 8 5. Toplam = Toplam + Sayac 6. Sayac = Sayac + 2 7. GĠT 4 8. BĠTĠR Eski Sayac Eski Toplam Yeni Sayac Yeni Toplam 1 0 3 1 3 1 5 4 5 4 7 9 7 9 9 16 11 DeğiĢken Ġzleme Tablosu

Örnek: 1-10 Arasındaki Tek Sayıların Toplamı (AkıĢ ġeması) 56 1. BAġLA 2. Sayac = 1 3. Toplam = 0 4. Eğer Sayac > 10, GĠT 8 5. Toplam = Toplam + Sayac 6. Sayac = Sayac + 2 7. GĠT 4 8. BĠTĠR Hayır BaĢla Sayac = 1 Toplam = 0 Sayac >10 Toplam = Toplam +Sayac Sayac = Sayac + 2 Evet Bitir

KAYNAKLAR 57 Okt. Tuna GÖKSU Bilgisayar ve Programlama Sunumu N. Ercil Çağıltay ve ark., C DERSĠ PROGRAMLAMAYA GĠRĠġ, Ada Matbaacılık, ANKARA; 2009. Milli Eğitim Bakanlığı "Programlamaya GiriĢ ve Algoritmalar Ders Notları", 2007 http://www.algoritmaveprogramlama.com

58 ĠYĠ ÇALIġMALAR Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr