Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Ayrık Yapılar Algoritma Analizi.
STRİNG FONKSİYONLARI.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Algoritma ve Akış Diyagramları
Problemi Çözme Adımları
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Bölüm 4 – Kontrol İfadeleri:1.kısım
Bölüm 2: Program Denetimi
TEMEL BİLGİSAYAR BİLİMLERİ
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Karar ifadeleri ve Döngüler
ALGORİTMA VE AKIŞ ŞEMALARI.
Özyineli Sıralama Algoritmaları
Algoritma ve Akış Diyagramları
TBF Genel Matematik I DERS – 1 : Sayı Kümeleri ve Koordinatlar
Yapısal Program Geliştirme – if, if-else
ALGORİTMA ve PROGRAMLAMA
Görsel C# ile Windows Programlama
Bilgisayar Programlama
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bilgisayar Programlama Güz 2011
Algoritmalar (Algoritms)
Temel tanımlar ve işleyiş
Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması
MATLAB’te Döngüler.
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
C#’TA DÖNGÜLER onbirc.com/133.
ALGORİTMA.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
TEK Mİ ÇİFT Mİ? TOPLA YA DA ÇIKAR.
Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması
BİL 102 BİLGİSAYAR PROGRAMLAMA DERS 1. PROGRAM GELİŞTİRME AŞAMALARI 1- Probleme ilişkin veriler nelerdir? 2- Çözüm yöntemi nasıl olacaktır? 3- Çözüm sonucunda.
PROGRAMLAMA 2. Hafta TEMEL KAVRAMLAR.
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
ALGORİTMA VE AKIŞ ÇİZELGELERİ
Algoritma Mantığı ve Akış Diyagramları
Algoritmalar ve Programlama I Ders 8:DİZİ (VEKTÖR) KAVRAMI
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
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.
Ders 2 Algoritma İfade Şekilleri
PROGRAMLAMA MANTIĞI, ALGORİTMA PROBLEM ÇÖZME
Akış Diyagramları - 1. Akış Diyagramı  Algoritmalar doğal dille yazıldıklarında herkes tarafından aynı biçimde anlaşılmayabilir.  Ancak, akış diyagramlarında.
BÖLÜM 3 AKIŞ DİYAGRAMI.
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi.
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
O R T L G İ M A A Ve Akış şemaları.
BİLGİSAYAR PROGRAMLAMA DERSİ 6. DERS NOTU Konu: Matlab’ de Diziler ve Matrisler.
PROGRAMLAMA TEMELLERİ Burak UZUN Bilişim Teknolojileri Öğretmeni Burak UZUN.
Algoritma ve Akış Şemaları
T.C. ÖMER HALİSDEMİR ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BİLGİSAYAR VE ÖĞRETİM TEKNOLOJİLERİ ÖĞRETMENLİĞİ EĞİTİMDE BİLİŞİM TEKNOLOJİLERİ – 2 DERSİ ALGORİTMALAR.
ANKARA ÜNİVERSİTESİ SAĞLIK BİLİMLERİ FAKÜLTESİ SOSYAL HİZMET BÖLÜMÜ
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Problem Çözme Yaklaşımları
Algoritmanın Hazırlanması
PROGRAMLAMAYA GİRİŞ FORTRAN 77.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
Problem Çözme ve Algoritmalar
Algoritma ve Akış Diyagramları
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Sunum transkripti:

Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin çözümünü yazılı veya sözlü olarak sıralı bir şekilde gösterir. Herhangi bir problemin çözümü için yapılacaklar, yazım işlemi sırasında herhangi bir alternatif duruma yol açmayacak bir şekilde yazılmalıdır.

Bilgisayar programlamada algoritmayı, verilerin bilgisayara hangi çevre biriminden girileceğinin, problemin karar durumlarının ve değişkenlerinin belirlenmesinin, hangi aşamalardan geçirilerek sonuçlara ulaşılacağının ve elde edilecek sonuçların da nereye çıktı olarak gönderileceğinin ifade edilmesi olarak tanımlayabiliriz. Bilgisayar programlamada algoritma, geliştirilecek olan bilgisayar programı yapısının genel olarak belirlenmesi esasına dayanmaktadır.

