Hoşgeldin Sivil

 
  Tema

Algoritma
Forum Yöneticisi : Administrator | Bu Bölümde Yetkili Tüm Yöneticiler? | Konuyu Okuyanlar?
CW Forum Ana Sayfa
        Algoritma
Facebook'ta Paylaş   Yeni konu aç
Algoritmaya Giriş
<<12
 Konu Kalitesi  %7
Oy Ver   
Gönderilme Tarihi: 15 Haziran 2010 saat 6:30PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



LostFace

Simgem
Binbaşı

Odamdan
08 Eylül 2009
1334   Mesaj
Durum: Null
Mode : Default


Aktiflik
Seviye
Deneyim



ALGORİTMA

Algoritma Nedir ?
Algoritma, matematikte ve bilgisayar biliminde bir işi yapmak için tanımlanan, bir başlangıç
durumundan başladığında, açıkça belirlenmiş bir son durumunda sonlanan, sonlu işlemler
(adımlar) kümesidir. Algoritmalar bilgisayarlar tarafından işletilebilirler. Algoritma
kelimesi, Özbekistan’ın Harezm, bugünkü Türkmenistan’ın Khiva kentinde doğmuş Ebu Abdullah
Muhammed bin Musa el Harezmi isimli Türk matematikçinin adından gelir. Batılılar, el Harezmi
(Al-Khwarizmi)(Latincede Algoritmi) sözcüğünü telaffuz edemedikleri için terim bu şekilde
kalmıştır.

Bu wikipedianın algoritma hakkındaki düşünceleri :) Şimdide biz kendi düşüncelerimizi aktaralım
Algoritma bir olayda gerçekleşen olaylar sırası diyebiliriz :)Daha düzgün bir tanım yapacak
olursak ;Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma
denir.Evet bu biraz daha bilimsel oldu.

Algoritma Neye Yarar ?
    Bir programın hazırlanma aşamaları şöyledir ;

Algoritma sayesinde program yazmadan önce neleri kodlamamız gerektiğini programımızın neler
yapacağını belirlemiş oluruz.Hedefimiz olmadan neyi yapmak istediğimizi bilmeden bir şey
yapmaya çalışmak mantıksız olacağı gibi buda öyledir.İlk başta programın algoritması çıkarılır
ve ardından algoritmadaki işlemler istenilen programlama dili ile koda dökülür.Bu kadar konuştuk
konuştuk bir örnek ver hele bakalım diyebilirsiniz :)

Mesala bir kek yapma algoritması;

1. Pastanın yapımı için gerekli malzemeleri hazırla
2. Yağı bir kaba koy
3. Şekeri aynı kaba yağın üzerine koy
4. Yağ ve şekeri çırp
5. Karışımın üzerine yumurtayı kır
6. Tekrar çırp
7. Kıvama geldi mi diye kontrol et
8. a. Kıvamlı ise 9. adıma devam et
b. Değilse 6. adıma dön.
9. Karışıma un koy
10.Karışıma vanilya, kabartma tozu vb. koy
11.Karışımı Kıvama gelinceye kadar çırp
12.Pastayı Kek kalıbına koy
13.Yeteri kadar ısınan fırına pastayı koy
14.Pişimi diye kontrol et
15. a. Pişmiş ise 16. adıma devam et
b. Değilse 14. adıma dön
16.Keki fırından çıkart
17.Fırını kapat
18.Kekin ı kapat
19.Kekin soğumasını bekle
20.Keki servis edebilirsin.

Bu algoritma günlük hayattan bir örnek. Gerçekte biz her işimizi algoritmik
olarak yaparız ancak bunu farkına varmayız. Yukarıdaki algoritmayı
inceleyecek olursak bir kekin yapılması için gerekli tüm adımlar sıra ile yer
almış durumda.

Algoritma yazılırken her adım açık ve net olmalıdır.Ve her ayrıntı düşünülmelidir.Genelde
algoritma yazılırken başla ile başlanır son ilede biter

Mesala bir toplama algoritması ;

1. BAŞLA
2. A sayısını oku
3. B sayısını oku
4. TOPLAM=A + B işlemini yap
5. TOPLAM değerini ekrana yaz
6. SON

Gerçekte bir algoritma genellikle üç ana bölümden oluşur. Bunlar :
- Algoritmanın giriş ve ilk işlemlerinin yapıldığı bölüm
- Döngüsel bir bölümün olduğu kesim. Bu bölüm iterasyonlarla
bir işlemin sürekli tekrar edilerek sonuca ulaşmayı sağlayan
bölümdür.
- Son işlemlerin yapıldığı bölümdür. Bu bölüm elde edilen
sonuçların ekrana yazılmasını sağlayan bölümdür.

