Algoritma ve Programlama I

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

Algoritmalar ve Programlama. Algoritma

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

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

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

Algoritmanın Hazırlanması

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

Algoritma ve Programlamaya Giriş

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


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

Algoritma ve Akış Diyagramları

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

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

Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA MATLAB

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

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

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

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

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

4- ALGORİTMA (ALGORITHM)

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

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

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

PROGRAMLAMAYA GİRİŞ DERS 2

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

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

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

Bilgisayar Programı Nedir?

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştü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

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

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.

ALGORİTMA VE PROGRAMLAMA I

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Đ

Bilgisayarda Programlama. Temel Kavramlar

3. Bölüm Algoritmalar

Bilgisayar II Dersi. Bölüm-2

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

BLG 1306 Temel Bilgisayar Programlama

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

HSancak Nesne Tabanlı Programlama I Ders Notları

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

PROGRAMLAMA ve YAZILIM. Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK

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

Algoritma ve Akış Diyagramları

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

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

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

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

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

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

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

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

ALGORİTMA VE PROGRAMLAMA II

BÖLÜM 2: ALGORİTMALAR

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

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.

Dr. Musa KILIÇ Öğretim Görevlisi

Yazılım Mühendisliği 1

ALGORİTMA VE PROGRAMLAMA I

SAYISAL ANALİZ. 2. Hafta SAYISAL ANALİZDE HATA KAVRAMI VE HATA TÜRLERİ

BIP116-H14-1 BTP104-H014-1

VERİ TABANI YÖNETİM SİSTEMLERİ I

C Dersi Bölüm 1. Bilgisayar Donanımı

Programlama Dilleri 1. Ders 4: Diziler

Temel Bilgisayar Programlama

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BLG 1306 Temel Bilgisayar Programlama

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

VERİ YAPILARI VE PROGRAMLAMA

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

BİL-142 Bilgisayar Programlama II

VERİ YAPILARI VE PROGRAMLAMA

ALGORİTMA VE PROGRAMLAMA I

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

EM-554 İleri Bilgisayar Programlama Teknikleri Algoritma ve Akış Diyagramları

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

C SHARP UYGULAMA ÇALIŞMASI

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

Özyineleme (Recursion)

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

C Dersleri Bölüm 3 : Program akışı

Algoritmalar ve Karmaşıklık

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Transkript:

SAKARYA ÜNİVERSİTESİ Algoritma ve Programlama I Hafta 1 Yrd. Doç. Dr. Cemil ÖZ Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim" tekniğine uygun olarak hazırlanan bu ders içeriğinin bütün hakları saklıdır. İlgili kuruluştan izin almadan ders içeriğinin tümü ya da bölümleri mekanik, elektronik, fotokopi, manyetik kayıt veya başka şekillerde çoğaltılamaz, basılamaz ve dağıtılamaz. Her hakkı saklıdır 2008 Sakarya Üniversitesi

