Programlama dili Nedir?

Benzer belgeler
Ö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 dilleri. Programlama dili: İnsan-makina ve makina- makina arasındaki iletişimi sağlar.

ALGORİTMA VE AKIŞ ŞEMALARI

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

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

Bilgisayar Programı Nedir?

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

Bilgisayarda Programlama. Temel Kavramlar

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

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

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

Dr. Musa KILIÇ Öğretim Görevlisi

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

Algoritmanın Hazırlanması

Algoritmalar ve Programlama. Algoritma

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

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

4- ALGORİTMA (ALGORITHM)

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

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

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

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

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

BİLGİSAYAR PROGRAMLAMA MATLAB

Program Nedir?(1) Programlamaya Giriş

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

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

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

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

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

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

Algoritma ve Programlamaya Giriş

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


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

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

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

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

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

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

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

Algoritma ve Akış Diyagramları

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

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

Öğr. Gör. Serkan AKSU 1

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Genel Programlama I

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

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

BÖLÜM 2: ALGORİTMALAR

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

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

BLG 1306 Temel Bilgisayar Programlama

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

PROGRAM AKIŞ DİYAGRAMLARI

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

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Đ

BLG 1306 Temel Bilgisayar Programlama

Bilgisayar Programlama. 1.Hafta

BİL-142 Bilgisayar Programlama II

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

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

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

Algoritma ve Akış Diyagramları

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

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

İÇ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İLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ. Yrd.Doç.Dr. Emel ARSLAN

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

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

ALGORİTMA ÖRNEKLERİ ve YAZILIYA HAZIRLIK SORULARI

5. PROGRAMLA DİLLERİ. 5.1 Giriş

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

BİLGİSAYAR ORGANİZASYONU

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.

Basit Algoritma Akış Diagramı Örnekleri

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

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

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

Programlama Temelleri

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

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

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ

Programlama Dilleri I

Bahar. BM 211 Programlama Dilleri 3 1

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

Yazılım Mühendisliği 1

C++ Dilinde Bazı Temel Algoritmalar

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Bilgisayar Programlama Dilleri

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

C SHARP UYGULAMA ÇALIŞMASI

Transkript:

DERS İÇERİĞİ Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve karakterler Pointerler Fonksiyonlar Yapılar Matematik ve zaman fonksiyonları Ekran ve dosya giriş/çıkış işlemleri C# ile masaüstü programcılığı C# ile web tabanlı programlama

Programlama dili Nedir?

Programlama dili: İnsan-makina ve makinamakina arasındaki iletişimi sağlar.

Programlama dili programcının programı yazarken kullandığı özel bir dildir. Programcı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.

PROGRAMLAMA DİLLERİNİN SINIFLANDIRILMASI 1. Seviyelerine göre 2. Çalıştıkları ortama göre 3. Uygulama alanlarına göre

Seviyelerine göre programlama dillerinin sınıflandırılması Çok yüksek seviyeli diller VisualBasic, VB.NET, Foxpro, Access... Yüksek seviyeli diller Pascal,Basic,Fortran Orta seviyeli diller C,C++, C#, Java, ADA... Düşük seviyeli diller Assembly... Makina dilleri 1 ve 0'lardan oluşur...

Makina kodlarına yakın diller düşük seviyeli, insanların kolay anlayıp kullanabileceği diller ise yüksek seviyeli programlama dilleridir

Makine Dili Makine dili bilgisayarın doğal dilidir ve bilgisayarın donanımsal tasarımına bağlıdır. Makine dilinde yazılan kodlar doğrudan makinanın işlemcisine, donanım parçalarına verilen komutlardır. Bilgisayarların geliştirilmesiyle birlikte onlara iş yaptırmak için kullanılan ilk diller de makine dilleri olmuştur. Bu yüzden makine dillerine 1. kuşak diller de denebilir.

Sembolik Makine Dili Sembolik makine dilleri (Assembly languages) yalnızca 1 ve 0 dan oluşan makine dilleri yerine İngilizce bazı kısaltma sözcüklerden oluşuyordu. Bunları çalıştırmak için yorumlayıcıya ihtiyaç vardır. Peki nedir Yorumlayıcı?