Örneğin birden Klavyeden girilen bir n değerine kadar sayıları toplayan ve
sonucu ekrana yazan bir algoritmayı geliştirelim;

1. BAŞLA
2. N OKU
3. T=0
4. X=1
5. T=T+X
6. X=X+1
7. EĞER X<=N İSE 5. ADIMA GİT
8. T YAZ

Bu ne abicim bunları zaten biliyorum ben zaten yapıyoruz bunları diyebilirsiniz evet algoritma
budur.Tabi basitleri :)Bunlar sayesinde algoritma temelimizi oluşturmaya çalışıyoruz.


Akış Çizgeleri

Bir algoritmanın şekillerle görsel gösterimidir. Dikkat edildiyse algoritma
doğal dille yazıldığı için herkes tarafından anlaşılamayabilir ya da
istenmese de başka anlamlar çıkarılabilir. Ancak akış çizgelerinde her bir
şekil standart bir anlam taşıdığı için farklı yorumlanıp anlaşılamaması
mümkün değildir. Bir algoritmanın ifade edilebilmesi için kullanılan şekiller
ve anlamları şunlardır:





Aritmetik ve Mantıksal ifadeler

Bir takım işlemlerin yapılabilmesi için aritmetik işlemlerin nasıl
tanımlandığını bilmeniz gerekecek. Program akışının doğru bir şekilde
sağlanabilmesi için bazı yerlerde karar verilmesi gereklidir. Bu kararların
verilmesini sağlayacak Mantıksal ifadeler bilgisayarlar tarafından
yapılabilmelidir.

Aritmetik İfadeler
Bir programın istenilen işleri yerine getirebilmesi için hesap yapabilmesi ve
bu hesaplar sonucunda elde edilen değerleri saklayabilmesi gerekmektedir.
Genel olarak tüm programlama dillerinde aritmetik işlemler şu şekilde
tanımlanmıştır:
Değer|Değişken {aritmetik operatör} Değer|Değişken
Bu tip bir gösterimde Değer denilen kesim sabit bir değeri temsil eder.
Değişken ise içerisinde her an farklı bir değer tutabilecek bir tanım ifade
eder. Aritmetik Operatör ise aritmetik işlemin özünü oluşturan bir işleçtir.

Aritmetik Operatör
Kısaca dört işlem olarak da ifade edebileceğimiz işleçlerdir. Çoğunlukla
dört tanedirler ve cebirde kullanılan öncelikleri aynı şekilde kullanırlar;

* Çarpma işlemini gösteren işleçtir. Bölme ile eş önceliklidir.
/ Bölme işlemini gösteren işleçtir. Çarpma ile eş önceliklidir.
+ Toplama işlemini gösteren işleçtir. Çıkarma ile eş önceliklidir.
- Çıkarma işlemini gösteren işleçtir. Toplama ile eş önceliklidir.


   Temel olarak bu işleçler her programlama dilinde bulunur. öncelikleri
yukarıdaki sırada olduğu gibidir. Eş öncelikli aritmetik ifadeler bulunursa
bu ifadelerde işlem soldan sağa doğru yapılır.
Bu işlem önceliklerini değiştirmek için her programlama dilinde "(", ")"
(Parantez aç-kapa) ifadelerini bulabilirsiniz.
Bunlardan hariç olarak bazen üz alma(üst alma) operatörlerinden bahsedilebilir.
bazen de mod operatörü ve tam bölme operatörü gibi değişik ve standart
olmayan operatörler yar alabiliyor.

Aritmetik Operand

   Aritmetik ifadelerde işleme giren tarafların her birine aritmetik operand
yani aritmetik işlenen denir. yukarıdaki tanımda Değer|Değişken ikilisinin
her biri işlenen yani operand tanımını sağlar. Bir aritmetik ifade de bir çift
operand ve bir operatör minimum olması gereken ifadelerdir. Ancak daha
fazla aritmetik işlenen ve işleç olabilecektir. Örneğin A * B + (12 + B)
işlemi de bir aritmetik ifadedir.

Değer Aktarma deyimi
   Genellikle bir aritmetik ifade ile hesaplanan değer başka bir değişkene
aktarılır. Bu işlem çoğunlukla "=" sembolü ile gerçekleştirilir. Ancak başka
bir komut, sembol veya ifade ile de bu değer aktarılması yapılabilir.

