PROGRAMLA MA DİLLERİ I

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

4- ALGORİTMA (ALGORITHM)

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

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

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

BİLGİSAYAR PROGRAMLAMA MATLAB

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

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

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

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

Algoritmalar ve Programlama. Algoritma

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

3. Bölüm Algoritmalar

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

BLG 1306 Temel Bilgisayar Programlama

Algoritmanın Hazırlanması

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

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

ALGORİTMA VE PROGRAMLAMA I

KODLAMAYA HAZIRLIK MODÜLÜ 1. YAZILI SINAV ÇALIŞMA SORULARI VE MODÜL ÖZETİ

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

Algoritma ve Programlamaya Giriş

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

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

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.

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

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

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


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

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

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

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

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

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

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

Bilgisayarda Programlama. Temel Kavramlar

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

PROGRAMLAMA DİLLERİ I

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

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

ÖLÜM 1- GİRİŞ Visual Basic

Dr. Musa KILIÇ Öğretim Görevlisi

Algoritma ve Akış Diyagramları

Bilgisayar Programı Nedir?

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

bunları biliyor muydunuz? primo Bill Gates Mark Zuckerberg oyuncak robot codie code.org bulmacalar NEDIR

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

1. PROGRAMLAMAYA GİRİŞ

Yazılım Mühendisliği 1

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

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

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

Algoritma ve Akış Diyagramları

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Đ

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

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Algoritma ve Akış Şemaları

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

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

BÖLÜM 2: ALGORİTMALAR

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

Genel Programlama I

Program Nedir?(1) Programlamaya Giriş

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

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Algoritma kelimesinin kökeni:

5- AKIŞ DİYAGRAMLARI (FLOW- CHART) M.İLKUÇAR - 1

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

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

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

ALGORİTMA VE AKIŞ ŞEMALARI

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

Basit Algoritma Akış Diagramı Örnekleri

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

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

ALGORİTMA ÖRNEKLERİ ve YAZILIYA HAZIRLIK SORULARI

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

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

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.

C++ Dilinde Bazı Temel Algoritmalar

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

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

PROGRAMLAMA TEMELLERİ

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

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

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

C++ Dersi: Nesne Tabanlı Programlama

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

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

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

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

Transkript:

PROGRAMLA MA DİLLERİ I Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Ders İzlencesi Öğr. Gör. M. Mutlu YAPICI Hafta 1. Hafta 2. Hafta 3. Hafta 4. Hafta 5. Hafta 6. Hafta 7. Hafta 8. Hafta 9. Hafta 10. Hafta 11. Hafta 12. Hafta 13. Hafta 14. Hafta Modüller/İçerik/Konular

Bilgisayar ve Programlama Programlama Temelleri, dersinin iyi anlaşılabilmesi için bu dersin temelini oluşturan kavramların iyi bilinmesi gerekir. Bilgisayarın tanımı ve çalışma mantığı Programın tanımı ve çeşitleri Programlama Dilleri Programlamanın Aşamaları Algoritma Öğr. Gör. M. Mutlu YAPICI Akış şemasının (çizelgesinin, diyagramının) düzenlenmesi

Ders Kazanımları Bu bölümü Bitirdiğimizde, Bilgisayar ve çalışma mantığını Programlama ve programlama çeşitlerini, Programlamanın aşamalarını, Algoritmanın ne olduğunu ve Algoritma mantığını, Temel algoritma kavramlarını, öğrenmiş olacaksınız.

Bilgisayar Nedir? Bilgisayar, kullanıcıdan aldığı verilerle mantıksal ve aritmetiksel işlemleri yapan, yaptığı işlemlerin sonucunu saklayabilen, sakladığı bilgilere istenildiğinde ulaşılabilen elektronik bir makinedir. Bu işlemleri yaparken veriler girilir ve işlenir. Ayrıca,istenildiğinde yapılan işlemler depolanabilir ve çıkısı alınabilir

Bilgisayar Nedir? Giriş: Kişi tarafından veya bilgisayar tarafından sağlanan verilerdir. Bu veriler, sayılar, harfler, sözcükler, ses sinyalleri ve komutlardır. Veriler giriş birimleri tarafından toplanır. İşlem: Veriler insanların amaçları doğrultusunda, programın yetenekleri ölçüsünde işlem basamaklarından geçer. Bellek: Verilerin depolandığı yerdir. Giriş yapılan ve işlenen veriler bellekte depolanır. Çıkış: Bilgisayar tarafından işlem basamaklarından geçirilerek üretilen yazı, resim, tablo, müzik, grafik, görüntü, vb.nin ekrandan ya da yazıcı, hoparlör gibi farklı çıkış birimlerinden alınmasıdır.