Yorumlayıcı (Interpreter) Sembolik dilde yazılan bir programın çalıştırılma aşamasında başka bir program yardımıyla sembolik dilin komutları, bilgisayar tarafından komut komut makine diline çevrilir ve oluşan makine kodu çalıştırılır. Bu yardımcı programa yorumlayıcı (interpreter) denir. Ancak bu işlemin her defasında yeniden yapılması gerekir ve buda programın çalışmasını yavaşlatır.

Derleyici (Compiler) Programların yavaşlamasını azaltmak için bir fikir ortaya atıldı Program her çalıştırılışında değil sadece ilk çalıştırılışında makina diline çevrilsin, sonra öyle kaydedilsin, böylece bilgisayar yavaşlamasın; Böylece insanın anlayabileceği basit bir algoritmik dili, makinanın anlayabileceği dile çeviren bir program yazmış ve bu programa derleyici denmiştir.

Yazılan programlar derleyici tarafından makine koduna dönüştürülmüştür Ve makine kodu eski hızından birşey kaybetmeksizin tam hızla çalışmıştır ANCAK En basit işlemlerin bile bilgisayara yaptırılması için bir çok komut gerekmesi, programlama sürecini daha hızlı bir hale getirmek için arayışları başlatmıştır. Bunun sonucunda da daha yüksek seviyeli programlama dilleri geliştirilmeye başlanmış ve Assembly diller 2. kuşak diller olarak tarihte yerini almıştır

Tarihsel süreç içinde Assembly dillerinden daha sonra geliştirilmiş ve daha yüksek seviyeli diller 3. kuşak diller sayılmaktadır. Bu dillerin hepsi algoritmik dillerdir. Bugüne kadar geliştirilmiş olan yüzlerce yüksek seviyeli programlama dilinden yalnızca pek azı bugüne kadar varlıklarını sürdürebilmiştir:

Çok yüksek seviyeli ve genellikle algoritmik yapı içermeyen programların görsel bir ortamda yazıldığı diller ise 4. kuşak diller olarak isimlendirilirler. Özellikle küçük IBM makinalarının kullanıcıları olan şirketlerin, rapor üretimi için basit bir dil istemeleri üzerine IBM firması tarafından geliştirilmiştir.

Makina, assembly ve C dillerinin karşılaştırılması Bir işlemcide, iki farklı sayının toplanması için üç dilde yazılması gereken kodlar aşağıda verilmiştir.

Makina dili için; 1081h 1. sayı 0322h 2.sayı A003h toplam Verilen kod kullanılan makinaya özeldir. İşleme hızı hem assembly hem de C diline göre yüksektir. Yazımı oldukça zordur.

Assembly dili için ; lacc a 1. sayı add b 2.sayı sacl c toplam Verilen kod kullanılan makinaya özeldir. İşleme hızı C diline göre yüksektir. Yazımı C diline göre zordur.

C dili için; c=a+b; Verilen kod derleyicisi bulunan bütün makinalarda kullanılır. İşleme hızı diğerlerine göre yavaştır. Yazımı kolaydır.

Günümüzde hala programlama dilleri ihtiyaçlarına göre derlemeli yada yorumlamalı program dilleri olarak mevcuttur. Bunu misal olarak anlatacak olursak, masaüstü uygulamaları derlemeli, internet tabanlı programlar ise yorumlamalı programlar olarak adlandırılabilir.

ÇALIŞTIKLARI ORTAMA GÖRE PROGRAMLAMA DİLLERİNİN SINIFLANDIRILMASI

Programlama Dillerinin Çalıştığı Ortamlar Lokal Web Tabanlı

Lokal programlama dilleri, bilgisayara yükleyerek exe'si ile çalıştırdığımız masaüstü uygulamalarını geliştirmeye imkan verir,

Web tabanlı programlama dilleri ise istemci-sunucu mimarisine göre tasarlanan web sayfalarını geliştirmeye imkan verir,

Web tabanlı Programlama Dilleri Sunucu Taraflı İstemci Taraflı ASP JavaScript PHP VBScript. Web siteleri ve internet uygulamaları geliştirirken, kullanıcı ile etkileşime geçmenin 2 farklı yolu bulunmaktadır. Birincisi sunucu taraflı (server side), diğeri ise istemci taraflı(client side) programlamadır.