Mantıksal ifadeler

-Karşılaştırma Operatörü

=
İki değerin eşit olup olmadığı karşılaştıran işleçtir.

>, >=
İki değerden soldakinin sağdakine oranla büyük olup olmadığını
veya büyük eşit olup olmadığı kontrol eden operatördür.

<, <=
İki değerden soldakinin sağdakine oranla küçük olup olmadığını
veya küçük eşit olup olmadığı kontrol eden operatördür.

<>
İki değerin farklı olup olmadığını karşılaştırılan işleçtir.


-Mantıksal Operatör
Birden fazla mantıksal karşılaştırma deyiminin birleştirilmesini sağlayan
işleçlerdir. VE, VEYA gibi ifadelerdir. Bu operatörler mantıksal ifadelerden
iki veya daha fazlasının mantıksal doğruluk tablolarına göre
birleştirilmesini sağlar.Bunları bazılarımız Lise1 de mantık konusunda görmüşüzdürzaten :)

VEYA için doğruluk tablosu;

P Q P VEYA Q
D D     D
D Y     D
Y D     D
Y Y     Y

VE için doğruluk tablosu;

P   Q    P VE Q
D   D       D
D   Y       Y
Y   D       Y
Y   Y       Y

Son mantıksal operatör DEĞİL operatörü olup tek işlenen alır ve aldığı
işlenenin mantıksal değilini alır. Yani doğru olan değeri yanlışa yanlış olan
değeri doğruya çevirir.
Ben buna döndürme operatörü diyorum :P Erkek giriyo kız oluyor(bknz.Bülent Ersoy)

Algoritma işte bundan ibaret :) Ek olarakda bazı örnek algoritmaları paylaşacağım;

Sıralama Algoritmaları ;

1. Kabarcık Sıralaması(Bubble sort):

Bu sıralama şeklinde hereleman kendisinden bir sonraki elemanla test ediliyor. Verilen
şartın küçük yada büyük olma durumuna göre şarta uyan elemanların yerleri değiştiriliyor.
Bu sıralama yönteminde işlem aşağıdaki gibi yapılır:

eleman ile 2. eleman test edilir. Şart sağlandığında dizi içerisindeki yerleri değiştirilir.
eleman ile 3. eleman test edilir. Şart sağlandığında dizi içerisindeki yerleri değiştirilir...
Bu işlem dizi sonuna kadar devam eder. Eğer baştan sona kadar hiçbir yer değiştirme işlemi
yapılmamışsa dizi sıralanmıştır demektir. Aksi halde dizinin başından itibaren test işlemine
devam edilir.

2.Seçmeli Sıralama (Selection Sort):

Bu algoritmada dizinin bir ucundan başlanır; başından veya sonundan olabilir. Örneğin
dizinin başından başladığı ve küçükten büyüğe doğru sıralama yapılacağı varsayılırsa
algoritmanın davranışı şöyledir: Önce ilk eleman alınır ve daha sonra dizinin içerisindeki
en küçük eleman aranır; bulunduğu zaman ilk eleman ile yer değiştirilir; daha sonra ikinci
eleman alınır ve bu eleman dahil kalan elemanlara arasında ikinci küçük eleman aranır ve
ikinci elemanla yer değiştirilir. Bu işlem dizinin son elemanına kadar tekrarlanırsa dizi
sıralanmış olur.

3. Hızlı Sıralama (Quick Sort):

Hızlı sıralama algoritması böl ve yönet (divide and conquer) politikasına dayanır;
sıralanması istenen dizi belirli bir sınır (pivot) değerine göre iki alt diziye ayrılır.
İkiye ayırma işlemi , bu sınır sayısından küçük olan elemanlar bir tarafa , büyük olan
elemanlar diğer tarafa toparlanarak yapılır. Daha sonra , yine hızlı sıralama algoritması
kullanılarak , bu iki alt dizinin sıralanması istenir.



Şifreleme Algoritmalar;

Sezar Algoritması;

Her eleman belirtilen öteleme sayısına göre alfabadeki o öteleme sayısına göreki sonraki harf olarak
şifrelenir.

ör: mehmet 1 öteleme ile

m->n
e->f
h->ı
m->n
e->f
t->u

mehmet->nfınfu oldu :)


Bir kaç tanede siz çözesiniz diye soru yazıyorum;

1-Klavyeden bir sayı giriliyor.Eger bu sayı 5 den küçükse ekrana sayı 5 den küçüktür eger
büyükse 5 den büyüktür yazmasını saglayan programın algoritmasının tasarlayınız.