Bilgisayar Nasıl Çalışır? Bilgisayarın nasıl çalıştığını öğrenmek için onun bilgileri nasıl kullandığını anlamak gerekir. Harfler ve rakamlar bilgisayarda kodlar şeklinde ifade edildikten sonra kullanılır. Bilgisayarlarda kodlar elektrik olarak voltajın olup olmaması ile ifade edilir. Voltaj var, lamba yanıyorsa 1; voltaj yok, lamba yanmıyorsa 0 kodlarını alır. İki durumlu olan bu kodlamaya "ikilik sistem" denir. Bilgisayara tuşlardan verilen her bilgi 1 ve 0 kodlarına çevrilir. Her 0 ve 1, bit olarak; sekiz bitlik grup ise byte olarak tarif edilir. Bilgisayar, işlemlerini ikilik sayı sistemi ile yapar. İşlemler çok sade ve basit olmakla beraber çok hızlıdır.

Bilgisayar Nasıl Çalışır? Bilgisayar Aritmatiksel ve Mantıksal işlemleri ALU birimi sayesinde gerçekleştirir. Bilgisayar sadece matematiksel verileri işleyip saymakla kalmaz aynı zamanda mantısal karşılaştırma yaparak karar da verir. Bu işlemler için boolean matematiği denilen matematik kurallarını kullanır. Çeşitli şartlara göre bilgisayar, EVET, HAYIR, VE,VEYA, DEĞİL gibi kararlar alabilir.

Bilgisayar ve İnsan Öğr. Gör. M. Mutlu YAPICI Aslında insanların icat ettiği ya da geliştirdiği her şeyde olduğu gibi bilgisayarlarda da canlılara benzer yapılar bulunmaktadır.

Makine Dili (En Düşük Seviye) Makine dili mikroişlemci ya da mikrodenetleyici gibi komut işleme yeteneğine sahip entegrelerin işleyebilecekleri komutlardan ve buna uygun söz diziliminden oluşan dile verilen addır. Makine dili, işlemcinin verilen komutlar doğrultusunda çalıştırılmasını sağlayan ve işlemci mimarisine göre değişen en alt seviyedeki programlama dilidir.

Makine Dili (En Düşük Seviye) Bu dil sadece 0 ve 1 ikililerinin anlamlı kombinasyonlarından meydana gelmektedir. Bu sebeple anlaşılması çok güçtür.

Makine Dili (En Düşük Seviye) Sonuç olarak bilgisayar programı hangi dilde olursa olsun formatı makine diline çevrilmesi gereklidir. Her emrin yerine getirilmesi 1 cycle denilen 4 ana kısımdan oluşur. Fetch: Bir sonraki emri hafızadan getir. Decode: Emrin ne demek istediğini çöz. Execute: Emir yerine getirilir, işlem yapılır. Store: Sonucu sakla.

Sayı Sistemleri Bilgisayar ortamında dört çeşit sayı sistemi kullanılmaktadır. Bunlar; İkilik sayı sistemi(binary) Sekizlik sayı sistemi(oktal) Onluk sayı sistemi(desimal) Onaltılık sayı sistemi(heksadesimal) Sekizlik sayı sisteminde en büyük sayı 7 dir. Onaltılık sayı sisteminde ise 9 dan sonra A,B,C,D,E,F olmak üzere sayılar yerine geçen harfler kullanılır. (290A3DC) 16 Bizi en çok ilgilendirenleri ise günlük hayatta kullandığımız onluk sayı sistemi ve bilgisayarlarda kullandığımız ve makine dili olarak bildiğimiz ikili sayı sistemidir. (10101101) 2

