Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritma ve Programlamaya Giriş. Algoritma Nedir? Algoritma sözcüğü, Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuş olan Ebu Abdullah Muhammed.

Benzer bir sunumlar


... konulu sunumlar: "Algoritma ve Programlamaya Giriş. Algoritma Nedir? Algoritma sözcüğü, Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuş olan Ebu Abdullah Muhammed."— Sunum transkripti:

1 Algoritma ve Programlamaya Giriş

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

3 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 problem karşısında üretilen çözüm yöntemidir.  Bir sorunun çözümü için sunulan mantıksal ve sembolik anlatımdır.

4 Aşağıda bazı problemler verilmiştir. Verilen bu problemler karşısında çözüm yöntemleriniz nelerdir? 1. 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.

5 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:

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

7

8 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

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

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

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

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

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

14 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ı: 1)Değişken isimlerinde Türkçe karakter kullanılmaz. örn:İ,Ş,Ö,Ç...,sayaç, bölme vs. sayac doğru 2)Özel karakter kullanılmaz. :, $, !, ^, (, )... Alan! 3)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 4) A-Z harfleri arasında alfabetik harflerle başlamalı! Değişkenin ilk harfi rakamla başlamaz. Örn: 1A, 1sayac sayac1 5)Değişken ismi, algoritmanın kodlanacağı programlama dillerindeki özel komutlar olamaz.Örn: echo, print, end vs. 6)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.

15 Değişkene Değer Atama: = ş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

16  Matematiksel (aritmetik) işlemler: a.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.

17 Matematiksel yazılım Bilgisayarda yazılımı ab-c+d-6+daa*b-c+d-6+d*a b+c 3 -d/8-b 2 cb+c^3-d/8-b^2*c Örnekler:

18 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 Parantez 1.Parantez Üs alma, soldan sağa doğru 2.Üs alma, soldan sağa doğru Çarpma ve bölme, soldan sağa doğru 3.Çarpma ve bölme, soldan sağa doğru Toplama ve çıkarma, 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/a28 c*d/a*d+b+c*d/a226 c*d/a*d+(b+c)*d/a235

19  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ü MatlabAnlamı = == Eşittir <> ~= Eşit değildir > > Büyüktür < < Küçüktür >= veya => >= Büyük eşittir <= veya =< <= Küçük eşittir

20  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 === Sonuç Bilgisayar dili Doğru (1) True Yanlış (0) False Aşağıdaki tabloda ise mantıksal işlem sonuçları gösterilmiştir:

21  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.

22  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= /2= =

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

24 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

25 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

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

27 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ı…

28

29 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. DÜŞÜK SEVİYELİ PROGRAMLAMA DİLLERİ

30 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. DERLEYİCİ ve YORUMLAYICILAR PROGRAMDERLEYİ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

31 Derste Kullanılacak Kaynaklar 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 Muhammed Mastar, M. Tahir Yılmaz, Süha Eriş Kodlab Yayınları, 2012


"Algoritma ve Programlamaya Giriş. Algoritma Nedir? Algoritma sözcüğü, Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuş olan Ebu Abdullah Muhammed." indir ppt

Benzer bir sunumlar


Google Reklamları