İstemci Taraflı Programlama dilleri, HTML dilinin karşılayamadığı bazı ihtiyaçlara çözüm üretmek için kullanılır. İstemci Taraflı Programlama dilleri, kullanıcı ile veri alış verişi içerisindedir. Her işlem istemci üzerinde gerçekleştirilir. Script dilleri sayfa ile kullanıcının etkileşimli olarak çalışmasını sağlar: bir nesneye tıklamak, bir nesnenin üzerine gelmek, bir nesnenin üzerinde dolaşmak gibi

Sunucu Taraflı Programlama dilleri, sunucu ile veri alış verişi içerisindedir. Her işlem sunucu üzerinde gerçekleştirilir.

Webde istemci sunucu iletişimi 1. İstemci bilgisayarda internet explorer veya firefox gibi bir web tarayıcısına bir adres girilir, 2. Tarayıcı ilgili web sunucusunu bulur ve sayfayı ister, 3. Web sunucusu ilgili sayfayı komutlar topluluğu şeklinde istemci makineye gönderir, 4. İstemci makinedeki tarayıcı bu sayfaları alır, gelen komutları yorumlar ve web sayfasını anlaşılır bir şekilde gösterir

Programlama dillerinin uygulama alanlarına göre sınıflandırılması:. Bilimsel ve Mühendislik Diller: Bu diller daha çok bilimsel ve mühendislik problemlerinin çözümünde tercih edilirler. PASCAL ve C dillerini, birde geleceği pek parlak olmayan ve hala ısrarla kullanılan 90 canlı, dünyanın ilk yüksek seviyeli dili FORTRAN ı buna örnek verebiliriz.. Veritabanı Programlama Dilleri: Bu diller veritabanlarının genel olarak yönetiminde kullanılan dillerdir: DBASE, PARADOX, FOXPRO, SQL.. kişisel bilgisayarlarda yaygın olarak kullanılanlardan bazıları.. Yapay Zeka Dilleri: bu diller insan davranışını taklit etmeye yönelik yapay zeka içeren programların yazımında kullanılan mantıksal dillerdir. En ünlüleri : LISP ve PROLOG.. Genel Amaçlı Diller: Çok çeşitli konularda uygulama geliştirmek amacıyla kullanılan dillerdir. C ve PASCAL ı örnek verebiliriz.. Sistem Programlama Dilleri: Sistem programlarının yazımında kullanılan dillerdir. C yi sembolik makine dillerini bu grup içinde ele alabiliriz.

Sonuç olarak bugüne kadar kullanılan bir çok programlama dili olmuştur. Örnekleyecek olursak: Basic Fortran Pl/1 Rpg Cobol Modular2,3 Turbo C++ Pascal Cecil Ada Blue Dylan Eiffel Erlang Avenue C# Forth Haskell Icon Logo Lua Delphi VBasic PHP Perl SGML XML HTML ASP Jawa ABAP Beta Mercury Miranda ML Oberon Prolog Rexx Ruby Sather SETL Lisp C V C++ VFocus Pro Occam Power Builder Smalltalk Snobol ABC APL Flash Python Tcl Apple Script Shell Script VB Script Metlap CSH SH TSCH...

Neden C++? C Programlama dilinin kullanım alanları C programlama her tip programların yazımında kullanılmaktadır (işletim sistemleri, veri tabanları, editörler, derleyiciler v.b). Elektrik-Elektronik mühendisliğindeki genel kullanım alanları Elk-Elt devre analizlerinin yapılmasında Sistemlerin bilgisayar ile denetiminde Mikroişlemci (PIC, PLC vb)programlanmasında

PROGRAMCILIĞA GİRİŞ

Algoritma Ve Akış Şemaları İster bilgisayarla ister bilgisayarsız soru çözmek için belirli bir yol vardır. Ancak bu yol ile sağlıklı bir çözüme ulaşılabilir. Bilgisayar kullanarak soru çözmek için sonuca giden yolun tam olarak belirlenmesi gerekir. Doğru bir yol izleyebilmek için, çıkılan ve ulaşılan yer tanımlanmalıdır. Aynı soru için değişik çözüm yolları geliştirilebilir. Eğer bilgisayara verilen çözüm yanlışsa, çıkan sonuç yanlış çözüm doğru ise çıkan sonuç da doğrudur. Bilgisayar kendi başına karar vermez.

Program yapmak verilen bir problemi çözmek demektir. Bir problemi çözmek ise belli bir matematiksel yapıya sahiptir. Bunları adım adım tanımlayabiliriz.