Algoritmaların Özellikleri: Algoritma geliştirirken dikkat edilmesi gereken hususlar, aşağıdaki gibi sıralanabilir: Algoritmalar Başla komutu ile başlar, Bitir komutu ile biter. Algoritmalarda kullanılacak olan karar değişkenleri, sadece bir karara doğru yönlendirilmelidir. Algoritmalar, yapılacak her bir iş için sadece bir adımdan oluşmalıdır.

Algoritmadaki ifadeler, yapılabilecek işleri ya da işlevleri göstermelidir. Anlamsız ve yapılması mümkün olmayan işler, kesinlikle yazılmamalıdır. Karar verme durumunda karar verme kriteri bir kesinlik belirtmelidir. Daha önce de ifade edildiği gibi her bir kararın sadece bir sonuca yönlenmesi sağlanmalıdır.

Algoritmalar Nasıl Geliştirilir? Algoritmalar, temel olarak üç bölümden oluşturulmalıdır. Herhangi bir algoritmanın birinci bölümü, başlama işlemlerinin ve gerekli tanımların yapıldığı kısımdır. İkinci bölümü de problemin tanımlandığı ve çözüm yolları ile karar yapılarının uygulandığı kısımdır. Üçüncü bölümü ise sonuçların elde edildiği ve sonuçların gösterildiği kısımdır.

Algoritmalarda ilk adım daima Başla komutu ile başlar. İkinci ve takip eden adımlarda, veri olarak kullanılacak olan değişkenler tanımlanır. Veri girişleri yapılır. Çözüme ilişkin matematiksel, mantıksal ve/veya işlevsel işlemler gerçekleştirilir. Elde edilecek sonuçları dış ortama aktarabilecek değişkenler oluşturulur. Elde edilen sonuçlar dış ortama aktarılır. Algoritmalarda son adım ise daima Bitir komutu olur.

Toplama İşlemi Algoritması: 1. Adım: Başla 2. Adım: Birinci sayıyı oku 3. Adım: İkinci sayıyı oku 4. Adım: Girilen iki sayıyı topla 5. Adım: Toplam değerini yaz 6. Adım: Bitir (Dur)

Çarpma İşlemi Algoritması: 1. Adım: Başla 2. Adım: Birinci sayıyı oku ve A değişkenine eşitle (ata) 3. Adım: İkinci sayıyı oku ve B değişkenine eşitle 4. Adım: A ve B değerlerini çarp ve çarpım değerini C değişkenine eşitle 5. Adım: C değerini yaz 6. Adım: Bitir (Dur)

Küçükten Büyüğe Doğru Sıralama Algoritmaları: Kabarcık Sıralaması: Kabarcık, bilgisayar bilimlerinde kullanılan yalın bir sıralama algoritmasıdır. Sıralanacak dizinin üzerinde sürekli ilerlerken her defasında iki elemanın birbiriyle karşılaştırılıp, karşılaştırılan elemanların yanlış sırada olmaları durumunda yerlerinin değiştirilmesi mantığına dayanır. Algoritma, herhangi bir değişiklik yapılmayıncaya kadar dizinin başına dönerek kendisini yineler. Adına "Kabarcık" sıralaması denmesinin nedeni büyük olan sayıların aynı suyun altındaki bir kabarcık gibi dizinin üstüne doğru ilerlemesidir. Başlangıçta yer değiştirme sıralaması olarak adlandırılan kabarcık sıralaması, dizi içindeki büyük elemanların algoritmanın her adımında dizinin sonuna doğru doğrusal olarak ilerlemesini sağlar. Bu ilerleme, seçmeli sıralama algoritmasındaki dizideki değeri küçük olan elemanların dizinin başında kümelenmesi yöntemine benzer şekilde gerçekleşir.