Programlama Nedir? Öğr. Gör. M. Mutlu YAPICI Programlama ya da diğer adıyla yazılım, bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir. Diğer bir tanım verecek olursak programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir. Programlama, bir proglamlama dilinde yapılır. Bu programlama dili Java ve C# gibi yüksek seviyede bir dil olabileceği gibi C, assembly ve bazı durumlarda makine dili de olabilir. Yazılan kaynak kodu genellikle bir derleyici ve bağlayıcı yardımıyla belirli bir sistemde çalıştırılabilir hale getirilir. Ayrıca kaynak kodu, bir yorumlayıcı yardımıyla derlemeye gerek duyulmadan satır satır çalıştırılabilir. Derleyici, yazılan programları okuyup içerisinde mantıksal veya yazınsal hatalar olup olmadığını bulan, bulduğu hataları kullanıcıya göstererek programın düzeltilmesine yardım eden, hata yoksa programı çalıştırıp sonucunu gösteren platformdur. Programcılar genelde programlamayı gerçek hayata benzetirler. Bir program yazmak veya bir problemi çözmek için öncelikle komutları unutmak ve çözümü gerçek hayatta yapıyormuş gibi düşünmek gerekir onlara göre. Komutlar sadece araçtır. Programlamaya başlayanların kendi dilleriyle Merhaba Dünya (Genelde : Hello World!) yazmalarıyla başlar.

Programlama Dilleri Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Şu ana kadar 150 den fazla programlama dili geliştirilmiştir. Bunlardan bazıları Pascal, Basic, C, C#, C++, Java, Cobol, Perl, Python, Ada, Fortran, Delphi ve 1C Enterprise'dır.

Neden Programlama Dili? Peki ama bilgisayara komut vermek için bir programlama diline gerek var mı? Temelde bilgisayarlar 1 ve 0 lardan oluşan ikilik sayı sistemindeki dili anlarlar. Ancak bu dilde bir programın yazılması çok zordur. Hata yapma olasılığı daha çoktur. Yazılımı geliştirmesi çoooook uzun zaman alır. Bu sebeple, Programcılar 1 ve 0 ile program yazma yerine Assembly dili ni geliştirmişlerdir, bilgisayarın bu yazılanlarla ilgili hiçbir fikri yoktur. Bu sebeple programcılar assembly dil komutlarını makine dili ne çeviren programlar yazmışlardır. Bu programlara makine dili çeviricisi - assembler denir. Böylece assembly dili ile yazılmış bir kod, bilgisayarın anlayabileceği makine diline dönüştürülür.

Assembly Dili Öğr. Gör. M. Mutlu YAPICI

Diğer Programlama Dilleri Programcılar donanıma erişimi daha kolay olan, okunaklı, yazımı ve düzenlemesi kolay olan bir dile ihtiyaç duymuşlardır. Bunun üzerine C (1972 doğum yılı) taşınabilir dili geliştirilmiştir. Cobol (1959) ve Fortran (1957) gibi birçok diller de vardır ama hala günümüzde yaygın olarak kullanılan C dili olmuştur. İnsanların konuşma diline yakın olan dillere yüksek seviye dil, donanıma yakın dillere de düşük seviye dil denilmiştir. Yüksek ve düşük seviyeli diller kendi içinde avantaja ve dezavantaja sahiptir.

Yüksek Seviyeli Dillerin Özellikleri Yüksek seviyeli dillerin genel özelliklerini şöyle özetleyebiliriz: Makine diline göre daha şişkin ve yavaş kod meydana getirirler. Tüm sistem kaynaklarına ulaşılamayabilir, Bir derleyici gereklidir. Kısa zamanda program yazmaya başlanır. Öğrenme ve ustalaşma için geçen zaman fazla değildir. Yanlışlıkla sistem kaynaklarının bozulmaması için kalkanları vardır. Okuması ve değiştirmesi kolaydır. Başka bilgisayar çeşitlerinde de çalışabilirler, yani taşınabilirler

Programlamaya Giriş Öğr. Gör. M. Mutlu YAPICI İyi bir programcı nasıl olmalıdır? Sadece programı yazıyor olmak iyi bir yazılımcı olduğunuz anlamına gelir mi? (OBS Sistemi) Programlamaya başlamadan önce yapılması gerekenler nelerdir? İlk yapılması gereken programı yazacağımız dili belirlemek midir?

Programlama Aşamaları Programlamada (veya problem çözmede) her programcı tarafından farklı yaklaşımlar izlemekle birlikte, bütün programcılar tarafından genellikle şu programlama aşamalarını izlemektedir: 1. Problemin tanınması (Girdi ve Çıktıların Belirlenmesi) 2. Çözüm yönteminin belirlenmesi 3. Algoritmanın geliştirilmesi 4. Akış şemasının (çizelgesinin, diyagramının) düzenlenmesi 5. Programın el ile çalıştırılıp denenmesi 6. Uygun programlama dilinin seçilmesi 7. Programın kodlanması 8. Programın bilgisayar ile çalıştırılıp sınanması