Soru Çözme Adımları Bilgisayar ortamında bir problem çözülürken aşağıdaki adımlara dikkat edilmelidir.

a-) Soru Tanımlama: Her şeyden önce çözülecek soru tam olarak anlaşılmalıdır. Bu adımda yapılacak en ufak bir hata daha sonraki adımların yeni baştan yapılmasını gerektirebilir. Daha sonra istenenler belirlenmeli ve bunların var olan bilgiler ile ilişkileri öğrenilmelidir. Son olarak yapılacak işlemler belirlenir. Mümkün ise örnek veriler ile elde edilen sonuçlar değerlendirilmelidir.

b-) Girdi ve Çıktı Biçimi Belirleme: Sonuçların dış ortama, dolayısıyla insana aktarımı düzgün bir biçimde yapılmalıdır. Programcı program çıktısı olarak almak istediği dökümün biçimini tasarlar. Bir döküm biçimi tasarlanırken anlaşılır ve kullanılabilir olmasına özen gösterilmelidir. Genellikle programa, çözdüğü soruna ilişkin bazı verilerin dışarıdan verilmesi gerekir. Örneğin bir denklem takımının kökleri bulunacaksa, ilgili katsayıların programa verilmesi gibi.

c-) Algoritma Geliştirme: Algoritma bir sorunun çözümü için izlenecek yolun tanımıdır. Kısaca algoritma mevcut bilgilerden istenilenlere erişme yöntemidir. Soru tanımını tam olarak yaptıktan sonra, çözüm için yol aramak gerekir. Genellikle bir sorunun birden fazla çözüm yolu olabilir. Bunlardan en uygunu seçilmeye çalışılır. Soru ne kadar karışık olursa olsun, alt birimlere bölünür. Her birimin çözümü ayrı, ayrı yapılır. Bu yapılırken birimler arası ilişki sürekli olarak korunur.

d-) Akış Şemasını Çizme: Akış şeması belirli bir işin yapılabilmesi için, basit işlemlerle şema halinde gösterilmesidir. Kısaca algoritmanın şemalarla gösterilmesidir. Algortima geliştirildikten sonra, daha iyi anlaşılabilir olması ve programlama dillerine aktarımı daha kolay olması nedeniyle, akış şeması haline getirilir. Böylece sorunun çözüm basamakları, birbirleri ile ilişkileri ve bilgi akışı daha kolay görülebilir ve yanlışlıklar düzeltilebilir.

e-) Kodlama: Akış şemaları çizildikten sonra, sorunu yapısına uygun bir programlama dili seçilir. Bu dil ile akış şemaları dilin kurallarına uygun olarak bilgisayarın anlayabileceği duruma getirilir.

f-) Programı Sınama: Program yazıldıktan sonra, sonuçları daha önceden bilinen veriler girilerek, eldeki sonuçlarla çıkan sonuçlar karşılaştırılır. Programın doğru çalışıp çalışmadığı sınanır.

ALGORİTMA

El Harezmi Algoritma kelimesi başlangıcını Ebu Cafer Muhammed ibn Musa el Harezm in (Harezmi) (825) Kitap al jabr w'al- muqabala kitabından almaktadır. Bu kitap 12. yüzyılda Latinceye (Cebir ve mukayese kitabı) adıyla çevrilmiş ve "El Harezmi'ye göre... deyimi, değişikliğe uğrayarak daha sonraları algoritma kelimesi olarak hesaplamaların anlatımında kullanılmıştır. Aslında algoritma kavramının kendisi, Harezmi den çok eskilere dayanır. M.Ö. 1800 yıllarına ait Babil tablet metinlerinde, bazı denklem türlerinin çözümleri ardışık şekilde gösterilmiştir. Euclid ve Arşimed in eserlerinde de ardışık çözüm yolunu gösteren algoritmalara rastlanmaktadır. Ancak algoritmalarla ilgili hem teorik hem de uygulamalara yönelik araştırmalar bilgisayarların gelişmesiyle 20. yüzyılda hız kazanmıştır.

Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına da gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir. Diğer bir deyişle algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir. Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları göz önünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar. Aşağıda Harezmiden alınan algoritma hazırlanmasına ilişkin örnekler yer almaktadır.