Kabarcık sıralaması dizinin başından başlar ve dizi elemanlarını sırayla seçer. Seçilen dizi elemanı kendisinden sonra gelen elemandan büyük ise bu iki elemanın yerleri değiştirilir. Aksi halde bir sonraki elemana geçilir. Bu işlemler sonucunda dizinin en büyük elemanı dizi sonuna yerleştirildiğinden bir sonraki geçişte arama sınırı bir eleman geri çekilir. Bu işlem, herhangi bir değişiklik yapılmayıncaya kadar yinelenerek devam eder. Kabarcık Sıralaması Algoritmasının Bir Örnek Üzerinde Adım Adım İşleyişi: İçeriği [5 1 4 2 8] olan bir dizi kabarcık sıralaması ile küçükten büyüğe doğru aşağıdaki biçimde sıralanır. Her adımda dizinin kalın olarak işaretlenmiş elemanları karşılaştırılan elemanlardır.

Birinci Geçiş: [5 1 4 2 8] [1 5 4 2 8] Burada algoritma ilk iki elemanı karşılaştırır ve yerlerini değiştirir. [1 5 4 2 8] [1 4 5 2 8] [1 4 5 2 8] [1 4 2 5 8] [1 4 2 5 8] [1 4 2 5 8] Burada elemanlar zaten sıralı olduğu için algoritma yerlerini değiştirmez. İkinci Geçiş: [1 4 2 5 8] [1 4 2 5 8] [1 4 2 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] Artık dizi sıralıdır ancak algoritma işlemin bittiğini bilmemektedir. Algoritmanın dizinin sıralandığını anlaması için bütün dizinin üzerinden hiçbir değişiklik yapmadan tam bir geçiş yapması gerekir. Üçüncü Geçiş: [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] [1 2 4 5 8] Sonuç olarak dizi sıralanmıştır ve algoritma sonlanır.

Hızlı Sıralama Algoritması: Hızlı sıralama algoritması, sıralanacak bir sayı dizisini daha küçük iki parçaya ayırıp oluşan bu küçük parçaların kendi içinde sıralanması mantığıyla çalışır. Hızlı sıralama algoritmasının adımları aşağıdaki gibidir: Sayı dizisinden herhangi bir sayı pivot eleman olarak seçilir. Sayı dizisini; pivottan küçük olan sayılar pivotun önüne, pivottan büyük olan sayılar da pivotun arkasına gelecek biçimde düzenlenir (pivota eşit olan sayılar her iki yana da geçebilir). Bu bölümlendirme işleminden sonra, pivot eleman sıralama sonucunda dizideki olması gerektiği yere gelir. Algoritmanın bu aşamasına bölümlendirme aşaması denilir. Pivotun önünde ve arkasında olmak üzere oluşan bu iki sayı dizisi, hızlı sıralama algoritması ile yeniden çağrılarak sıralanır. Algoritma, içinde sayı kalmayan yani eleman sayısı sıfır olan bir alt diziye ulaşana kadar işlemeye devam eder ve sonrasında da sonlanır.

Akış Diyagramları (Flow Charts): Akış diyagramları, algoritmaları sembolik olarak göstermeye yararlar. Algoritmadaki mevcut komutları ifade edecek sembollerden oluşurlar. Her bir sembol belli bir komuta karşılık gelir. Semboller genel olarak kabul görmüş şekiller olmalıdır. Her şekil her komut ifadesinde kullanılamaz.

Çarpma İşlemi Akış Diyagramı:

Bir Üçgenin Alan Hesabı İle İlgili Algoritma ve Akış Diyagramı:

Bir Daire Diliminin Alanına İlişkin Algoritma ve Akış Diyagramı:

1’den n’ye Kadar Olan Sayıların Karelerinin Toplamı İle İlgili Algoritma ve Akış Diyagramı:

Koşul Yapısına İlişkin Akış Diyagramı:

Aşağıdaki y Değerinin Hesabına İlişkin Algoritma ve Akış Diyagramı:

Döngü Yapısına İlişkin Akış Diyagramı: