Algoritma ve Programlamaya Giriş

Slides:



Advertisements
Benzer bir sunumlar
Bilgisayar Programlama I
Advertisements

Algoritma ve Akış Diyagramları
OPERATÖRLER Programlama dillerinde tanımlanmış sabit ve değişkenler üzerinde işlemler yapmayı sağlayan karakter ya da karakter topluluklarına operatör.
(Yrd. Doç. Dr. İbrahim ASRİ)
Problemi Çözme Adımları
C Programlama Diline Giriş
Bilgi Teknolojisinin Temel Kavramları
TEMEL BİLGİSAYAR BİLİMLERİ
Bölüm 3 – Yapısal Programlama
Algoritma ve Akış Diyagramları
Yapısal Program Geliştirme – if, if-else
OPERATÖRLER.
ALGORİTMA ve PROGRAMLAMA
ALIŞTIRMALAR - 1 Sunu 1 ve Sunu 2 İçeriği
Görsel C# ile Windows Programlama
Bilgisayar Programlama
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Programlama (Hatırlamalar) Yard.Doç.Dr. Cihad DEM İ RL İ Sunu İ çeri ğ i Kayna ğ ı: Vatansever, F. (2010). Algoritma Geliştirme ve Programlamaya Giriş,
Bilgisayar Programlama Güz 2011
Algoritmalar (Algoritms)
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Temel tanımlar ve işleyiş
C ile Programlamaya Giriş
Metotlar.
Algoritmalar (Algoritms)
DEĞİŞKENLER VE VERİ TİPLERİ
BİLGİ TEK. VE ALG. GİRİŞ YRD.DOÇ.DR. BUKET DOĞAN 1.
Temel Kavramlar, İşlemler, Operatörler
BİLGİ TEK. VE ALG. GİRİŞ YRD.DOÇ.DR. BUKET DOĞAN 1.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
Bilgi Teknolojisinin Temel Kavramları
Algoritmalar (Algoritms)
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
PROGRAMLAMA 2. Hafta TEMEL KAVRAMLAR.
ALGORİTMA VE AKIŞ ÇİZELGELERİ
Değişkenler Programda Değişken Tanımlama. Değişken nedir? (Variables) Program içinde kullanılan veri(data)nin tutulduğu alanın adıdır. Her veri bir tür.
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
Adım Adım Algoritma.
ALGORİTMA NEDİR? İster bilgisayarda, ister matematikte, isterse günlük hayatta karşımıza çıkan her problemin çözüm yolu vardır. Örneğin yemek yerken farkında.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Bilgisayar Programlamaya Giriş - 1
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Programlama Dersi Öğretim üyesi : Prof. Dr. Raşit KÖKER
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMA MANTIĞI, ALGORİTMA PROBLEM ÇÖZME
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
O R T L G İ M A A Ve Akış şemaları.
BİLGİSAYAR PROGRAMLAMA DERSİ
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
Algoritma ve Akış Şemaları
Programlamaya Giriş.
C Programlama Dili Bilgisayar Mühendisliği.
ANKARA ÜNİVERSİTESİ SAĞLIK BİLİMLERİ FAKÜLTESİ SOSYAL HİZMET BÖLÜMÜ
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
PROGRAMLAMA TEMELLERİ
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
VERİ TÜRLERİ.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMALAR
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Problem Çözme Yaklaşımları
Algoritmanın Hazırlanması
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
Bilgisayar Mühendisliğine Giriş
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Algoritma ve Programlamaya Giriş

Algoritma Nedir? Algoritma sözcüğü, Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi’den 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. 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: Bir problem karşısında üretilen çözüm yöntemidir. Problem çözmek için geliştirilen Adım – adım çözüm yöntemidir. Verilen bir problemi çözmek için tasarlanan talimatlar bütünüdür. Bir sorunun çözümü için sunulan mantıksal ve sembolik anlatımdır.