Kareler ve kökler sayıya eşit başlıklı bölümde, Örneğin, aynı türden bir kare ve kök eşittir otuz dokuz dirhem olsun. Şimdi soralım, Neyin karesi ile kendisinin on katı otuz dokuz eder.? (Bu günümüz dili ile: X 2 +10X = 39) Çözüm şöyledir: Kökün katsayısının yarısını bul, Kendisi ile çarp. Burada beş, çarpım yirmi beş, Bunu sayıyı ekle. Otuz Dokuz ve yirmi beş toplam altmış dört, Şimdi bunun karekökünü al. Sekiz dir.ve Ondan kökün yarısını çıkart. Kalan 3 olur. Aranan karenin kökü bu dur. Karenin kendisi ise dokuz olur. Kare iki, üç ya da daha fazla olursa çözüm yolu aynıdır. Yapacağınız, tek yol kareye indirgemektir. Bunun için kök ve sayı da bölünür.

Örnek: İki kare ve on kök eşit kırksekiz dirhem olsun. Bunun anlamı, Hangi karenin iki katı, kökün on katı ile toplanırsa kırksekiz eder? dir. ( Günümüz dili ile, 2X 2 + 10X = 48 ) Çözüm şöyledir: Önce, iki kareyi, tek kareye indirgemeliyiz. Bunun için, her iki tarafın ikiye bölünmesi gerektiğini biliyoruz. Kare ve beş kök eşittir yirmi dört olur. Şimdi hangi kare, kökün beş katına eklendiğinde yirmi dört olur? ( Günümüz dili ile, X 2 +5x =24 ) Kökün katsayısının yarısını bul. iki ve yarım der, Kendisi ile çarp. çarpım altı tam ve yarımdır, Bunu sayıyı ekle. Otuz Dokuz ve yarım eder, Şimdi bunun karekökünü al. Beş ve yarım eder. Ve Ondan kökün yarısını çıkart. Beş ve yarım çıkar iki ve yarım Kalan üç olur. Aranan karenin kökü bu dur. Karenin kendisi ise dokuz olur.

Gerçek Hayattan Ö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ımlayalım:

Çözüm 1. Evden dışarıya çık 2. Otobüs durağına yürü 3. Durakta gideceğin yöndeki otobüsü bekle 4. Otobüsün geldiğinde otobüse bin 5. Biletini bilet kumbarasına at 6. İneceğin yere yakınlaştığında arkaya yürü 7. İneceğini belirten ikaz lambasına bas 8. Otobüs durunca in 9. İşyerine doğru yürü 10. İş yeri giriş kapısından içeriye gir 11. Mesai arkadaşlarınla selamlaş 12. İş giysini giy 13. İşini yapmaya başla.

Örnek: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır. Algoritma Adım 1 Başla Adım 2 Birinci Sayıyı Oku Adım 3 İkinci Sayıyı Oku Adım 4 İki Sayıyı Topla Adım 5 Dur

Algoritma Hazırlanırken dikkat edilecek hususlar Algoritmanın bir sorunun çözümü için izlenecek yolun tanımı olduğunu belirtmiştik. Bu yolun açıklanabilmesi için, algoritmada kullanılan bazı tanım ve kurallar vardır. Şimdi bu tanım ve kuralları inceleyelim.

Değişken Kavramı: Farklı zamanlarda farklı değerler alabilen bilgi sahalarına verilen sembolik adlardır. Bilgisayar işlem yaparken RAM belleği(geçici bellek) kullanır. İşte program yazılırken programcının Ram belleği kullanmasını sağlayan değişkenlerdir. Değişkenler Ram bellekte tahsis edilmiş odacıklar olarak düşünülebilir. Yani bir değişken tanımlandığında ram bellekte bir odacık (bir bölüm) açılır ve bu bölüme değişken ismiyle ulaşılır. Örneğin klavyeden girilen iki sayının toplamını bulan program yazılırken 3 tane değişken tanımlanmalıdır. Çünkü klavyeden 2 tane sayı girilecek ve bu sayılar toplanarak 3. bir değişkene aktarılacaktır.

Soru: Klavyeden girilen 3 sayının aritmetik ortalaması bulunurken kaç değişken tanımlanmalıdır?

