1 / 78

MIT503 Veri Yapıları ve algoritmalar A lgoritma temsilleri

MIT503 Veri Yapıları ve algoritmalar A lgoritma temsilleri. Y. Doç. Yuriy Mishchenko. Algoritma temsilleri. Ders planı Algoritma temsili ne giriş Kaba veya Sözde Kod (PseudoCode) A kış şemaları (Flow Diagrams). Algoritma temsilleri.

bruis
Download Presentation

MIT503 Veri Yapıları ve algoritmalar A lgoritma temsilleri

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MIT503 Veri Yapıları ve algoritmalarAlgoritma temsilleri Y. Doç. Yuriy Mishchenko

  2. Algoritma temsilleri Ders planı • Algoritma temsiline giriş • Kaba veya Sözde Kod (PseudoCode) • Akış şemaları (Flow Diagrams)

  3. Algoritma temsilleri • Algoritmalar, bir problemin çözümü olarak bir talimat listesiyle belirtilir • Bu talimat listesini temsil etmek için birkaç opsiyon var: • Doğal dil • Bilgisayar kodu • Akış şeması veya sözde kod

  4. Algoritma temsilleri • Bir veri deposunda arama problemi, iki örnek

  5. Algoritma temsilleri • Sıralanmamış veri deposu ise, Birinci eleman ile başlayarak hedefi bulana kadar bütün elemanlara bakmak • Sıralanmış veri deposu ise, Ortadaki elemana hemen bakıp, eğer o eleman hedeften büyük ise, daha önce, değilse, daha sonra aynı şekilde devam etmek • Bunlar doğal dil kullanarak tanımlanmış algoritmaların örneği 2 5 7 11 12 13 17 22 23 30 hedef

  6. Algoritma temsilleri • Bu tanımlamalar algoritmaların ana fikrini genel şekilde açıklayabilmesine rağmen çok kesin değil ve bir program şekline çevirmek için programcıdan baya iş gerektirebilir • Algoritma daha kesin şekilde belirtmek için farklı yöntemleri kullanılmalı

  7. Algoritma temsilleri • Birçok durumda algoritma, bilgisayar program kullanarak direkt olarak temsil edilir • Bu yaklaşımın ana problemi –programlama dilini bilmeyen kişi böyle algoritmaları okuyamaz ve algoritmanın yapısı ve süreçleri programlama dilinin yapıları ve süreçleriyle (mesela değişken tanımları) gereksizce karıştırılır

  8. Sözde Kod • Algoritmalar daha genel olarak belirtmek için kama veya sözde kod (pseudocode) ve akış şemaları (flow diagrams) kullanılır

  9. Sözde Kod • Sözde kod, günlükdili ve aynı zamanda programlamadillerine benzer bir algoritma tanımlama yöntemidir

  10. Sözde Kod • Sözde kod, birkaç temel yapı kullanır ve işlemlerin çoğu için doğal dil kullanır • Sözde kodla verilen algoritmaların önemli amacı, doğal dil ile belirtilmiş algoritmayı daha kesin şekilde tanımlamak, algoritmada kullanılacak tüm verileri değişkenlerolarak kesin şekilde tanımlamak, ve tipik eylemler için (değişkene değer atanması, koşullu ve döngü eylemleri) belirli formatı kullanmaktır

  11. Sözde Kod • En basit bir örnek - çorba pişirme tarifi: • Kullanılacak malzemeler bu durumda değişkenler oluyor, yani • Kullanılacak sebzeler – sebze çeşiti (S) • Kullanılacak tencere – tencere (T) • Kullanılacak su – su (SU) • Kullanılacak tuz – tuz (TUZ) • Kullanılacak tuz miktarı – bir sayı • Bu şekilde değişkenlerin türleri ve doğaları algoritmanın başında tanımlanınca gerçekleştirilecek iş de daha kesin oluyor

  12. Sözde Kod • Çorba pişirme tarifi, değişkenleri kullanarak: • Sebzeleri alın (S olsun) • S’yi yıkayıp kesin • Tencereyi alın (T olsun) • T’ye su eklein (SU olsun) • T’yi ateşe koyun • SU kaynamasını bekleyin • T’ye S’yi ekleyin • BİRAZ miktarı tuz alın (TUZ olsun) • TUZ’yu SU’ya ekleyin • SU tadına bakın; pişmişse servis yapın

  13. Sözde Kod • Çorba pişirme algoritması (değişkenler): • Sebzeleri alın (S olsun) • S’yi yıkayıp kesin • Tencereyi alın (T olsun) • T’ye su eklein (SU olsun) • T’yi ateşe koyun • SU kaynamasını bekleyin • T’ye S’yi ekleyin • BİRAZ miktarı tuz alın (TUZ olsun) • TUZ’yu SU’ya ekleyin • SU tadına bakın; pişmişse servis yapın • Bu talimatlar daha kolay adım adım gerçekleştirilebilir

  14. Sözde Kod • Sözde kodda algoritmadaki tipik eylemler için özel formatlar kullanılır • Genellikle şu formatlar için ingilizce kelimeler kullanılır ama türkçe de olabilir – sözde kodun amacı, algoritmanın doğal diline yakın şekilde tanımlamak • Değişkene değeri atama ( := veya SET,OLSUN) • Koşul (IF-THEN-ELSE, EĞER-İSE-DEĞİLSE) • Döngü, çeşit (FOR veya FOR ALL, BÜTÜN İÇİN) • Döngü, koşula bağlı (WHILE, İKEN) • Seçme (CASE, SEÇME) • Ayrı alt-işlem veya fonksiyon (FUNCTION, FONKSİYON)

  15. Sözde Kod • Atama işlemlerin örnekleri: • Sebzeleri alın (S olsun) • S’yi yıkayıp kesin • Tencereyi alın (T olsun) • T’ye su eklein (SU olsun) • T’yi ateşe koyun • SU kaynamasını bekleyin • T’ye S’yi ekleyin • BİRAZ miktarı tuz alın (TUZ olsun) • TUZ’yu SU’ya ekleyin • SU tadına bakın; pişmişse servis yapın atama atama atama atama

  16. Sözde Kod • Döngü eylemlerin örnekleri: • Sebzeleri alın (S olsun) • S’yi yıkayıp kesin • Tencereyi alın (T olsun) • T’ye su eklein (SU olsun) • T’yi ateşe koyun • SU kaynamasını bekleyin • T’ye S’yi ekleyin • BİRAZ miktarı tuz alın (TUZ olsun) • TUZ’yu SU’ya ekleyin • SU tadına bakın; pişmişse servis yapın Çeşit döngü Koşullu döngü Koşullu döngü

  17. Sözde Kod • Çorba pişirme tarifinin sözde kodu: • S:=kullanılacak sebzeleri • T:=kullanılacak tencere • TUZ:=BİRAZ miktarda tuz • DÖNGÜ bütün S’deki s İÇİN, s yıkayın ve kesin • T’ye su ekleyin • SU:=T’deki su • T’yi ateşe koyun • SU kaynamamış İKEN bekleyin • T’ye S’yi ekleyin • T’ye TUZ’yuekleyin • SU tadı pişmemiş İKEN bekleyin • servis yapın

  18. Sözde Kod • Çorba pişirme tarifinin sözde kodu (ingilizce): • S:=kullanılacak sebzeleri • T:=kullanılacak tencere • TUZ:=BİRAZ miktarda tuz • FOR ALL s in S, s yıkayın ve kesin • T’ye su ekleyin • SU:=T’deki su • T’yi ateşe koyun • WHILE SU kaynamamış, bekleyin • T’ye S’yi ekleyin • T’ye TUZ’yuekleyin • WHILE SU tadı pişmemiş, bekleyin • servis yapın

  19. Sözde Kod • Özetleme, sözde kodu kullanarak • Doğal dilinden daha kesin ve biçimsel algoritmanın temsili sağlarız • Bütün kullanılacak nesneler kesin değişken olarak belirtiriz • Kullanılacak değişkenlerin türleri ve değerleri bütün zamanlarda kesin • Değer atanma, koşul işlemler ve döngü işlemler (tekrarlama) gibi tipik eylemleri belirli formatlar kullanarak belirtiriz • S:=kullanılacak sebzeleri • T:=kullanılacak tencere • TUZ:=BİRAZ miktarlı tuz • DÖNGÜ bütün S’deki s İÇİN, s yıkayın ve kesin • T’ye su ekleyin • SU:=T’deki su • T’yi ateşe koyun • SU kaynamamış İKEN bekleyin • T’ye S’yi ekleyin • SU’ya TUZ’yuekleyin • SU tadı pişmemiş İKEN bekleyin • servis yapın

  20. Sözde Kod • İkiye bölme algoritması (doğal dil): • Sıralanmış veri deposunda ilk önce orta elemanına bakıp, eğer o eleman hedeften büyükse, daha önce, değilse, daha sonra, hedef buluna kadar devam ediyoruz

  21. Sözde Kod • İkiye bölme algoritması: • Kullanılacak veriler değişkenler olarak atıyoruz • Giriş veri deposu – D, bir dizi • Hedef – H, bir şey • D’nin ortasındaki eleman – O, bir şey

  22. Sözde Kod • İkiye bölme algoritması • H, hedef • D, giriş dizi • O, D dizisinin ortasındaki değeri • HO’ya eşit değil ve D boş dizi değil İKEN, • EĞER OH’dan büyükİSE, D’nin sol yarısı yeni D olsun, DEĞİLSE, D’nin sağ yarısı yeni D olsun • O, (yeni) D dizisinin ortasındaki değeri

  23. Sözde Kod • Değişken atama işlemleri • H, hedef • D, giriş dizi • O, D dizisinin ortasındaki değeri • HO’ya eşit değil ve D boş dizi değil İKEN, • EĞER OH’dan büyükİSE, D’nin sol yarısı yeni D olsun, DEĞİLSE, D’nin sağ yarısı yeni D olsun • O, (yeni) D dizisinin ortasındaki değeri atama atama atama atama atama

  24. Sözde Kod • Koşullu işlem • H, hedef • D, giriş dizi • O, D dizisinin ortasındaki değeri • HO’ya eşit değil ve D boş dizi değil İKEN, • EĞER OH’dan büyükİSE, D’nin sol yarısı yeni D olsun, DEĞİLSE, D’nin sağ yarısı yeni D olsun • O, (yeni) D dizisinin ortasındaki değeri eğer-ise koşul

  25. Sözde Kod • Döngü işlem • H, hedef • D, giriş dizi • O, D dizisinin ortasındaki değeri • HO’ya eşit değil ve D boş dizi değil İKEN, • EĞER OH’dan büyükİSE, D’nin sol yarısı yeni D olsun, DEĞİLSE, D’nin sağ yarısı yeni D olsun • O, (yeni) D dizisinin ortasındaki değeri Koşullu döngü

  26. Sözde Kod ATAMALAR • İkiye bölme algoritması: • H:=hedef değeri • D:= verilen sayı dizisi • O:= D’nin ortadaki değeri • (O!=H ve O boş değil)İKEN • EĞER O H’dan büyük İSED:=D’nin sağa yarısıDEĞİLSE D:=D’nin sağa yarısı • O:= D’nin ortadaki değeri

  27. Sözde Kod • İkiye bölme algoritması: • H:=hedef değeri • D:= verilen sayı dizisi • O:= D’nin ortadaki değeri • (O!=H ve O boş değil)İKEN • EĞER O H’dan büyük İSED:=D’nin sağa yarısıDEĞİLSE D:=D’nin sağa yarısı • O:= D’nin ortadaki değeri eğer-ise KOŞULLAR

  28. Sözde Kod KOŞULLU DÖNGÜ • İkiye bölme algoritması: • H:=hedef değeri • D:= verilen sayı dizisi • O:= D’nin ortadaki değeri • (O!=H ve O boş değil)İKEN • EĞER O H’dan büyük İSED:=D’nin sağa yarısıDEĞİLSE D:=D’nin sağa yarısı • O:= D’nin ortadaki değeri

  29. Sözde Kod • İkiye bölme algoritmasının sözde kodu: • H:=hedef değeriD:= verilen sayı dizisiO:= D’nin ortadaki değeri(O!=H ve O boş değil)İKEN EĞER O>H İSE D:=D’nin sol yarısıDEĞİLSED:=D’nin sağ yarısı O:= D’nin ortadaki değeri

  30. Sözde kod yapıları

  31. Sözde kod yapıları • KOŞUL İŞLEM • EĞER koşul İSE doğru ise işlemler DEĞİLSE aski halde işlemler EĞER SONU • Eğer koşul doğru ise, belirtilen işlemleri işletilir

  32. Sözde kod yapıları • KOŞUL İŞLEM • IF koşul THEN doğru ise işlemlerELSE aski halde işlemler END IF • Eğer koşul doğru ise, belirtilen işlemleri işletilir

  33. Sözde kod yapıları • KOŞULLU İŞLEM, birkaç koşul formu • EĞER 1. koşul İSE doğru ise işlemlerEĞER 2. koşul İSE doğru ise işlemler ...AKSİ HALDE aski halde işlemler EĞER SONU

  34. Sözde kod yapıları • KOŞULLU İŞLEM, birkaç koşul formu • IF 1. koşul THEN doğru ise işlemlerELSE İF 2. koşul THEN doğru ise işlemler...ELSE aski halde işlemler END IF

  35. Sözde kod yapıları • KOŞULLU DÖNGÜ • (koşul) İKEN doğru iken işlemlerDÖNGÜ SONU • Koşul doğrudur iken belirli işlemleri tekrar tekrar işletilir

  36. Sözde kod yapıları • KOŞULLU DÖNGÜ • WHILE (koşul) DO doğru iken işlemlerEND WHİLE • Koşul doğru iken belirli işlemleri tekrar tekrar işletilir

  37. Sözde kod yapıları • KOŞULLU DÖNGÜ (2. form) • DÖNGÜ doğru iken işlemler(koşul) İKEN • Önceki döngü gibi ama koşulu döngünün işlemlerinden sonra kontrol edilir

  38. Sözde kod yapıları • KOŞULLU DÖNGÜ(2. form) • REPEAT doğru iken işlemlerUNTIL koşulu DO • Önceki döngü gibi ama koşulu döngünün işlemlerinden sonra kontrol edilir

  39. Sözde kod yapıları • ÇEŞİT DÖNGÜ (1. form) • BÜTÜN değişken ilk_değeri’NDEN son_değeri’NE KADAR döngü işlemleriDÖNGÜ SONU • Belirli operasyonları tekrar tekrar yapmak demektir

  40. Sözde kod yapıları • ÇEŞİT DÖNGÜ (1. form) • FOR değişken FROM ilk_değeri TO son_değeri DO döngü işlemiEND FOR • Belirli işlemi tekrar tekrar yapmak demektir

  41. Sözde kod yapıları • ÇEŞİT DÖNGÜ (2. form) • BÜTÜN değer_listesi’NDEKİ değişken İÇİN döngü işlemleriDÖNGÜ SONU • Bütün “değer listesi” için belirli işlemi tekrar tekrar yapmak demektir

  42. Sözde kod yapıları • ÇEŞİT DÖNGÜ (2. form) • FOR değişken İN değer_listesi DO döngü işlemleriEND FOR • Bütün “değer listesi” için belirli işlemi tekrar tekrar yapmak demektir

  43. Sözde kod yapıları • SEÇME İŞLEMİ • SEÇME ifade 1. değeri: doğru ise işlem 2. değeri: doğru ise işlem ...ASKİ HALDE: aksi halde işlemSEÇME SONU • İfadeye göre değer listesinden bir değeri seçip uyan işlem yapmak demektir

  44. Sözde kod yapıları • SEÇME İŞLEMİ • CASE ifade OF 1. değeri: doğru ise işlem 2. değeri: doğru ise işlem ...OTHERS: aksi halde işlemEND CASE • İfadeye göre değer listesinden bir değeri seçip uyan işlem yapmak demektir

  45. Sözde kod yapıları • ALT-İŞLEM veya FONKSİYON • FONKSİYON fonksiyon_adı (argumanlar) yapılacak işlem SONUÇ sonuçFONKSİYON SONU • Daha sonra algoritmada kullanılacak ve bir sonucu verecek ayrı alt-işlem veya fonksiyon demektir

  46. Sözde kod yapıları • AYRI ALT-İŞLEM veya FONKSİYON • FUNCTION fonksiyon_adı (argumanlar) yapılacak işlem RETURN sonuçEND FUNCTION • Daha sonra algoritmada kullanılacak ve bir sonucu verecek ayrı alt-işlem veya fonksiyon demektir

  47. Sözde kod yapıları • ALT-İŞLEM veya FONKSİYON (kullanma) • ÇAĞIR fonksiyon_adı (argumanlar) (1. form)fonksiyon_adı (argumanlar) (2. form) • Alt-işlemi işletmek ve sonucunu elde etmek

  48. Sözde kod yapıları • ALT-İŞLEM veya FONKSİYON (kullanma) • CALL fonksiyon_adı (argumanlar) (1. form)fonksiyon_adı (argumanlar) (2. form) • Alt-işlemi işletmek ve sonucunu elde etmek

  49. Sözde kod yapıları Koşullu işlemleri • IF koşul THEN işlem ELSE işlem END IF • CASE (ifade) değer-işlem listesi OTHERS işlem END CASE

  50. Sözde kod yapıları Döngü işlemleri • WHILE koşul DO işlem END WHILE • REPEAT işlem UNTIL koşul DO • FOR iteratör değişkeni FROM ilk_değer TO son_değer DO işlemEND FOR • FOR iteratör değişkeni İN liste DO işlem END FOR • CASE (ifade) değer-işlem listesi OTHERS aksi halde işlem END CASE

More Related