Aşağıda bazı problemler verilmiştir Aşağıda bazı problemler verilmiştir. Verilen bu problemler karşısında çözüm yöntemleriniz nelerdir?   Masa lambanızın elektrik düğmesini açtığınızda lambanın yanmadığını gördüğünüz zaman nasıl bir yol izlersiniz? Çözüm: 1. Lamba çalışmıyor.  2. Lambanın fişi takılı değilse fişi tak  3. Takılıysa Ampül patlak mı kontrol et  4. Patlaksa değiştir.  5. Patlak değilse elektrik kesik mi kontrol et  6. Kesikse elektriğin gelmesini bekle  7. Kesik değilse lamba arızalıdır.

2. Bir çoban , ırmağın bir tarafında olan kurt ,kuzu ve otu birbirine yedirmeden karşı tarafa geçirmek istiyor. Kayığı küçük olduğundan bir seferde yalnız birini götürebilir. Çözüm:

3. İki kefeli bir terazi için 1 gramdan 40 grama kadar olan bütün ağırlıkları (1 gramdan az hatayla) tartmamız için elinizde bulunması gereken tekrarlanmayan minmum ağırlık sayısı nedir? Bu ağırlıklar kaçar gram olmalıdır? Çözüm: Bu problemin çözümü 2 kısımdan oluşmaktadır : İlk önce bu taşların kaçar gramlık olacağı bulunmalıdır. Sonra ise bulunan bu değerlere göre X gramın tartılması için taşların kefelerde nasıl yerleştirilmesi gerektiği belirtilmelidir. Ağırlıkları 2’nin katları şeklinde düşünürsek: 1=1, 2=2 , 3=4-1 , 5=1+4 … şeklinde gider fakat bu durum yanlış yola götürebilir (optimum olmayabilir). Çünkü kefelerde taşların yerleştirilmesi 3 farklı durum göstermektedir.

X cismini dengelemek için yalnız diğer kefeye tek bir taş konur. X cismini dengelemek için diğer kefeye birkaç taş konur. Her iki kefeye taşlar konur. Bu 3 durumu temsil etmek için 3’lü sayı sisteminde faydalanılabilir. 1=1 2=3-1 4=3+1 … X cisminin ağırlık değerini arttığı zaman problemin çözümü aşağıdaki şekilde olur: X= 𝑋 𝑛 * 3 𝑛 + 𝑋 𝑛−1 * 3 𝑛−1 +…. 𝑋 1 * 3 1 + 𝑋 0 𝑋 0 , 𝑋 1 ,… 𝑋 𝑛 değerleri 0,1,2 veya 0,1,-1 değerine sahip olabilir. Örneğin 100 gram ağırlığı ölçmek için 9+X=81+27+1 şeklinde olur.

4. Bir bardakta süt, diğer bir bardakta ise kahve vardır 4. Bir bardakta süt, diğer bir bardakta ise kahve vardır. Süt bardağından bir kaşık alınıp kahve bardağına dökülüyor ve iyice karıştırılıyor. Sonra kahve bardağından bir kaşık sütlü kahve alınıp süt bardağına dökülüp iyice karıştırılıyor. Son durumda bardaklardaki süt ve kahve oranları ne olur? (süt bardağındaki kahve oranı ve kahve bardağındaki süt oranı) Matematiksel olarak ispatlayınız? Çözüm: Süt bardağı S, Kahve bardağı K ile temsil edilsin. Başlangıçta S=100x ve K=100x olsun. Süt bardağından 5x (kaşığın hacmi) süt alınsın. Kahve bardağına döküldüğünde K=100x+5x (süt)=105x (sütlü kahve) ve S=95x(süt) olur. Kahve bardağından 5x (sütlü kahve) alınsın. Süt bardağına döküldüğünde S=95x(süt)+5x(sütlü kahve)=100x (sütlü kahve) ve K=100x (sütlü kahve) olur. Her iki bardakta kahve ve süt oranları eşit olur. Süt Kahve

Algoritmaların Temel Özellikleri Bir problemin çözüm yöntemi (algortima) kişiden kişiye göre değişebilmektedir. Bu durumda algoritmalardan en hızlı olanı ve en az adıma sahip olanı tercih edilmelidir. Bu durumu açıklayan örnek aşağıda verilmiştir. Aşkın, A kentinde bulunmaktadır ve B kentine gitmek istemektedir. Fakat hangi yol üzerinden gideceğini bilmemektedir. Bu problemi, başka kişilerden yardım alarak çözmeye çalışmaktadır. Sordukları kişilerden biri C kasabası üzerinden diğeri ise D kasabası ve başka birisi ise E kasabası üzerinden B kentine gidebileceğini söylemiştir. Bu durumda Aşkın hangi yolu izlemelidir? Çözüm: En kısa mesafe olan D kasabası üzerinden gitmeyi tercih etmelidir.