Aktarma Deyimi Aktarma deyimi yada operatörü değişkenlere değer aktarmak için kullanılır. A=5 yada A=A+1 şeklindeki bir yazılımda = sembolü aktarma deyimi adını alır. Aktarma deyiminin sağ tarafındaki değer yada matematiksel ifadenin sonucu, sol tarafındaki değişkene aktarılır. Aktarma yapılırken değişkenin aldığı bir önceki değer kaybolur. Bu işlem matematiksel mantıkla karıştırılmamalıdır. Matematikte A=A+1 yanlış olduğu halde, bilgisayar mantığında doğrudur.

Sayı1=9 Sayı2=6 Toplam=Sayı1+Sayı2 Toplam=Toplam*2

SORU Sayi1=1 Sayi2=1 Sayi3=Sayi1+Sayi2 Sayi4=Sayi3+Sayi2 Sayi5=Sayi4+Sayi3 Yukarıdaki aktarma işlemlerinin sonucunda değişkenlerin değişimini şema halinde gösteriniz.

SORU Vize=60 Final=70 Toplam=(Vize*40/100)+(Final*60/100) Ortalama=Toplam/2 Yukarıdaki aktarma işlemlerinin sonucunda değişkenlerin değişimini şema halinde gösteriniz.

AKIŞ ŞEMALARI

AKIŞ ŞEMASI HAZIRLAMA: Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış şeması veya blok diyagramı adı verilir. Akış diyagramları, yazılımı oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akış diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler.akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir.

Akış şemaları Programcı tarafından hazırlanan, Programın genel görünümünü, Planını, Akış yönünü, Çözümleri adım adım gösteren şemalardır.

Ayrıntılı bir akış şeması, yazılımı oluşturan işlemleri ve ilişkilerini en küçük detayına kadar belirler. Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış diyagramlarında genel olarak yalnız üç basit mantıksal yapı kullanılır.

Akış komutları Başla-Bitir(sonlandırıcı) Input (girişler) İşlem Görüntüleme Karar Tekrarlı işlem Elle girilen değer

Akış şemaları Sıralı akış şeması Şartlı akış şeması Tekrarlı akış şeması Olarak temelde 3 şekilde karşımıza çıkar.

Sıralı Akış Bu mantıksal yapılardan en basiti sıralı yapıdır. 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. 1.Adım Bütün işlemlerin sırayla biribirini takip ettiği akış 2.Adım 3.Adım Daha önceki işlemlere geri dönülmez Karşılaştırma yapılmaz

Örnek SORU:Yarıçapı verilen çemberin alanını ve çevresini hesaplayan program akışını çiziniz. ANALİZ: Çemberin yarıçapı okunur Alan=pi*r 2 Çevre=2*pi*r Sonuçlar ekrana yazılır

başla Yarıçapı oku Alan=3.14*yarıçap*yarıçap Çevre=2*3.14*yarıçap Alan ve çevre Değerlerini yazdır bitir

Şartlı Akış Giriş kısmı Karşılaştırma Karşılaştırma ifadesi DoğruBir koldan YanlışDiğer koldan İşlemler2 İşlemler1 Çıkış

Örnek SORU: Üçkenarının uzunluğu girilen bir üçgenin eşkenar olup olmadığını test edecek program akışı şemasını geliştiriniz.

H başla A, B, C gir A=B E Eşkenar değildir yaz H A=C E Eşkenar Değildir eşkenardır bitir

Tekrarlı Akış Temelde üç şekildedir. Akış şemasında bu şekiller oluştuğunda ilgili komut akla gelir. Önceki işlemler Önceki işlemler Önceki işlemler karşılaştırma Sonraki işlemler işlemler işlemler karşılaştırma Sonraki işlemler N defa işlemler Sonraki işlemler while(şart) { } do { } while(şart); for(sayaç) { }

Örnek SORU:1den 100 kadar sayıları yazdıran program akışını çiziniz

başla Sayacı 1 e eşitle Sayaç=1 Sayac <=100 Sayacı ekrana yazdır Sayacı bir artır Sayac=sayac+1 bitir

Örnek Ekrana 5 defa GAZİ ÜNİVERSİTESİ yazdıran programın algoritma ve akış şemasını oluşturalım.

ALGORİTMA 1. Basla 2. sayac=0 3. YAZ GAZİ ÜNİVERSİTESİ 4. sayac=sayac+1 5. Eğer sayac<5 GİT 3 6. DUR

Başla Sayac=0 Yaz GAZİ ÜNİVERSİTESİ sayac=sayac+1 sayac<5 mi? H E Bitir

