Algoritma Nedir, Akış Şeması Nedir |
Algoritma, bir problemi çözmek için kullanıma yol ya da yöntemlere verilen isimdir. Algoritma kelimesi ilk defa Müslüman bilim adamı el Harezmi tarafından kullanılmıştır.
Algoritmalar hazırlanırken mutlaka başla komutu ile başlanır ve bitir komutu ile sonlanır. Başla ve bitir olmayan komutlar teoride yok sayılır. Algoritmada problemi çözerken; çözüm adımları açık ve net bir şekilde belirtilmesi gerekir.
Peki algoritma ile bizim nasıl bir işimiz var algoritma ne işimize yarayacak? Hemen bakalım
Algoritma ne işe yarar diye özellikle ders anlatımı sırasında öğrencilerim tarafından çok sorular soruluyor. 5,6,7,8,9 ve sınıf konuları içerisinde de mutlaka algoritma konusu geçiyor.
Algoritmalar gerek matematikte gerekse bilgisayar bilimi içerisinde çok sık kullanılan terimlerin başında gelmektedir. Bazen öğrencilerimiz; "Hocam dersimiz bilgisayar matematikle ne işimiz var" gibi sorular sorabiliyorlar. Şöyle bir örnek vermek gerekirse; 2 sayının ortalamasını bulalım dediğimiz zaman, ilk olarak iki sayıyı toplamamız daha sonra ise iki sayının toplamını ikiye bölmemiz gerekir. Böylece iki sayının ortalamasını da bulmuş oluruz. Burada matematik var :) Tabi algoritma kelimesi içerisindeki matematik bu kadar basit mi elbette hayır :) Yazının ilerleyen bölümlerinde daha iyi anlayacağınız düşünerek yazıma devam ediyorum.
Algoritma ne işe yarar hala kafanızda net bir şey oluşmadı değil mi? Farkındayım ve hemen somut örnekler vererek aklınıza takılan soru işaretlerini gidermek istiyorum.
Severek oynadığımız bilgisayar oyunları, severek girdiğimiz sosyal medya platformları olsun bunların hepsinde bir algoritma vardır. Ve kullanılan programlar bir algoritma çerçevesi içerisinde çalışırlar. Eeee hocam güzel de programlama (kodlama) ile algoritmanın nasıl bir ilişkisi var diye hemen aklınıza soru geldiyse devam edelim :)
Bu kısımda bazen sorunlar yaşayabiliyorum. Özellikle algoritma konu anlatımı yaparken öğrencilerim bazen kodlama ile bağlantısını kuramıyorlar ama daha sonra kod yazmaya başladığımız zaman algoritma ve kodlama bağlantısını kolay bir şekilde kurabiliyorlar.
Şu an için bilgisayarda aklınıza gelen tüm yazılımlar belirli bir algoritmaya göre hazırlanıp, ondan sonra kodlanmaktadırlar. Yani ilk olarak mutlaka algoritma yazılır ve daha sonra kod yazmaya geçilir. Algoritma olmadan maalesef kodlama yapmak neredeyse imkansızdır.
Algoritmada aslında temel mantık hiç bir iş şansa bırakılmadan hareket edilmeli ve tüm ihtimaller denenmelidir. Diyelim ki bir oyun yapmaya karar verdiniz. Bu oyunun algoritması içerisinde kullanıcının yani oyunu oynayan kişilerin hangi tuşlara basınca ne olacağını net olarak belirtmeniz gerekiyor eğer siz net olmazsanız algoritmanız hatalı olur, algoritma hatalı olursa yazmış olduğumuz kodlarda sorun olur kodlarda da sorun olursa zaten yazdığımız hazırladığımız oyun da hatalar ile karşılaşırız.
Evet arkadaşlar algoritma nedir ne demek ne için kullanılır gibi aklınıza takılan soruları cevapladık diye düşünüyorum yine de aklınıza takılan şeyler olursa sorabilirsiniz. Şimdi gelelim akış şeması ya da diğer ismi ile akış diyagramlarına
Akış şeması, algoritması hazırlanan bir programın(problemin) çeşitli şekillerle birbirine bağlanarak ortaya çıkan, neden sonuç ilişkisini gösteren şema tipidir.
Akış şeması da aynı algoritma gibi adımlarla ifade edilir ve başla komutu ile başlanır ve bitir komutu ile sonlandırılır. Akış şeması çizerken dikkat edilmesi gereken en önemli nokta mutlaka algoritmanıza göre akış şeması çizmenizdir. Akış şemasının diğer isminin de akış diyagramı olduğunu da tekrar tekrar eklemek istiyorum.
Kısaca akış şemaları bizim yazmış olduğumuz algoritmaların şekillerle daha anlaşılır bir şekilde gösterilmesi denebilir. Peki hocam güzel diyorsun da bu şekiller ne derseniz hemen akış şemalarında kullanılan şekillere bakalım :)
Akış şemalarında kullanılan şekiller çok önemlidir. Eğer şekilleri yanlış çizersek akış şemamız yanlış kabul edilecektir. Peki akış şemalarında hangi şekiller kullanılır ?
Yukarıda verilen akış şeması şekillerinin görevleri nelerdir kısaca hemen bunlardan bahsedelim arkadaşlar.
1) Elips
Elips şeklimiz başla ve bitir komutlarında kullanılmaktadır ve çok önemli bir akış şeması şeklidir.
2) Dikdörtgen
Matematiksel işlemler ve değişken atama işlemlerinde kullanılan şekildir. Ayrıca verilen komutlarda da dikdörtgen kullanılır( kapıyı aç, ekmek al, ayranı bardağa doldur vs..)
3) Paralel Kenar
Veri girişi(bilgi girişi) yapmak için kullanılan şekildir. Eeee hocam bilgi girişi ne demek? Bilgi girişi demek kullanıcıdan bilgi istemek demek bir cevap almak demek. Örneğin; bir sayı giriniz, adın ne, en iyi bilişim sitesi ne, en iyi bilgisayar yazılı soruları hangi sitede gibi karşı taraftan cevap alacağımız yani bilgi girişi yaptıracağımız cümlelerde paralel kenar kullanılır.
Python programlama dilinde input komutuna karşılık gelmektedir.
4) Eşkenar Dörtgen
Karar verme ve denetim amaçlı kullanılan şekildir. Baklava dilimi diye de bilinir :) Özellikle evet hayır şeklinde sorulan sorularda tercih edilen şekildir. Örneğin; hava yağmurlu mu (Evet,Hayır), öğretmen geldi mi (Evet,Hayır), Ortalamam 50 den büyük mü (Evet,Hayır) gibi. Kısaca kullanılan if kodunda kullanılan şekildir diyebiliriz.
5) Altıgen
Eğer algoritmamız da bir döngü varsa (while döngüsü, for döngüsü gibi) altıgen şekliyle bunu gösterebiliriz.
6) Dalgalı Dörtgen
Ekrana yazdır yani ekranda sonucu göster komutu için kullanılan şekildir. Python programlama dilinde print komutuna karşılık gelir. Eğer biz ekranda yaptığımız işlemlerin sonucunu göstermek istersek bu şekli mutlaka kullanmak zorundayız.
7) Çember (Daire)
Akış Şeması Sembolleri-Şekilleri |
Akış şeması şekilleri nelerdir sorusunun cevabını detaylı olarak verdiğimi düşünüyorum. Akış şemaları ile ilgili bir ekleme daha yapalım arkadaşlar. Akış şemalarını çizmek için online web sitelerini kullanabilirsiniz. Örneğin; seafoodplus.info web sitesi üzerinden akış şemalarını kolay bir şekilde hazırlayabilirsiniz.
Özellikle 5,6,7,8,9 ve sınıf bilişim teknolojileri ve bilgisayar bilimi derslerinde algoritma ve akış şemaları konuları işleniyor. Ortaokul öğrencilerine algoritma mantığını öğretmek için compute it sitesi tercih edilebilecek güzel bir sitelerde arkadaşlar. Yine ortaokul ve lise öğrencilerine algoritma mantığını öğretmek adına Kodla Büyü sitesi içerisinde yer alan farklı sahnenin olduğu kodlama etkinlikleri de tercih edilebilir diye düşünüyorum.
Lise seviyesi içinse seafoodplus.info adresinde yer alan örnekler uygun olacaktır diye düşünüyorum.
Örnek Algoritmalar
Örnek Algoritma-1 |
Örnek Algoritma-2 |
Akış şemaları içerisinde en çok kullanılan şekiller yukarıda verilen şekillerdir. Özellikle paralel kenar ve dikdörtgeni çok fazla karıştırıyorsunuz bundan dolayı bu kısma dikkat edin. Paralel kenar giriş ve çıkış birimleri için dikdörtgen ise hesaplama ve değişken atamaları için kullanılıyor. Bu iki şekli karıştırmamanız çok önemli.
9.sınıf bilgisayar bilimi 1.dönem seafoodplus.infoılı sınavında algoritma ve akış şemaları ile ilgili karşınıza çok fazla soru çıkacaktır. Yukarıda algoritma ile ilgili 2 adet örnek paylaştık. Şimdi de hem algoritma hem de akış şemaları ile ilgili örnekleri paylaşalım.
Algoritma ve Akış Şeması Örnek 1: Girilen 3 Sayının Ortalamasını Bulmak
Algoritma ve Akış Şeması Örnek 2: Satış Fiyatı ve Adedi Verilen Ürünlerin Toplam Fiyatını Bulmak
Algoritma ve Akış Şeması Örnek 2: Girilen Sayının Negatif Mi Pozitif Mi Olduğunu Bulmak
Yukarıda yer alan örnekler içerisinde algoritma ve akış şemaları ile ilgili örnekleri paylaştık. Algoritma ve akış şemaları konusunda sizlere bahsedeceklerim bu kadar umarım sizlere faydalı olmuştur.
Bu yazımızda algoritma nedir, akış şeması nedir öğrendik. Algoritmalar ve akış şemaları özellikle 1.dönem konuları içerisinde çok fazla işlenen konulardan birisidir. Lütfen dikkat edin diyerek yazımı sonlandırıyorum. Ayrıca seafoodplus.info adresinden beni takip edebilirsiniz.
Algoritma, belli bir problemi çözmek veya belirli bir amaca ulamak için tasarlanan yol anlamna gelir, matematikte ve bilgisayar biliminde bir ii yapmak için tanmlanan, bir balangç durumundan baladnda, açkça belirlenmi bir son durumunda sonlanan, sonlu ilemler kümesine denir.
Algoritma, bir iin hangi aamalardan geçilerek yaplacan gösteren çalma plandr. Algoritma bir programlama dili deildir. Programlama dillerine yol gösteren bir yöntemler dizisidir. Her dilde algoritma yazlp uygulanabilir.
Bir problemin çözümünde izlenecek yol anlamna gelir ve problemin çözümünün admlar halinde yazlmasyla oluturulur. Algoritma basamaklarnn bir balangc ve sonu bulunur. Her admda yaplacak ilemler açkça belirtilir.
Algoritma Nasl Hazrlanmaldr?
Algoritma yazarken, programn çalmas için kullanlan kaynaklarn, yaplmas gereken kontrollerin veya ilemlerin açkça ifade edilmesi gerekir. Ayrca iyi bir algoritmann, tüm ihtimalleri kontrol edip istenmeyen durumlarda da ne yaplmas gerektiini belirtmesi gerekir.
Veri girii: Çalma zamannda çou zaman, ileyiin tamamlanmas için dardan bir bilgi girilmesi gerekir. Algoritmann çalmas için ihtiyaç duyduu veriler, ilemi balatan kiiden veya belirtilen bir kaynaktan alnabilir. Bu bilgiler salanmadan ilem devam etmez.
Kararlar: Karar ve kontrol yaplar algoritmann akn yönlendiren en önemli kavramlardr. Girilen veya ilem sonucunda elde edilen veriler, ilemin amacna göre kontrol edilir ve sonuca göre algoritma ak istenilen yere yönlendirilir.
lemler: Algoritmann ak boyunca veriler üzerinde deiiklikler, yeni deer atamalar gibi ilemlere ihtiyaç duyulur. Algoritmalar kurulurken, yaplan ilemlerin yaln halde, tek tek yazlmas okunabilirlii arttrr.
Algoritmalar adm sras ile çalr ve karar yaplar sonucunda farkl bir yere yönlendirilmedii müddetçe, bir sonraki adm ile ilemeye devam eder.
Algoritmalar 3 ekilde gösterilirler:
Düz Yaz ile Gösterim
‘BALA’ ile balanp ‘BTR’ ile bitirilir.
Her satra numara verilir.
Çözülecek problem, adm adm metin olarak yazlr.
Algoritmann konuma dili ile yazlmasdr.
Sözde Kod ile Gösterim (Kaba Kod)
Herkesin anlayabilecei ve rahatlkla bir programlama diline çevrilebilecek basit komutlardan oluan bir dildir. Sözde kodun temel ilevi program gelitirmeye geçmeden algoritmay oluturmak ve üzerinde tartabilmektir. Sözde kodlar, dorudan konuma dilinde ve programlama mant altnda, eer-deilse, iken gibi koul kelimeleri ve > = < gibi ifadeler ile beraber yazlr. Programda kullanlacak elemanlar temsil etmek üzere uygun isimler veya deikenler seçilir.
Ak emas
Bir algoritmann görsel ekiller ve sembollerle ifade edilmi haline “Ak emalar” ad verilir. Ak emas sembolleri ANSI (AmericanNationalStandardsInstitute) standard olarak belirlenmi ve tüm dünyada kullanlmaktadr.
Algoritma doal dille yazldnda herkes tarafndan anlalamayabilir ya da baka anlamlar çkarlabilir. Ancak ak çizgelerinde her bir ekil standart bir anlam tad için farkl yorumlanmas mümkün deildir.
Ak emalar: ak emalar kurulan algoritmalar üzerinde çalmay kolaylatran yaplardr. Ayn zamanda algoritmann baka gelitiriciler tarafndan kolaylkla anlalmasn da salarlar. Kurulan bir algoritmann i ak emasna aktarlmas oldukça kolay bir itir. ak emas ne kadar ayrntlysa kurulan algoritma üzerindeki hatalarn giderilmesi ve gelitirilmesi de o derece kolaydr.
Örnek:
Algoritma örnekleri için