Algoritma Kavramı ve Özellikleri 1. Algoritma Kavramı Algoritma, bir problem sınıfının sistemli çözümü için; sıralanmış, belirsizlik taşımayan, işlenebilir, sonlu, işlem adımları kümesidir. Algoritma, sayıları kolay ve doğru tanımlama sanattır. Bir işlem dizisinin sonucunu elde etmek için, çok iyi tanımlanmış, sonlu sayıdaki işlem cümlelerinin bütünüdür. Bilgisayar programlamasının temel adımı olan bilgisayarın işleyişine uygun çözüm modelini kurmada bu güne kadar uygulanan yaklaşım çözüm algoritması kurma yöntemidir. Algoritma yaklaşımı, 9. yüzyılda yaşamış Türk İslam matematikçi ve astronomu Harzemli Mehmet in ikinci derece denklemin kolayca çözümü için geliştirdiği çözüm yönteminin genelleştirilmiş şeklidir ve algoritma sözcüğü onun adından türemiştir. Bilgisayarlar düşünemez. Bu sebeple bilgisayarların istenen amaçlara uygun biçimde kullanılabilmesi için programlanması gerekmektedir. Programlama, bir işlemin bilgisayarın anlayabileceği bir biçime dönüştürülmesi işlemidir. Bir programın amaca uygun olarak çalışabilmesi için, belirli aşamaları yerine getirmek gerekmektedir; 1. ANALİZ: Problem analiz edilir ve çözümlenir. 2. TASARIM: Yapılan çözümlemeye göre algoritma tasarımı/akış diyagramı oluşturulur. Doğruluğunun mantıksal sınaması yapılır. 3. KODLAMA: Oluşturulan algoritma/akış diyagramı bir programlama dili ile yazılır (kodlanır). 4. DERLEME: Program derlenir ve çalıştırılır. Yazım hataları varsa düzeltilir. 5. TEST: Program istenilen sonuçları üretmiyor ise 1. adıma dönülür ve problem çözümlenmesi ve algoritma/akış diyagramı gözden geçirilir ve revize edilir. 6. DOKÜMANTASYON: Programın dokümantasyonu oluşturulur. Problem analizi ve çözümlemesi, problemin tanımlanması, problemin giriş bilgileri ve sonuca ulaşmak için bu bilgiler üzerinde yapılması gereken işlemlerin ayrıntılı olarak belirlenmesidir. Algoritma, bir problemin çözümü için yapılması gereken işlemlerin gereken sırada, adım, adım ve basit deyimlerle yazılmış halidir. Akış diyagramı, algoritmaların özel geometrik şekiller ile gösterilmesidir. Algoritmaların ifade edilmesinde akış diyagramlarının yanı sıra, konuşma dili ile programlama dili arasında, sözde kod (pseudo code) adı verilen bir araç kullanılır. Sözde kod, programlar gibi derlenmez ve işlenmez. Her programcı kendi sözde kodunu geliştirebilir. Fakat kişisel sözde kodlar başkaları tarafından anlaşılabilir bir biçimde açık olmalıdır. Derleme, bir programlama dili ile yazılan kodların işletilebilmesi için makine diline çevrilmesidir. Makine dili, bir bilgisayarın anlayabileceği tek dildir. Makine dili ile yazılan programlar yalnızca 0 ve 1 lerden oluşur. Bu dille program yazabilmek için CPU nun iç yapısını bilmek gerekir. Makine dilinde programlama çok karmaşık olduğundan makine dili kodları simgesel (assembly) dili ile ifade edilir. Simgesel (assembly) dillerde,0 ve 1 ler yerine bazı sözcükler ve simgeler kullanılır.

Bellek, üzerine bilgilerin yazılıp silinebileceği hücrelerden oluşur. Her hücrenin sayısal bir adresi vardır. Bu hücrelere çoğu kez sözcük (word) adı verilir. Programlarda yapılan işlemler bellek hücrelerinde saklanan veriler üzerinde yapılır. Örnek: 1. 100 ile 101 numaralı hücrelerdeki bilgileri topla, sonucu 102 numaralı hücreye yaz. 2. 100, 101 ve 102 numaralı hücrelerdeki bilgileri kağıda yaz. 3. Dur. Daha uzun ve karmaşık problemlerde hangi bilginin hangi hücrede bulunduğunun çetelesinin tutulmasının programcıya büyük bir yük getireceği açıktır. Bu nedenle bütün programlama dillerinde hücrelerin sembolik adresleri olan değişken kullanılır. Değişken aynı zamanda o adreste bulunan bilginin adıdır. Yukarında verilen işlem değişkenler ve aritmetik işaretler kullanılarak aşağıdaki şekilde yazılabilir; 1. Z=X+Y. 2. X,Y,Z yi yaz. 3. Dur. Değişken kullanımı program yazımını kolaylaştırır. İki program karşılaştırılırsa X, Y, Z nin sırası ile 100, 101, 102 numaralı hücrelerdeki bilgileri temsil ettiği görülebilir. Fakat programcı açısından X bilgisinin belleğin hangi adresinde yerleştirildiğinin bilinmesi gerekmez. 1.1. Algoritmanın özellikleri Algoritma kurduktan sonra bir programlama dilinde yazılması o dilin deyim yapılarını, kurallarını ve kullanılacak derleyiciyi bilmeyi gerektirir. Bu beceri birkaç aylık bir çalışma sonunda elde edilebilir. Algoritmanın kurulması bir çözümleme işidir. Programcının belirli bir konudaki bilgisine ve algoritma kurma deneyimine bağlıdır. Bu nedenle algoritma kurma becerisinin kazanılması çok daha uzun bir çalışma ve zaman gerektirir. Algoritma kurma becerisi bir programa dilini kullanmaktaki rahatlık ve ustalıkla da doğru orantılıdır.