Her algoritmanın uyması gereken kriterler: 1) Girdi: Sıfır veya daha fazla değer dışarıdan girmelidir 2) Çıktı: En azından bir değer çıkmalıdır 3) Açıklık: Her komut açık olmalıdır, farklı anlam ve yön çıkmamalıdır 4) Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli. 5) Etkinlik: Her komut kişinin kalem ve kağıt ile takip edebileceği basitlikte olmalıdır.

Algoritmaların Akış Şeması Bir süreci belirleme veya bir projenin adımlarını planlama için görsel bir sunum oluşturur. Proje ve süreç ile ilgili kişilere ortak bir dil veya bir referans noktası sağlar. Algoritmadaki ifadeler şekillerin içerisine yazılır. BAŞLA ve DUR şekilleri hariç her bir şeklin anlamı belli olduğundan içlerine tekrar anlamla aynı olacak kelime ve ifadeler yazılmaz.

Akış Şeması Şekilleri Başlama ve bitiş işlemleri giriş – okutma işlemleri Atama ve hesaplama işlemleri Alt programlar (Alt işlemler) görüntüleme – yazdırma işlemleri

Akış Şeması Şekilleri ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplanması Karar ve kontrol işlemleri {eğer (koşul bildirimi veya karar)} alan = (taban X yukseklik)/2 BAŞLA DUR Taban Yükseklik alan Döngüler Akış yönünü belirten işlemler

Algoritma ile ilgili kavramlar DEĞİŞKEN Algoritma yazmaya başlarken bilgilerin mutlaka bir değişkende saklanması gereklidir. Bundan dolayı hangi tür bilgi saklanacaksa öncelikle bellekte ona yer ayırmamız gerekmektedir. Farklı adımlarda farklı değerler alabilen bilgi alanına değişken denir. Değişken tanımlama kuralları: Değişken isimlerinde Türkçe karakter kullanılmaz . örn:İ,Ş,Ö,Ç... ,sayaç, bölme vs. sayac doğru Özel karakter kullanılmaz. :, $, !, ^, (, ) ... Alan! Birden fazla karakterden oluşuyorsa aralarında boşluk bırakılmaz. Bunun yerine _ kullanılabilir. Örnek: en uzun kenar vs. en_uzun_kenar doğru A-Z harfleri arasında alfabetik harflerle başlamalı! Değişkenin ilk harfi rakamla başlamaz. Örn: 1A, 1sayac sayac1 Değişken ismi, algoritmanın kodlanacağı programlama dillerindeki özel komutlar olamaz.Örn: echo, print, end vs. Değişken isimleri büyük küçük harfe duyarlıdır. Örn: toplam ile Toplam farklı isimlerde değişken olarak kabul edilir.

Değişkene Değer Atama: <degisken_adi>=<aritmetik ifade ya da değer> şeklindedir. Örneğin: sayac=12 , toplam=500, para=1230 vs. Eğer atanacak ifade sayısal değilse bu durumda ₺ ₺ (birden fazla harften oluşuyorsa) ya da ‘ ‘ ( tek bir karakter ise ) ile birlikte atanmalıdır. Örneğin: isim= ₺Ali ₺ , tus=‘S’ veya karakter=‘1’ burada 1 sözel bir ifade olur ve herhangi bir sayısal değer gibi toplanamaz. Örneğin ₺ Benim sadece 1 tane arabam var.₺ cümlesindeki gibi

Matematiksel (aritmetik) işlemler: Temel aritmetik işlemler (toplama, çıkarma, çarpma, bölme), matematiksel fonksiyonlar (üstel, logaritmik, trigonometrik, hiperbolik vs.) bu gruba dahildir. Aşağıdaki tabloda matematiksel işlemlerin bilgisayar dilindeki karşılıkları verilmektedir.