Yazılım Yaşam Döngüsü Temel Adımları Öğr. Gör. M. Mutlu YAPICI 1. Planlama 2. Analiz 3. Tasarım Personel ve donanım gereksinimlerinin çıkarıldığı, fizibilite çalışmasının yapıldığı ve proje planının oluşturulduğu aşamadır. Sistem gereksinimlerinin ve işlevlerinin ayrıntılı olarak çıkarıldığı aşama. Var olan işler incelenir, temel sorunlar ortaya çıkarılır. Belirlenen gereksinimlere yanıt verecek yazılım sisteminin temel yapısının oluşturulduğu aşamadır. mantıksal; önerilen sistemin yapısı anlatılır (akış şemaları) fiziksel; yazılımı içeren bileşenler ve bunların ayrıntıları (ekran tasarımları) 4. Gerçekleştirim 5. Bakım Kodlama, test etme ve kurulum çalışmalarının yapıldığı aşamadır. Hata giderme ve yeni eklentiler yapma aşaması (teslimden sonra).

Algoritma Nedir? Algoritma sözcüğü, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi adındaki İran'lı Müslüman 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ı ve aynı zamanda ilk حساب الجبر و المقابلة "( ( algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa'da çok ilgi görür. 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. Algoritma, 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. Başlangıç noktası ve bitiş noktası belirli ve açık olmalıdır. Programın çözümüne ilişkin her türlü durumu kapsamalıdır. Aynı tür problemler içinde geçerli olmalıdır.

Sahte Kod ve Algoritma Yazma Programlama dili seçseniz bile, hemen kod yazımına geçemezsiniz. Pseudocode sahte kod denilen kodlama ile programın işlemleri yazılır. Sahte kod kurduğunuz mantıktaki kaçakları bulmaya yarar. Örneğin; Eğer bir şehre füze göndermek isterseniz adımlarınız şu şekilde olabilir: 1. Hedefin koordinatlarını al 2. Füzenin şu anki koordinatını al 3. Hedefi vurması için gerekeni hesapla 4. Füzeyi ateşle 1. adımın daha da gelişmiş hâli şöyle olabilir: 1.a. Füze teknisyeninden hedef koordinatları edin 1.b. Hedef koordinatların geçerli olduğundan emin ol 1.c. Hedef koordinatları hafızaya kaydet 1.a. maddesini daha alt basamaklara bölebiliriz. 1.a.i. Koordinattan emin ol 1.a.ii. Hedef füzenin atış uzaklığı içinde mi, kontrol et 1.a.iii. Hedef dost bölge mi, kontrol et

Sahte Kod ve Algoritma Yazma Öğr. Gör. M. Mutlu YAPICI Bu üstten aşağı top down tasarım ile kaba bir taslak gittikçe ayrıntılı şekilde parçalanır. Genelden özele doğru işlemleri belirleriz. Bu zaman kaybı gibi görülebilir. Plansız olarak programınızı yazmaya başlayabilirsiniz. Ama bu arabaya atlayıp Ankara dan Elmadağ a gitmek için kuzeye doğru gitmeye benzer. Sahte kodlar programınızın ana hatlarını belirtir. Böylece bilgisayarın başaracağı iş için gerekli tüm veriyi toplamış olursunuz. Büyük bir programın temel adımlarının olduğu algoritma makro seviye olarak isimlendirilirken, detayların algoritmalarına mikro seviye denir. Makro seviye içinde bir çok mikro seviye algoritma vardır. İlk kez program yazan kişiler detay kısımlarını genelde görmezden gelirler. Üzerinde çok düşünülmeden yazılan program, her ihtimale uygun cevap veremeyeceği için hatalı çalışır. Eğer plansız olarak program yazarsanız, kaçınılmaz son, kısa süre sonra kod çöplüğü olabilir. Programı alan kişi nasıl kod yazdığınızı umursamasa da, böceklerle (bug) dolu bir yazılımı, siz olsanız kullanır mıydınız?

