Masonlar.org - Harici Forumu

 

Gönderen Konu: Algoritma Nedir ?  (Okunma sayısı 5287 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Ağustos 20, 2011, 01:49:29 öö
  • Ziyaretçi

Algoritma, bir işin hangi etaplardan geçilerek yapılacağını gösteren çalışma planıdır. Algoritma bir programlama dili değildir. Programlama dillerine yol gösteren bir yöntem dizisidir. Her dilde algoritma yazılıp uygulanabilir. Örneğin bir cep telefonunun el kitapçığında yazan, rehber kaydı girmek için izlenecek yollar, o işin algoritmasıdır.
Algoritma yazarken, programın çalışması için kullanılan kaynakların, yapılması gereken kontrollerin veya işlemlerin açıkça ifade edilmesi gerekir. Ayrıca iyi bir algoritma, tüm ihtimalleri kontrol edip istenmeyen durumlarda ne yapılması gerektiğini belirtmesi gerekir.
Örneğin, bir e-ticaret uygulamasında ürün satış algoritması çıkarılır. Satın alınacak ürün seçildikten sonra, kullanıcıdan adet miktarı bilgisi alınır. Uygulama yazılırken, bu değerin Int16 veri tipinde olacağına karar verildiği düşünülürse; kullanıcının girdiği adet miktarı bu değişkene atanmadan önce kontrol edilmelidir. Eğer Int16 veri tipinin tutamayacağı bir değer girilmişse, çalışma anında uygulamanın beklenmedik şekilde durduğu ya da istenmeyen sonuçların üretildiği gözlemlenir. Ayrıca sistemin verdiği hata, kullanıcının anlamayacağı bir mesaj içereceği için, uygulamanın imajını da kötü yönde etkiler.
Veri girişi: Çalışma zamanında çoğu zaman, işleyişin tamamlanması için dışarıdan bir bilgi girilmesi gerekir. Algoritmanın çalışması için ihtiyaç duyduğu veriler, işlemi başlatan kişiden veya belirtilen bir kaynaktan alınabilir. Bu bilgiler sağlanmadan işlem devam etmez.
Kararlar: Karar ve kontrol yapıları algoritmanın akışını yönlendiren en önemli kavramlardır. Girilen veya işlem sonucunda elde edilen veriler, işlemin amacına göre kontrol edilir ve sonuca göre algoritma akışı istenilen yere yönlendirilir.
İşlemler: Algoritmanın akışı boyunca veriler üzerinde değişiklikler, yeni değer atamaları gibi işlemlere ihtiyaç duyulur. Algoritmalar kurulurken, yapılan işlemlerin yalın halde, tek tek yazılması okunabilirliği arttırır.
Algoritmalar adım sırası ile çalışır ve karar yapıları sonucunda farklı bir yere yönlendirilmediği müddetçe, bir sonraki adım ile işlemeye devam eder.
Örnek: Telefon kulübesinden telefon açmak için örnek bir algoritma
1. Telefon kulübesine git
2. Telefon kartı al
3. Telefon sırasında kaç kişi olduğuna bak
4. Kişi sayısı sıfırdan fazlaysa 3 e dön
5. Kapı kapalıysa kapıyı aç
6. İçeri gir, kapıyı kapat
7. Telefon kartını telefona yerleştir
8. Ahizeyi kaldır
9. Numarayı çevir
10. Konuşmanın bitip bitmediğine bak
11. Konuşma bittiyse kartı al, bitmediyse 10 a dön
12. Bir daha konuşma yapılacaksa 7 e dön
13. Kapıyı aç, dışarı çık
Bu algoritmanın işlemesi için, her ihtimal gözden geçirilerek, algoritma akışı gerekli yerlere yönlendirilir. Örneğin kapının kapalı olması durumunda kapıyı açmak için gerekli komutlar verilmelidir. Bu algoritmanın ihtiyaç duyduğu veriler, ya kullanıcı tarafından verilir ya da işlem başlamadan önce belirlidir. Sıradaki kişi sayısı, telefon kartı gibi veriler kullanıcı tarafından sağlanmış; çevrilecek numara, algoritma başlamadan önce belirlenmiştir.



Ağustos 20, 2011, 09:55:13 öö
Yanıtla #1
  • Ziyaretçi

Eski anılarımı canlandırdınız Sayın Servan.

1995-97 yılında bilgisayar programcılığı okumuştum. 286 pc ler vardı. Harddisk yoktu makinelerde. Diskete sığabildiği kadar ms-dos, pascal, c, clipper, dbase gibi dilleri görmüştük. Staj yaptığım yerde windows 98 i görünce özellikle de quake adlı oyunu, ufo görmüş gibi şaşırmıştım. Yazılım ve donanım dünyası gerçekten de hayal sınırlarını aşmış durumda.

Temel dosyalama metoduyla pascalda ve c dilinde örneğin bir sınıfın öğrencilerini ve öğrencilerin vize final sınavlarını takip eden, bütünlemeye kalanları listeleyebilen  vb. veri takip programı yazardık okulda. Bu dönemde hocamız bize pascal da binary data tipinin yaratılması veri aktarımı konularını işlemiş sadece bu binary data tipindeki yaratılan veriden veri silmeyi okul bitirme ödevi olarak vermişti. Bir kaç hafta uğraştık fakat kafam basmıyordu. 1000-1500 sayfalık pascal ve delphi kitaplarında da yoktu. Eski kitapçılarda bulduğum incecik bir pascal kitabında iki ünlü rus matematikçinin yazdığı kodu buldum. İlginçtir sadece binary data tipinden dosya silme metodu vardı. Ben o kodu alıp öğrenci takip yapısına uyarlamam 3 haftamı aldı fakat sonuçta kod çalıştı. Sınıfı bütünlemeye kalmadan sadece ben geçmiştim :) Fakat hala bu data tipininden veri silmeyi aklım alabilmiş değil. Bunun temel nedeni de kendi kendini çağıran fonksiyonlardan oluşmasıydı. Bu kendi kendini çağıran fonksiyon meselesi insanın beynini oldukça zorluyor.