2-Araçların en fazla 24 saat kaldıklarını varsaydıgımız bir otoparkda
0-2 saat 150 bin
2-8 saat 300 bin
8-24 saat 500 bin

olarak ayarlanan programın algoritmasını tasarlayınız.

3-Bir ögrencinin geçme kalma notu yapacagımızı varsayarsak not hesaplama sistemi şöyledir.
Fianle girmek için vize ortalaması 40 dan büyük olmalıdır.Vize ortalamasının %40 ile final
notunun %60 ı toplamı 60 dan büyük olursa ve final notu 50 den büyük olursa ders başarılmış
olur degilse başarısız olur.Bu sistemi tasarlayınız

4-Bir ögrencinin yazılı notları girildikten sonra ortalaması 45 den küçükse sınıfta kalıp
kalmıyacagını bulan programın algoritmasını tasarlayınız.

5-Bankalarda ki Qmatik(işlem sırası) programının algoritmasının akış diyagramını çiziniz.
(N adet gişe olduğunu varsayın)

6-1999 yılı itibarı ile ülke nüfusu 60 milyondur. Yıllık nüfus artış oranı %2.3 tür.
Sonraki 10 yılda ülke nüfusunu yıllara göre listeleyen Algoritmayı çizin?

7-Hayatınızın Algoritmasını bu güne kadar olan kısmı çiziniz, okul yılları tekrarlı veya
birden fazla yıl içeriyorsa döngülü sistem kullanılacak?

7 için kendi cevabımı yazayım =(başla->okul>1.adıma dön) :)

Özellikle Üniversiteye Yeni başlıyacak arkadaşların faydalanması gerekn bir döküman oldu
Bazı yerlerde alıntılar vardır.

Selametle||LostFace

___________________________________________
A man with deep dreams ...
     
       
Gönderilme Tarihi: 17 Haziran 2010 saat 11:56PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



cwsaldıray

Simgem
YüzBaşı

 
05 Aralik 2008
176   Mesaj
Durum: Sabırlı
Mode : Default


Aktiflik
Seviye
Deneyim



Eline Sağlık Kardeşim



___________________________________________
Gariptir şu insanoğlu günde bir iki defa kendi eliyle nacis yıkar,sonrada göklerin sahibi
yüce Allah’a karşı çıkar (HASAN BASRİ HZ.)
     
       
Gönderilme Tarihi: 18 Haziran 2010 saat 12:00AM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



CWTurkwars

Simgem
Albay


 
15 Haziran 2007
8047   Mesaj
Mode : Default


Aktiflik
Seviye
Deneyim



Uzmanlık Alanları:
Kişisel Gelişim
Graphic Designer
Social Engineering

Emeğine Sağlık Kardeşim.
     
       
Gönderilme Tarihi: 18 Haziran 2010 saat 6:56PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



KaVGaM

Simgem
Teğmen

antalya
30 Nisan 2008
2   Mesaj
Durum: sabırlı
Mode : Default


Aktiflik
Seviye
Deneyim



eline sağlık kardeş herşeyi yazmışsın fakat bunu pcnin hangi bölmünde gerçekleştirecek insanlar onu yazmamışın.?
     
       
Gönderilme Tarihi: 18 Haziran 2010 saat 8:19PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



LostFace

Simgem
Binbaşı

Odamdan
08 Eylül 2009
1334   Mesaj
Durum: Null
Mode : Default


Aktiflik
Seviye
Deneyim



pc hangi bölümü derken kastınız nedir tam anlamadım da? Algoritmayı ister bir kağıda yazarsınız ister wordu açar ister notdefterini açar yazarsınız sıra ile sonra o algoritma ifadelerini koda döker programınızı oluşturursunuz

___________________________________________
A man with deep dreams ...
     
       
Gönderilme Tarihi: 18 Haziran 2010 saat 9:54PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



Blu-RaY

Gökhan POLAT

Simgem
YüzBaşı

Seo Danışmanı
09 Mart 2010
251   Mesaj
Durum: Google=)))
Mode : Default


Aktiflik
Seviye
Deneyim



Lise 2’de iken algoritma dersimz wardı temelini örenmiştm ama artık aklımda kalan sadece şemalar başla , oku ve dur vs.:D

Sınawdan sonra bu bölümde yogunluk göstericem algoritmayı sökecez Allahn iznyle..:D
     
       
Gönderilme Tarihi: 19 Haziran 2010 saat 12:27AM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



LostFace

Simgem
Binbaşı