Sahte Kod ve Algoritma Yazma Sahte kod ve algoritma yazarken programınıza ait aşamaları 3 temel öğeye ayırmanız kolaylık sağlayacaktır. Bunlar : Giriş: Bilgisayarın üzerinde çalışacağı veri kullanıcı tarafından girilir. İşlem: Bilgisayar girilen bilgiyi işler. Çıkış: Bilgisayar insanların anlayacağı şekilde ekrana sonucu gösterir. Bazı temel sahte kod komutları şunlardır: Başla Bitir : Sahte kodun ilk satırı başlangıç ve son satırı bitişi için yazılır. Oku: Kullanıcı girişi için yazılır. Öğr. Gör. M. Mutlu YAPICI Yaz : Kullanıcıya bilgi veya sonuç göstermek için yazılır. Eğer İse Değilse : Şartlara göre akışın değişmesinde kullanılır

Sahte Kod ve Algoritma Yazma Örnek: Giriş: a. Ürünün adını al. b. Ürünün miktarını al. c. Bir dosyadan ürünün fiyatını oku. İşlem: a. Ürünün toplam fiyatını hesapla. b. Gerekli indirimi yap. Çıkış: a. Toplam satış değerini yaz. Örnekteki adımları sahte kod olarak alt alta toplarsak: 1. Başla. 2. Ürünün adını al. 3. Ürünün miktarını al. 4. Bir dosyadan ürünün fiyatını oku. 5. Ürünün toplam fiyatını hesapla. 6. Gerekli indirimi yap. 7. Toplam satış değerini yaz. 8. Bitir.

Algoritma Örnekleri Örnek1: Örneğimiz bir öğrencinin evden çıkıp okula giderken izleyeceği yolu ve okula girişinde ilk yapacaklarını tanımlamaktadır. Çözüm: Evden dışarıya çık. Otobüs durağına yürü. Durakta gideceğin yöndeki otobüsü bekle. Otobüsün geldiğinde otobüse bin. Biletini bilet kumbarasına at. İneceğin yere yakınlaştığında arkaya yürü. İneceğini belirten ikaz lambasına bas. Otobüs durunca in. Okula doğru yürü. Okul giriş kapısından içeriye gir. Sınıf arkadaşlarınla selamlaş. Sırana otur. Öğretmenin gelmesini bekle. Aferin Akıllı Çocuk

Algoritma Örnekleri Öğr. Gör. M. Mutlu YAPICI Örnek2: İki sayıyı toplamak için gerekli programa ait algoritmanın oluşturulması Çözüm: A1 : Başla A2 : Birinci sayıyı gir. A3 : İkinci sayıyı gir. A4 : İki sayının toplamını yap. A5 : Toplamın değerini yaz. A6 : Bitir.

Algoritma Örnekleri Öğr. Gör. M. Mutlu YAPICI Bir önceki soruyu daha programsal çözelim Çözüm: A1 : Başla A2 : Sayısal sayı1, sayı2, sonuc A3 : Yaz; İki sayı giriniz A4 : Oku; sayı1 A5 : Oku; sayı2 A6 : sonuc = sayı1 + sayı2 A7 : Yaz; Sonuç: &sonuc A8 : Bitir

Algoritma Örnekleri Örnek3: İki sayının ortalamasını bulmak için gerekli programa ait algoritmanın oluşturulması Çözüm: A1 : Başla A2 : Sayısal sayı1, sayı2, sonuc,toplam A3 : Yaz; İki sayı giriniz A4 : Oku; sayı1 A5 : Oku; sayı2 A6 : toplam = sayı1 + sayı2 A7 : sonuc= toplam/2 A8 : Yaz; Ortalaması : &sonuc A9 : Bitir

Algoritma Örnekleri Örnek4: Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması (sözcükler yerine kısaltma kullanalım) Çözüm: Dikdörtgenin kısa kenarı : a Dikdörtgenin uzun kenarı : b Dikdörtgenin alanı : alan Algoritma A1 : Başla A2 : Sayısal a, b, alan A3 : Yaz; a kenarının değerini gir A4 : Oku; a A5 : Yaz; b kenarının değerini gir A6 : Oku; b A7 : alan=a*b A8 : Yaz; Alan : &alan A9 : Bitir

Algoritma Örnekleri Örnek4: Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması Kenar uzunlukları negatif olarak girildiği durumda veri girişi tekrarlanacaktır. Çözüm: Dikdörtgenin kısa kenarı : a Dikdörtgenin uzun kenarı : b Dikdörtgenin alanı : alan Algoritma A1 : Başla A2 : Sayısal a, b, alan A3 : Yaz; a kenarının değerini gir A4 : Oku; a A5 : Eğer a<0 ise A4 e git. A6 : Yaz; b kenarının değerini gir A7 : Oku; b A8 : Eğer b<0 ise A4 e git. A9 : alan=a*b A10 : Yaz; Alan : &alan A11 : Bitir

Akış Diyagramları Akış diyagramları görsel olarak basitçe bir problemin akışının gösterimidir. Microsoft firmasının Visio, Word, Powerpoint gibi birçok program ile bu grafikleri hazırlayabilirsiniz. ANSI (American National Standards Institute), akış diyagramları ile ilgili bazı tavsiyelerde bulunmuştur: Akış diyagramındaki standart sembollerle programın mantığı sunulmalıdır. Akış diyagramı basit, açık ve kolay takip edilebilir olmalıdır. Her akış diyagramının bir adet başlangıç ve bitiş noktası bulunmalıdır. Akış diyagramının takip yönü yukarıdan aşağıya, soldan sağa doğru olmalıdır. Veri girişleri mantıklı bir sırada listelenmelidir. Başlangıç ve bitiş sembollerinde tek hat kullanılmalıdır. Akış diyagramı çok karmaşık hâle gelince, bağlantı noktaları ve alt program kullanılmalıdır. Test verisi ile şema denenmelidir. Değerleri bir tabloya aktarılmalıdır.

Akış Diyagramı Şekilleri Şekil Görevi Başla ve ya Bitir (Start ve Stop) Her programın bir başlangıç ve bir bitişi vardır Giriş veya çıkış (input ve output) Kullanıcı etkileşimi için gereklidirler İşlem, hesaplamalar (process, calculation) Bilgisayarın asıl yaptığı işler burada gerçekleşir Karar, eğer (decision, if) Program iki ihtimale göre akışını değiştirir, her ihtimalin ne işlem yapacağını göstermeyi unutmayınız Alt program, fonksiyon (sub program, function) Akış diyagramı karmaşık hale gelince, tekrarlanan belli Kısımlarını alt program haline getirebilirsiniz Döngü (for, cycle) Başlangıç, artım ve sonlanma şartlarınıiyi belirleyiniz

Akış Diyagramı Şekilleri Şekil Görevi Akış çizgisi (flowline) Genellikle yukarı ve sola doğru çizilmezler Birleştirici, bağlantı noktası(connector) Birçok sayfadan oluşan akış şemalarını birbirine bağlar Dosya (file, storage) Saklanması gereken bilgileri kaydederiz Kullanıcıya yansıtılacak bilgileri belirtmek için kullanılır.

Akış Şeması Örnekleri Öğr. Gör. M. Mutlu YAPICI Örnek3: İki sayının ortalamasını bulmak için gerekli programa ait algoritmanın oluşturulması

Akış Şeması Örnekleri Öğr. Gör. M. Mutlu YAPICI Örnek4: Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması Kenar uzunlukları negatif olarak girildiği durumda veri girişi tekrarlanacaktır.

Akış Diyagramları Öğr. Gör. M. Mutlu YAPICI

Akış Diyagramları Öğr. Gör. M. Mutlu YAPICI

Akış Diyagramları Öğr. Gör. M. Mutlu YAPICI

Algoritma Soruları 1. Girilen sayının pozitif, negatif veya sıfıra eşit olduğunu gösteren algoritmayı hazırlayınız. 2. Girilen sayının faktöriyelini hesaplayan algoritmayı hazırlayınız. 3. Ekrandan girilen iki sayının çarpımını toplama yöntemiyle bulan programa ait algoritmayı sahte kodlarla yazınız 4. Girilen üç sayıdan en büyüğünü bulup ekrana yazan algoritmayı hazırlayınız. 5. Bir öğrenciye ait vize ve final notlarının ortalamasını hesaplayan ve ortalamaya göre ekrana Geçti Kaldı yazan algoritmayı hazırlayınız (Not: Ortalama hesaplanırken vizenin %40, finalin %60 ı alınacak, geçme notu 45 dir.) 6. Bir komisyoncu sattığı mallardan fiyatı 50 TL ye kadar olanlardan %3, daha fazla olanlardan ise %2 komisyon almaktadır. Klavyeden girilen 5 malın komisyonlarını bularak toplam komisyonu hesaplayan algoritmayı hazırlayınız. algoritmayı hazırlayınız. 7. Klavyeden 0 girilene kadar girilen tüm sayıların karelerinin toplamını bulan programın algoritma ve akış şemasını çiziniz.