Şimdi bakıyorum Oracle ve Sql gibi veri tabanı motorlarına bir kaç kod yazarak olağan üstü hızda veri tarama yapılabiliyor. Örneğin klasik dosyalama metodunda ortalama 5000 veriden oluşan bir veri bankasında veri arattığınızda yazdığınız program aradığınız veriyi bulmak için saatlerce donuyordu. Şimdi örneğin facebookda yüzmilyonlarca insanın verileri saliseler içinde veri aktarımı yapıyor. Hakikaten de aklım almıyor.

Saygılarımla.
« Son Düzenleme: Ağustos 20, 2011, 10:11:53 öö Gönderen: Masor1976 »


Ağustos 21, 2011, 01:19:54 öö
Yanıtla #2
  • Ziyaretçi

Eski anılarımı canlandırdınız Sayın Servan.

1995-97 yılında bilgisayar programcılığı okumuştum. 286 pc ler vardı. Harddisk yoktu makinelerde. Diskete sığabildiği kadar ms-dos, pascal, c, clipper, dbase gibi dilleri görmüştük. Staj yaptığım yerde windows 98 i görünce özellikle de quake adlı oyunu, ufo görmüş gibi şaşırmıştım. Yazılım ve donanım dünyası gerçekten de hayal sınırlarını aşmış durumda.

Temel dosyalama metoduyla pascalda ve c dilinde örneğin bir sınıfın öğrencilerini ve öğrencilerin vize final sınavlarını takip eden, bütünlemeye kalanları listeleyebilen  vb. veri takip programı yazardık okulda. Bu dönemde hocamız bize pascal da binary data tipinin yaratılması veri aktarımı konularını işlemiş sadece bu binary data tipindeki yaratılan veriden veri silmeyi okul bitirme ödevi olarak vermişti. Bir kaç hafta uğraştık fakat kafam basmıyordu. 1000-1500 sayfalık pascal ve delphi kitaplarında da yoktu. Eski kitapçılarda bulduğum incecik bir pascal kitabında iki ünlü rus matematikçinin yazdığı kodu buldum. İlginçtir sadece binary data tipinden dosya silme metodu vardı. Ben o kodu alıp öğrenci takip yapısına uyarlamam 3 haftamı aldı fakat sonuçta kod çalıştı. Sınıfı bütünlemeye kalmadan sadece ben geçmiştim :) Fakat hala bu data tipininden veri silmeyi aklım alabilmiş değil. Bunun temel nedeni de kendi kendini çağıran fonksiyonlardan oluşmasıydı. Bu kendi kendini çağıran fonksiyon meselesi insanın beynini oldukça zorluyor.