Odamdan
08 Eylül 2009
1334   Mesaj
Durum: Null
Mode : Default


Aktiflik
Seviye
Deneyim



Bu konuda pek farklı birşeyler veremedim gerçi forumda bulunan konuların hepsini kendi hitabımla bir araya getirdim yakında inşAllah orta düzey algoritmaya başlıyacaz

___________________________________________
A man with deep dreams ...
     
       
Gönderilme Tarihi: 26 Haziran 2010 saat 5:45PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



ChiTaq

Mal Ömer

Simgem
Teğmen

Yalova
25 Haziran 2010
14   Mesaj
Mode : Default


Aktiflik
Seviye
Deneyim



güzl anlatın saqol

___________________________________________
src= "forum_images/notimage.gif
     
       
Gönderilme Tarihi: 05 Temmuz 2010 saat 12:44PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



frt002

Simgem
Teğmen

istanbul
23 Haziran 2010
80   Mesaj
Mode : Default


Aktiflik
Seviye
Deneyim



keşke lisede algoritma dersi olsa iyi olur bizim gibi yeni nesiller için

___________________________________________
vatanıma ezanıma bayrağıma dil uzatanın kulağına selasını okurum
     
       
Gönderilme Tarihi: 06 Temmuz 2010 saat 1:56AM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



Hamza ERDOĞAN

Simgem
Teğmen

istanbul
26 Kasim 2007
4   Mesaj
Mode : Default


Aktiflik
Seviye
Deneyim



Çok iyi ve yararlı bir paylaşım . Ellerine sağlık .
     
       
Gönderilme Tarihi: 10 Temmuz 2010 saat 9:46AM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



BigB@ng

Ömer KONUKSEVER

Simgem
YüzBaşı

Samsun
16 Kasim 2009
654   Mesaj
Durum: Samsun
Mode : Default


Aktiflik
Seviye
Deneyim



öncelikle selamlar herkeze

LostFace kardeşim çok güzel bir paylaşım yapmış benim gibi yeni başlayanlar için teşekkür ediyorum



___________________________________________
Savaşan kaybedebilir, savaşmayan çoktan kaybetmiştir.
     
       
Gönderilme Tarihi: 11 Temmuz 2010 saat 12:14PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



K@NuN!

Simgem
Teğmen

Dünya...
23 Ağustos 2008
141   Mesaj
Durum: ASP
Mode : Default


Aktiflik
Seviye
Deneyim



(: Algoritma konusuna yeni giriş yaptığımızda okulda ilk sınavdan 0 almıştım :=) Halbuki çok kolaymış sonradan anladım
     
       
Gönderilme Tarihi: 15 Temmuz 2010 saat 11:07PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



CWRampi

Simgem
Binbaşı

static void main( )
03 Temmuz 2010
314   Mesaj
Durum: Networking
Mode : Default


Aktiflik
Seviye
Deneyim



Algoritma Reference Manual... +10 :)

___________________________________________
*


     
       
Gönderilme Tarihi: 16 Temmuz 2010 saat 6:24PM - Kayıtlı IP Mesaj İhbar!   Alıntı Yap      



-Kadir-



Simgem
Teğmen

 
07 Haziran 2010
21   Mesaj
Mode : Default


Aktiflik
Seviye
Deneyim



Emeğine sağlık.

___________________________________________
Derdi Dünya Olanın,Dünya Kadar Derdi Olur.
(Yunus Emre)


     
       
  <<12
Git:   Yeni konu aç

WikiTurk | Bilisim Güvenligi Dernegi

Reklamlar: davutsahin.net | basaranteknoloji.com.tr | sinirsizharca.com

Uyarı !
Cyber-Warrior tescilli bir marka olup, 556 Sayılı Markaların Korunması Hakkında K.H.K'ye göre yasal olarak korunmaktadır.
Cyber-Warrior'un Marka imajına zarar verici her türlü eylemde bulunan, yazı, yorum, sair içerikler barındıranlar hakkında 556 Sayılı kanunun ilgili hükümlerine göre yasal işlem başlatılmaktdır.
Ayrıca Cyber-Warrior'a ait isim, marka ve logoların izinsiz kullanılması yine aynı kanun hükümlerine göre suç sayılmaktadır. Marka No : 2010 46588 Korunma Tarihi : 15.07.2010


Yasal Uyarı | Sitemizin Çizgisi | Kullanım Sartları ve Üyelik Sözleşmesi | Telif Hakları Politikası / Copyright Policy | Cyber-Warrior.Org .Com .NET