Algoritma ve Akış Diyagramları 28.04.2017 Örnekler: Matematiksel yazılım Bilgisayarda yazılımı ab-c+d-6+da a*b-c+d-6+d*a b+c3-d/8-b2c b+c^3-d/8-b^2*c Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları 28.04.2017 Matematiksel işlemlerde öncelik hakkı: Tek bir matematiksel deyim içinde birden fazla işlem bir arada bulunabildiğine göre hangi işlemin öncelik hakkına sahip olduğunun bilinmesi yerinde olacaktır. Aşağıda işlemlerin öncelik listesi verilmiştir. Öncelik İşlem 1. Parantez 2. Üs alma, soldan sağa doğru 3. Çarpma ve bölme, soldan sağa doğru 4. Toplama ve çıkarma, soldan sağa doğru Örnek: a=4, b=6, c=8 ve d=10 değerleri için; İfade Sonuç c*d/(a*d)+b+c*d/a 28 c*d/a*d+b+c*d/a 226 c*d/a*d+(b+c)*d/a 235 Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları 28.04.2017 Karşılaştırma İşlemleri: Bilgisayar temel matematiksel işlemlerin yanında karar modelleri de üretebilir. Yani iki büyüklükten hangisinin büyük ya da küçük olduğu ya da birbirine eşit olup olmadığı gibi konularda karar verebilir. Bu karşılaştırma işlemleri nümerik ya da alfanümerik olabilir. Aşağıdaki tabloda karşılaştırma işlemselleri gösterilmiştir: İşlem sembolü Matlab Anlamı = == Eşittir <> ~= Eşit değildir > Büyüktür < Küçüktür >= veya => >= Büyük eşittir <= veya =< <= Küçük eşittir Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları 28.04.2017 Mantıksal (lojik) İşlemler: Bilgisayar temel mantık (VE, VEYA, DEĞİL) işlemlerini de yapabilmektedir. Mantıksal işlem operatörleri hem karar ifadelerinde hem de matematiksel işlemlerde kullanılabilirler. Aşağıdaki tabloda mantıksal semboller gösterilmiştir: Mantıksal İşlem Komut Matematiksel sembolü Matlab sembolü VE AND . && VEYA OR + || DEĞİL NOT ` != Eşit Equal = == Aşağıdaki tabloda ise mantıksal işlem sonuçları gösterilmiştir: Sonuç Bilgisayar dili Doğru (1) True Yanlış (0) False Algoritma ve Akış Diyagramları

sayac=sayaç-1 bu durumda sayaç değeri 1 azaltılmış olur. Artırım İşlemler: Bilgisayar mantığında matematik işlemlerinden farklı olarak bazı işlemler yapılabilmektedir. Herhangi bir değişkene kendisi ile değer atamak mümkündür. Örneğin: x=3 x=x+2 x=? Sonuç olarak x=5 olur. sayac=sayaç-1 bu durumda sayaç değeri 1 azaltılmış olur. toplam=toplam+4 veya toplam+=4 ++ veya - - değişkenin içeriğini arttırır/azaltır. Örneğin : a=3, a++ ise a yine 3 olur. Eğer ++a olursa a 4 olur.

Sonsuz Döngü Algoritmanın sonu gelmeyen belirli işlemleri tekrarlaması ile oluşmaktadır. Örneğin klavyeden girilen bir sayısı bölüm 0 oluncaya kadar 2’ye bölen bir algoritma. Hiçbir sayı, devamlı 2’ye bölünerek bölümü 0 yapılamaz. 3/2=1.75 1.75/2=0.875 0.875=0.43.75

Örnek Problemler ve Çözümleri Soru: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız. ALGORİTMA AKIŞ ŞEMASI BAŞLA OKU taban OKU yukseklik alan= (Taban X Yukseklik)/2 YAZ alan DUR alan = (taban X yukseklik)/2 BAŞLA DUR Taban Yükseklik alan

Soru: Çalıştığı gün sayısı ve yevmiyesi girilen işçinin maaşını hesaplayan algoritmayı ve akış diyagramını yapınız. Çözüm: maas = gun X yevmiye BAŞLA DUR Gun, yevmiye maas

Soru: Klavyeden girilen 3 sayının aritmetik ortalamasını bulan programın algoritma ve akış şemasını yazınız. Çözüm: Toplam =S1+S2+S3 Ort = Toplam/3 BAŞLA DUR S1,S2,S3 Ort

Bilgisayar Ortamında Programın Yazılması Problem çözümü kısmında anlatılan adımlar uygulandıktan sonra ortaya çıkan ve sorunumuzu bilgisayar ortamında çözen ürüne program denir. Bazı durumlarda bu ürüne yazılım denebilir. Programlama Nedir? Problem çözümünde anlatılan adımların tümüne birden programlama denilebilir. Çoğunlukla çok iyi tanımlanmış bir sorunun çözümüne dair adımlar ile çözümün oluşturulup bunun bir programlama dili ile bilgisayar ortamına aktarılması Programlama diye adlandırılabilir.

Programlama Dili (Programing Language) Nedir? Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kurallar dizisidir. Bazı programlama dilleri: C, C++, C#, Delphi, Pascal, Visual Basic, Fox Pro, Java, Lisp, Bu dillerden en yaygın kullanılanları Java, C#, Delphi, C++ ve Visual Basic dilleridir. Bir dilin üstünlüğünün parametreleri: Kullanılabilirliği, Gelişim hızı, İhtiyaca kolay cevap vermesi, İşletim sistemi ile uyum seviyesi, Derleme işleminin hızlı olması, Az yer kaplaması, Sistemi optimum kullanması…

Algoritma ve Akış Diyagramları 28.04.2017 DÜŞÜK SEVİYELİ PROGRAMLAMA DİLLERİ Makine Dili Makine dili 0 ve 1 den oluşan bir dildir ve bilgisayarın anladığı yegane dildir. Bu dili direkt kullanmak için hem komutların sayısal karşılıkları ve hem de bilgisayarın bellek adreslemesini de bilmek gerekmektedir. Bu tip dillere düşük seviyeli dil (Low Level Language) adı verilir. Assembly (simgesel) dili: İkili sayı sisteminde yazılmış olan komutları harfli sembollerle ifade ederek üretilen bir dildir. ADD, LDA ve STA gibi… Assembler: Assembly dilini makine diline çevirir. Her programlama dilinin, yazılan programı makine diline çeviren bir derleyicisi ya da yorumlayıcısı vardır. Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları 28.04.2017 DERLEYİCİ ve YORUMLAYICILAR Derleyici (Compiler) Nedir? Bir programlama dili ile bilgisayara aktarılan programın bilgisayarın anlayabileceği Makine Diline çevirmeyi sağlayan ve yazılan programda söz dizim hatalarının olup olmadığını bulan yazılımlardır. Her Programlama dili için bir derleyici olması gerekmektedir. C, PASCAL, COBOL, DELPHI derleyicisi olan yüksek seviyeli dillerdir. PROGRAM DERLEYİCİ ÇIKTI AMAÇ PROGRAM Yorumlayıcı (Interpreter) Nedir? Yorumlayıcılar (Interpreter), yazılan programları makine diline dönüştüren yazılımlardır. Ancak bu dönüşüm, derleyiciden farklı olarak gerçekleştirilmektedir. Yorumlayıcılar her satırı anında makine diline çevirerek çalışır ve dolayısıyla program her çalıştırıldığında her satır yeniden makine koduna dönüştürülür. Bu yüzden yorumlayıcılar yavaş çalışmaktadır. VISUAL BASIC ve MATLAB yorumlayıcısı olan yüksek seviyeli dillerdir. PROGRAM YERİ YORUMLAYICI ÇIKTI Algoritma ve Akış Diyagramları

Derste Kullanılacak Kaynaklar Muhammed Mastar , M. Tahir Yılmaz, Süha Eriş Kodlab Yayınları, 2012 Programlamaya Giriş ve Algoritmalar Doç. Dr. Soner ÇELİKKOL Murathan Yayınevi 2010 Algoritma Geliştirme ve Programlamaya Giriş Fahri VATANSEVER Seçkin Yayınevi, 2015