Şimdi bakıyorum Oracle ve Sql gibi veri tabanı motorlarına bir kaç kod yazarak olağan üstü hızda veri tarama yapılabiliyor. Örneğin klasik dosyalama metodunda ortalama 5000 veriden oluşan bir veri bankasında veri arattığınızda yazdığınız program aradığınız veriyi bulmak için saatlerce donuyordu. Şimdi örneğin facebookda yüzmilyonlarca insanın verileri saliseler içinde veri aktarımı yapıyor. Hakikaten de aklım almıyor.

Saygılarımla.

Teknoloji gelişiyor Sayın Masor1976 ;

:) teknolojik gelişmeler çok hızlı değişim içerisindeler şimdilerde microsoft yeni veri tabanları geliştiriyor ama bunları hala açıklamış değiller

Saygılarımla


Ağustos 25, 2011, 11:04:02 ös
Yanıtla #3

Algoritma hayatımızın ta kendisi de denilebilir bence :) Zaten telefon kulübesi örneği de çok canlı bir örnek olmuş. Ben algoritmanın anlamını, "çay nasıl demlenir?" sorusunun üstünden öğrenmiştim :)  :)
Şaka bir yana, bilgisayar programlamanın olmazsa olmazı. Bir program yazacakken, harcanacak zamanın gerekirse %60-%70'ini buraya ayırmak en doğrusu. Satranç oynamak da algoritma oluşturabilme yetimizi arttırıyor. Yani olasılıklar üzerinde ne kadar uğraşırsak, o kadar güzel ve düşük maliyetli-yüksek performanslı algoritmaları ortaya çıkarabiliriz.
Saygılarımla
"İsteyen yavaş gitsin, ister hızlı koşsun, arayan bulur. İki elinle isteğe sarıl; çünkü istektir iyi yola kılavuz olan."
Mevlana


 

Benzer Konular

  Konu / Başlatan Yanıt Son Gönderilen:
12 Yanıt
16956 Gösterim
Son Gönderilen: Temmuz 02, 2014, 01:23:29 öö
Gönderen: propulsion
0 Yanıt
4171 Gösterim
Son Gönderilen: Mayıs 29, 2007, 03:23:09 ös
Gönderen: just_McCann
3 Yanıt
5276 Gösterim
Son Gönderilen: Temmuz 08, 2013, 03:34:33 öö
Gönderen: GOASISG
6 Yanıt
7123 Gösterim
Son Gönderilen: Ağustos 13, 2007, 02:15:17 öö
Gönderen: shemuel
1 Yanıt
4469 Gösterim
Son Gönderilen: Temmuz 25, 2016, 11:03:09 ös
Gönderen: Ve-nice
Lsd nedir?

Başlatan Einsof Kimya

2 Yanıt
57691 Gösterim
Son Gönderilen: Haziran 01, 2007, 03:22:36 ös
Gönderen: Einsof
2 Yanıt
4375 Gösterim
Son Gönderilen: Aralık 12, 2014, 01:16:58 öö
Gönderen: ABCDEF
Dininiz nedir?

Başlatan Piyon « 1 2 3 4 5 » Anketler ve Istatistikler

47 Yanıt
31045 Gösterim
Son Gönderilen: Temmuz 28, 2017, 05:39:10 öö
Gönderen: night manager
2 Yanıt
13630 Gösterim
Son Gönderilen: Temmuz 31, 2008, 04:09:01 ös
Gönderen: semsin
13 Yanıt
15071 Gösterim
Son Gönderilen: Haziran 12, 2012, 02:16:09 ös
Gönderen: NOSAM33