Kullanılan programlama dili algoritmayı biçimsel açıdan etkiler. Bir algoritmanın sahip olması gereken bazı özellikler vardır. Bunların bir kısmı aşağıda verilmiştir ve bunlar daha da artırılabilir; o Bilgisayarlar düşünemez. Bu yüzden algoritmanın her adımı anlaşılır, basit ve kesin bir biçimde ifade edilmiş olmalıdır. Yorum gerektirmemeli ve belirsiz ifadelere sahip olmamalıdır. o Algoritma etkin olmalıdır. Algoritmada gereksiz tekrarlar bulunmamalıdır. Algoritmalar yapısal ve modüler olmalı ve yazılan bir algoritma daha sonra ihtiyaç duyulduğunda başka algoritmalar tarafından da kullanılabilmelidir. o Algoritmanın sonlu sayıda yürütülebilir adımı olmalıdır. o Algoritmanın girdi ve çıktısı olmalıdır. 1.2. Örnek algoritmalar Örnek alg.1; Problem: klavyeden okunan sayı sıfırdan büyük ise karesini alıp sonucu ekrana yazan, sayı sıfırdan küçük ise yürütmeyi sonlandıran bir algoritmanın tasarlanması. Tasarım: kıyaslama gerektiğinden algoritmada if then (eğer ise) yapısı kullanılacak. Algoritma sözde kodlar ile ifade edildiğinde aşağıdaki şekilde yazılabilir; Adım 1: Oku (a) /* sayıyı a değişkenine oku */ Adım 2: Eğer a<0 ise Adım 6 ya git /* a<0 ise programı durdurmak için Adım 6 ya git */ Adım 3: b=a*a /* a nın karesini al ve b değişkenine ata */ Adım 4: Yaz (b) /* hesaplanan sonucu (b) ekrana yaz */ Adım 5: Adım 1 e git /* yeni sayıyı okumak için Adım 1 e git */ Adım 6: Dur /* programı sonlandır */ Örnek alg.2; Problem: klavyeden okunan iki farklı sayıdan büyük olanı belirleyen ve ekrana yazan bir algoritmanın tasarlanması. Tasarım: iki sayı arasında kıyaslama ve seçim gerektiğinden algoritmada if then else (eğer isedeğilse) yapısı kullanılacak. Algoritma sözde kodlar ile ifade edildiğinde aşağıdaki şekilde yazılabilir; Adım 1: Oku (a) /* birinci sayıyı a değişkenine oku */ Adım 2: Oku (b) /* ikinci sayıyı b değişkenine oku */ Adım 3: Eğer a<b ise eb = b /* a<b ise, büyük olan b yi eb değişkenine ata */ değilse eb = a /* a<b değilse, büyük olan a yı eb değişkenine ata */ Adım 4: Yaz (eb) /* büyük olan sonucu (eb) ekrana yaz */ Adım 5: Dur /* programı sonlandır */

Örnek alg.3; Problem: klavyeden okunan bir reel sayının karekökünü bulup sonucu ekrana yazan bir algoritmanın tasarlanması. Tasarım: öncelikle problemin çözümünün matematiksel olarak ifade edilmesi gerekmektedir; a, karekökü bulunmak istenen sayı olun, x değeri a nın tahmini karekökü ve b değeri ise a nın gerçek karekökü ile tahmin edilen karekökü arasındaki fark olsun. Bu durumda a aşağıdaki şekilde ifade edilebilir; a = (x+b) 2 a = x 2 +2xb+b 2 Küçük olması beklene b 2 değeri ihmal edilirse, b değeri yaklaşık olarak hesaplanabilir; b (a x 2 )/2x hesaplanan b değeri kullanılarak a nın kareköküne daha yakın yeni bir tahmin yapılabilir; x i+1 = x i + b /* burada x i önceki tahmin, x i+1 ise kareköke yakın yeni tahmin değeridir */ Bu şekilde a nın karekökü girerek yakınsayan bir iterasyon (tekrarlama) ile bulunabilir. a nın karekökünü yakınsayarak bulan bu iteratif (mutlak hata b, ε hata değerinden küçük eşit olana kadar işlem tekrar edilecek) algoritma sözde kodlar ile ifade edildiğinde aşağıdaki şekilde yazılabilir (ifade kolaylığı için x i yerine x ve x i+1 yerine y kullanılarak); A1: Oku (a) /* karekökü bulunacak sayıyı a değişkenine oku */ A2: Oku (x) /* ilk tahmini karekökü x değişkenine oku */ A3: Oku (ε) /* kabul edilebilir hata değerini ε değişkenine oku */ A4: b=(a x 2 )/2x /* fark (hata) değeri olan b yi hesapla */ A5: y=x+a /* daha yakın yeni karekök değerini (y) hesapla */ A6: Eğer b ε ise A9 a git /* b ε ise iterasyonu durdurmak için A9 e git */ A7: x=y /* y yeni karekök değerini x değişkenine ata */ A8: A4 e git /* işlemi yeni x tahmini ile tekrarlamak için A4 e git */ A9: Yaz (y) /* en son hesaplanan karekök değerini (y) ekrana yaz */ A10: Dur /* programı sonlandır */ Bu algoritmada işlemlerin bir çevrimin içinde tekrarlandığı ve istenilen hassasiyete ulaşıldığında çevrimin dışına çıkılarak işlemin tamamlandığı görülmektedir. Bilgisayar da program işletilirken bir değişkene yeni bir değer verildiğinde eski taşıdığı değerin kaybolacağı not edilmelidir. Aşağıda bu algoritmanın nasıl çalıştığı, işlemlerin her tekrarında (çevrimin her adımında) değişkenlerin aldığı değerler bir çizelgede verilerek açıklanmıştır.a, x ve ε değerlerinin sırası ile 31.8, 5.0 ve 0.005 olarak okunduğu kabul edilsin.

Çevrim adım no a x ε b y 31.8 5.0 0.005 1 31.8 5.0 0.005 0.68 5.68 2 31.8 5.68 0.005 0.04 5.64 3 31.8 5.64 0.005 0.0001 5.64 Çizelgeden de görüleceği gibi üçüncü çevrim adımında b değeri ε değeri olan 0.005 den küçük olduğu için yeni karekök değeri hesaplanmaz en son hesaplanan karekök değeri y=5.64 olarak kalır ve işlem sonlandırılır. Örnek alg.4; Problem: klavyeden okunan bir dizi harfin alfabetik sıraya konulmasını sağlayan ve sonucu ekrana yazan bir algoritmanın tasarlanması. Tasarım: öncelikle problemin çözümünün mantıksal olarak ifade edilmesi gerekmektedir; Harflerin oluşturduğu diziye h adı verilsin ve dizinin n adet harften oluştuğu kabul edilsin. Örneğin n=5 için h dizisi aşağıdaki şekilde olabilir; B A E C D Dizinin elemanları birbirinden indis kullanılarak (h i şeklinde) ayırt edilecektir. Örneğin yukarıdaki dizide h 3 E harfini ifade etmektedir. Sıralama harfleri ikişer ikişer ele alıp karşılaştırarak ve gerekirse yerlerini değiştirerek yapılacaktır ve bu işlem dizi başına dönülerek harfler alfabetik sıraya getirilene kadar devam ettirilecektir. Örneğin yukarıdaki dizi ele alınır ise, ilk adımda A ile B nin yerleri değiştirilecek ikinci adımda B ile E oldukları yerlerde kalacak, üçüncü adımda C ile E, dördüncü adımda D ile E yer değiştirecektir. Dizi sonuna geldiğinde E yerini bulmuş olacaktır. Bu işlem dizi başına dönülerek harfler alfabetik sıraya getirilene kadar çevrim devam ettirilecektir. Bu işlemi gerçekleştirmek için sözde kod ile yazılan aşağıdaki algoritmada alfabetik sırada önce olan harfin, sonrakinden daha küçük olduğu kabul edilmiştir. A1: Oku (n) /* dizi eleman sayısını ata */ A2: Oku (h dizisi) /* h dizisinin n elemanını oku */ A3: k=n /* k ya n değerini ver */ A4: k=k 1 /* k yı bir eksilterek çevrim sayısını belirle */ A5: Eğer k=0 ise A14 e git /* k=0 a ulaştı ise A14 e git (çevrimi atla) */ A6: i=0 /* dizi indis değerini sıfırla */ A7: i=i+1 /* dizi indis değerini bir artır */ A8: Eğer i>k ise A4 e git /* indis değeri çevrim değerinden büyükse A4 e git */ /* her çevrimde bir harf yerini yerleştiği için */ /* karşılaştırma indisi çevrim değerini aşmıyor,*/ /* yani yerini sağ tarafta yerine yerleşmiş */ /* karakterler tekrar kontrol edilmiyor */ A9: Eğer h i <h i+1 ise A7 ye git /* karşılaştırılan harflerin alfabetik sıralaması doğru ise yer değiştirmeyi atla */ A10: b=h i /* geçici değişken b ye h i değerini ver */ A11: h i =h i+1 /* h i ye h i+1 değerini ver */ A12: h i+1 =b /* h i+1 e geçici b değişkenindeki eski h i değerini ver */ A13: A7 ye git /* kıyaslamayı bir sağa kaydırmak için */ A14: Yaz (h dizisi) /* h dizisinin elemanlarını ekrana yaz */ A15: Dur /* programı sonlandır */