Örnek Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana yazdıran algoritma ve akış şemasını yazın?

1. BAŞLA 2. OKU sayi1,sayi2 3. EĞER sayi1>sayi2 İSE YAZ Sayi1 büyüktür 4. Değilse EĞER sayi2>sayi1 İSE YAZ Sayi2 büyüktür 5. DEĞİL İSE YAZ Sayi1 sayi2 ye eşittir 6. BİTİR

Başla Oku sayi1, sayi2 Yaz S1 > S2 E Sayi1> sayi2 mi? H Yaz S2 > S1 E Sayi2> sayi1 mi? Yaz S1 = S2 Bitir

Aşağıda verilen algoritmanın akış şemasını çizin ve programı izleyerek ne iş yaptığını belirtin? 1. BAŞLA 2. Sayi1=15 3. Sayi2=30 4. Yaz Sayi1, Sayi2 5. Gecici=Sayi1 6. Sayi1=Sayi2 7. Sayi2=Gecici 8. Yaz Sayi1, Sayi2

Örnek 1-10 arasındaki tamsayıların toplamını bulan programın algoritma ve akış şemasını yazın?

1.BAŞLA 2. Sayac=0, Toplam=0 3. Sayac=Sayac+1 4. EĞER Sayac>10 İSE GİT 7 5. Toplam=Toplam+Sayac 6. GİT 3 7. YAZ 1-10 Arası Sayıların Toplamı=,Toplam 8. BİTİR

BAŞLA Sayac=0, Toplam=0 Sayac=Sayac+1 E Sayac >10 mu? H Toplam=Toplam+Sayac Yaz Toplam BİTİR

ÖDEV 1 (gönderdiğiniz mailde ödev 1 olduğunu belirtiniz) 1. Klavyeden girilen 1-25 arasındaki bir tamsayının faktöriyelini alan programın algoritma ve akış diyagramını yazınız. 2. Klavyeden ardı ardına sayı girişi isteyen ve bu sayı 10 ile 15 arasında olmadığı sürece bu işleme devam eden programın algoritma ve akış diyagramını yazınız. 3. 1den 25 e kadar olan sayıların kareleri toplamını bulan programın algoritma ve akış diyagramını yazınız. 4. Klavyeden 10 tane tamsayı girilmesini isteyen ve bu girilen tamsayılardan kaç tanesinin negatif olduğunu bulan programın algoritma ve akış diyagramını yazınız. 5. a,b,ve c klavyeden girilmek üzere, ax2+bx+c=0 şeklindeki bir denklemin köklerini bulan programın algoritma ve akış diyagramını yazınız. 6. Klavyeden girilen 1-12 arasındaki tamsayıların hangi aya denk geldiğini bulup ekrana yazan programın algoritma ve akış diyagramını yazınız. 7. Dört işleme birer kod numarası vererek, klavyeden girilen iki sayıyı yine klavyeden girilen işlem koduna göre toplayan, çıkaran, çarpan veya bölen programın algoritma ve akış diyagramını yazınız. 8. Klavyeden ardı ardına girilen sayıları toplayan ve girilen sayı negatif olduğunda duran programın algoritma ve akış diyagramını yazınız. 9. Klavyeden bir not girilmesini isteyen ve bu not 0-49 arasındaysa Başarısız, 50-64 arasındaysa Orta, 65-84 arasındaysa İyi, 85-100 arasındaysa Çok iyi Yazan programın algoritma ve akış diyagramını yazınız. 10. Klavyeden girilen iki tamsayıdan büyük olanı bulup ekrana yazdıran programın algoritma ve akış diyagramını yazınız. 11. Klavyeden girilen iki pozitif tamsayıdan birincisinin ikincisi cinsinden kuvvetini alan programın algoritma ve akış diyagramını hazır fonksiyon kullanmadan yazınız. 12. n! değerini hesaplayan programın algoritma ve akış diyagramını yazınız. 13. 1+4+9+ +100= değerini hesaplayan programın algoritma ve akış diyagramını yazınız. 14. Toplama, çıkarama, çarpma ve bölme işlemi yapan programın algoritma ve akış diyagramını yazınız. 15. Saatte ortalama 60 km yol giden bir aracın, klavyeden girilen mesafeyi kaç saatte gideceğini hesaplayan programın algoritma ve akış diyagramını yazınız.