Algoritmanın değişkenlerinin algoritmanın çalışması sırasında alacakları değerler aşağıdaki çizelgede gösterilmiştir. Başlangıçta belirsiz olan değişkenlerin her adım sonunda aldıkları değerler bu çizelgede incelenebilir. Görüleceği gibi algoritmanın bazı adımları sadece bir kez bazı adımları ise birçok kez işlem görmektedir. İşlem adımı Algoritma adımı n h 1 h 2 h 3 h 4 h 5 k i b 1 A1 5 2 A2 5 B A E C D 3 A3 5 B A E C D 5 4 A4 5 B A E C D 4 5 A5 5 B A E C D 4 6 A6 5 B A E C D 4 0 7 A7 5 B A E C D 4 1 8 A8 5 B A E C D 4 1 9 A9 5 B A E C D 4 1 10 A10 5 B A E C D 4 1 B 11 A11 5 A A E C D 4 1 B 12 A12 5 A B E C D 4 1 B 13 A13 5 A B E C D 4 1 B 14 A7 5 A B E C D 4 2 B 15 A8 5 A B E C D 4 2 B 16 A9 5 A B E C D 4 2 B 17 A7 5 A B E C D 4 3 B 18 A8 5 A B E C D 4 3 B 19 A9 5 A B E C D 4 3 B 20 A10 5 A B E C D 4 3 E 21 A11 5 A B C C D 4 3 E 22 A12 5 A B C E D 4 3 E 23 A13 5 A B C E D 4 3 E 24 A7 5 A B C E D 4 4 E 25 A8 5 A B C E D 4 4 E 26 A9 5 A B C E D 4 4 E 27 A10 5 A B C E D 4 4 E 28 A11 5 A B C D D 4 4 E 29 A12 5 A B C D E 4 4 E 30 A13 5 A B C D E 4 4 E 31 A7 5 A B C D E 4 5 E 32 A8 5 A B C D E 4 5 E 33 A4 5 A B C D E 3 5 E 34 A5 5 A B C D E 3 5 E 35 A6 5 A B C D E 3 0 E 36 A7 5 A B C D E 3 1 E 37 A8 5 A B C D E 3 1 E 38 A9 5 A B C D E 3 1 E 39 A7 5 A B C D E 3 2 E 40 A8 5 A B C D E 3 2 E 41 A9 5 A B C D E 3 2 E 42 A7 5 A B C D E 3 3 E 43 A8 5 A B C D E 3 3 E 44 A9 5 A B C D E 3 3 E

45 A7 5 A B C D E 3 4 E 46 A8 5 A B C D E 3 4 E 47 A4 5 A B C D E 2 4 E 48 A5 5 A B C D E 2 4 E 49 A6 5 A B C D E 2 0 E 50 A7 5 A B C D E 2 1 E 51 A8 5 A B C D E 2 1 E 52 A9 5 A B C D E 2 1 E 53 A7 5 A B C D E 2 2 E 54 A8 5 A B C D E 2 2 E 55 A9 5 A B C D E 2 2 E 56 A7 5 A B C D E 2 3 E 57 A8 5 A B C D E 2 3 E 58 A4 5 A B C D E 1 3 E 59 A5 5 A B C D E 1 3 E 60 A6 5 A B C D E 1 0 E 61 A7 5 A B C D E 1 1 E 62 A8 5 A B C D E 1 1 E 63 A9 5 A B C D E 1 1 E 64 A7 5 A B C D E 1 2 E 65 A8 5 A B C D E 1 2 E 66 A4 5 A B C D E 0 2 E 67 A14 5 A B C D E 0 2 E 68 A15 5 A B C D E 0 2 E Çizelgede verilen başlangıç örnek dizisi için algoritma, dizi kısmen kolay olduğu için, 29. adımda alfabetik sıralamayı tamamlamıştır. Fakat algoritma daha karmaşık ve uzun dizileri de değişiklik yapmadan çözebilmesi için bütün kontrolü tamamlayana kadar işleme devam eder.