Algoritmalar (Algoritms)

Slides:



Advertisements
Benzer bir sunumlar
OPERATÖRLER.
Advertisements

BPR151 ALGORİTMA VE PROGRAMLAMA - I
Algoritma ve Akış Diyagramları
OPERATÖRLER Programlama dillerinde tanımlanmış sabit ve değişkenler üzerinde işlemler yapmayı sağlayan karakter ya da karakter topluluklarına operatör.
Bilgisayar Mühendisliğine Giriş
Algoritma ve Akış Diyagramları
Problemi Çözme Adımları
switch - case Yapısı Döngü Yapıları
4 Kontrol Yapıları: 1.Bölüm.
TEMEL BİLGİSAYAR BİLİMLERİ
EDUTIME Java Day 4 Serdar TÜRKEL.
SQL de Değişken Tanımlama
Karar ifadeleri ve Döngüler
Operatörler.
Bölüm 3 – Yapısal Programlama
Algoritma ve Akış Diyagramları
Yapısal Program Geliştirme – if, if-else
ALGORİTMA ve PROGRAMLAMA
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
Görsel C# ile Windows Programlama
Bilgisayar Programlama
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bilgisayar Programlama Güz 2011
Algoritmalar (Algoritms)
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Temel tanımlar ve işleyiş
Bölüm 2 – Kontrol Yapıları
Algoritmalar (Algoritms)
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
JAVA’DA DÖNGÜLER.
BİL 102 BİLGİSAYAR PROGRAMLAMA
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
Algoritmalar (Algoritms)
Programlamaya Giriş 1. Verileri İşleyerek Özet bilgiler şekline sokabilen, bu veri ve bilgileri yüksek kapasitelerde saklayıp başka ortamlara iletebilen.
PROGRAMLAMA 2. Hafta TEMEL KAVRAMLAR.
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
ALGORİTMA VE AKIŞ ÇİZELGELERİ
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Algoritma Mantığı ve Akış Diyagramları
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
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.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMA MANTIĞI, ALGORİTMA PROBLEM ÇÖZME
BÖLÜM 2 ALGORİTMA.
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.
O R T L G İ M A A Ve Akış şemaları.
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları 1.
Algoritma Örnekleri.
Algoritma ve Akış Şemaları
Programlamaya Giriş.
BSM208 PROGRAMLAMA DİLLERİNİN PRENSİPLERİ
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMAYA GİRİŞ VE ALGORİTMALAR
Excel’de VBA Programlama (Visual Basic Application)
Problem Çözme Yaklaşımları
Algoritmanın Hazırlanması
PROGRAMLAMAYA GİRİŞ FORTRAN 77.
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Akis diyagramı Örnekleri
Algoritma ve Akış Diyagramları
NİŞANTAŞI ÜNİVERSİTESİ
Algoritmalar.
Sunum transkripti:

Algoritmalar (Algoritms)

Problem Bir işlemin, otomasyonun yada bilimsel hesaplamanın bilgisayarla çözülmesi fikrinin ortaya çıkmasına problem denir. Bu tip fikirlerde insanların bu sorunları beyinle çözmeleri ya imkansızdır ya da çok zor ve zaman alıcıdır. Bu tip bir sorunu bilgisayarla çözebilme fikrinin ortaya çıkması bir bilgisayar probleminin ortaya çıkmasına neden olmuştur. Bazen de bir işletme veya yönetimin otomasyonunu sağlamak amacı ile bu tip problemler tanımlanır.

Problem Çözümü Problemi Çözebilmek için öncelikle sorunun çok net olarak programcı tarafından anlaşılmış olması gerekir. Tüm ihtiyaçlar ve istekler belirlenmelidir. Gerekiyorsa bu işlem için birebir görüşmeler planlanmalı ve bu görüşmeler gerçekleştirilmelidir. Problemin Çözümüne ilişkin zihinsel alıştırmalar yapılır. Bu alıştırmaların bilgisayar çözümüne yakın olması hedeflenmelidir. Bir sorunun tabii ki birden fazla çözümü olabilir. Bu durumda bilgisayar ile en uygun çözüm seçilmelidir. Çünkü bazen pratik çözümler bilgisayarlar için uygun olmayabilir. Oluşturulan Çözüm Algoritma dediğimiz adımlarla ifade edilmelidir. Bu algoritmanın daha anlaşılabilir olması için Akış Çizgesi oluşturulmalıdır. Uygun bir programlama dili seçilmeli ve oluşturulan algoritma ve akış çizgesi bu programlama dili aracılığı ile bilgisayar ortamına aktarılmalıdır.

Program Problem Çözümü kısmında anlatılan adımlar uygulandıktan sonra ortaya çıkan ve sorunumuzu bilgisayar ortamında çözen ürüne Program denir. Bazı durumlarda bu ürüne yazılım denebilir.

Programlama Çok iyi tanımlanmış bir sorunun çözümüne dair adımlar ile çözümün oluşturulup bunun bir programlama dili ile bilgisayar ortamına aktarılması Programlama olarak adlandırılır.

Programlama Dili Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kurallar dizisidir. Bazı programlama dilleri MATLAB, Delphi, Pascal, Fortran, Lisp C, C++, C#, Visual Basic, Java

Algoritma Bir sorunu (problemi) çözebilmek için gerekli olan sıralı mantıksal adımların tümüne Algoritma denir. Algoritma doğal dille yazıldığı için formal değildir. Bir algoritma için aşağıdaki ifadelerin mutlaka doğrulanması gereklidir. Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı olmamalıdır. Belirli bir sayıda adım sonunda algoritma sonlanmalıdır. Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır.

Algoritma(devamı) “İşine gitmek üzere uyanan birinin yapması gereken işler” algoritması: Yataktan kalk Pijamalarını çıkar Duş al Elbiselerini giy Kahvaltını yap Arabana bin ve işe git Sıra önemlidir. 3 ve 4 nolu adımlar yer değiştirirse durum nasıl olur?

Sözde Kod (Pseudo Code) Pseudo Code (Sözde Kod), bir algoritmanın yarı programlama dili kuralı, yarı konuşma diline dönük olarak ortaya koyulması/ tanımlanmasıdır. Bu şekilde gösterim algoritmayı genel hatlarıyla yansıtır. Örnek: –assign (ilkdeğer) value (100) –if (sayı<x) then (ilk satıra git) else (son satıra git) –while (döngü<girilen_değer) do assign (toplam) value (toplam+döngü)

Gerçek Kod (Real Code) Real Code (Gerçek Kod), algoritmanın herhangi bir programlama diliyle, belirli bir veri yapısı üzerinde gerçekleştirilmiş halidir. Bir algoritmanın gerçek kodu, yalnızca tasarlandığı veri yapısı üzerinde koşar; veri yapısı değiştirildiğinde algoritmanın gerçek kodu üzerinde oynamalar yapılmalıdır.

Derleyici Bir programlama dili ile bilgisayara aktarılan programın bilgisayarın anlayabileceği Makine Diline çevirmeyi sağlayan ve yazılan programda söz dizim hatalarının olup olmadığını bulan yazılımlardır. Her Programlama dili için bir derleyici olması gerekmektedir.

Derleyici Programları Her bir programlama dilinde kod yazmak için geliştirilmiş çok sayıda derleyici programı vardır. Örneğin C programlama dilinde kod yazmak için dev c++, Turbo C, Borland C, Microsoft Visual Studio gibi…

Kaynak ve Amaç Program Programın, bir programlama diline bağlı olarak hazırlanan simgesel kodlardan oluşan kısmına kaynak program (source code) adı verilir. Bu kaynak programın derlenip bilgisayarda çalışabilecek makine kodlarına çevrilmiş koduna ise amaç program ismi verilir.

Algoritma Yazımı Sözde kod yada diğer deyimle algoritma hazırlanırken bazı kullanımlar vardır. Bunlar şunlardır: OKU: Veri girişinin yapılacağını belirler. EĞER…İSE…DEĞİLSE….: Şart belirtmek için kullanılır. GİT… : Belirli bir adıma yönlendirmek için kullanılır. DÖN ..DEN.. DÖNGÜ SONU :Döngüleri belirtmek için kullanılır. Yukarıdaki gösterimlerin ingilizce karşılıkları da algoritma hazırlamada kullanılmaktadır.

Tanımlayıcı(değişken) Program yazan kişi tarafından düşünülüp oluşturulan ve programdaki değişkenleri, sabitleri, kayıt alanlarını, alt programları, vs.. adlandırmak için kullanılan kelimelere tanımlayıcı denir. Bu kelimeler isimlendirilirken kurallara dikkat edilmelidir: İngiliz alfabesindeki A-Z veya a-z arası 26 harf kullanılabilir. 0-9 rakamları kullanılabilir. Sembollerden alt çizgi kullanılabilir. ( _ ) Tanımlayıcı ifadeleri harf veya altçizgi ile başlayabilir ama rakamla başlamaz. İsimler oluşturulurken boşluk kullanılmamalıdır. maaş katsayısı değil maas_katsayisi

Algoritmada Yapılan İşlemler Aritmetiksel işlemler toplama, çıkarma, .. Mantıksal işlemler (LOGİC) ve, veya , değil

Aritmetiksel işlemler Toplama a+b Çıkarma a-b Çarpma a*b Bölme a/b Üs alma a^b

İşlem önceliği Matematiksel işlemler içeren kümenizin içindeki matematiksel işaretlerin bir işlem önceliği vardır. İşlem Önceliği Sırası 1. Parantezler ( ) 2. Üs alma a^b 3. Çarpma ve bölme a*b veya a/b 4. Toplama ve çıkarma a+b veya a-b Aynı önceliğe sahip işlemler yan yana bulunuyorsa işlem önceliği genelde soldan sağa doğrudur. X=2*3/6+2

Karşılaştırma İşlemleri Eşittir = Eşit değildir <> Büyüktür > Küçüktür < Büyük eşittir >= Küçük eşittir <=

Mantıksal İşlemler Programlarda, birden fazla karşılaştırma ifadesi bir anda kullanılmak istenebilir. Bu gibi durumlarda mantıksal ifadeler kullanılması zorunludur. MANTIKSAL KOMUTLAR İŞLEMLER VE AND VEYA OR DEĞİL NOT

Mantıksal İşlem Sonuçları Sonuç Rakam olarak Bilgisayar Dilinde Doğru 1 True (1) Yanlış 0 False (0)

Mantıksal İşlemler A B A VE B VE (AND) VEYA (OR) DEGiL(NOT) A B 1 VE (AND) VEYA (OR) DEGiL(NOT) A B A VEYA B 1 A DEGiL A 1

Örnek Bir işyerinde çalışan işçiler arasından yalnızca yaşı 23’ün üzerinde olup maaş olarak asgari ücret alanların isimleri istenebilir. Burada iki koşulun da doğru olması gerekmektedir. (Asgari ücret >=500) 1nci koşul 2nci koşul Eğer Yaş>23 ve Maaş>=Asgari ücret ise Yaz İsim

Örnek Bir sınıfta Bilgisayar dersinden 65 in üzerinde not almış olup Seçmeli Yabancı Dil (İngilizce) veya Seçmeli Yabancı Dil (Almanca) derslerinin herhangi birinden 65 in üzerinde not alanların isimleri istenmektedir. Eğer Bilgisayar notu > 65 VE (İngilizce > 65 VEYA Almanca > 65) ise Yaz “Öğrencinin ismini”

Örnek Algoritma Başla A sayısını gir B sayısını gir Eğer A>B ise Yaz “A sayısı, B sayısından büyüktür” Eğer A<B ise Yaz “A sayısı, B sayısından küçüktür” Eğer A=B ise Yaz “A sayısı, B sayısına eşittir” Dur Girilen A sayısı Girilen B sayısı Ekrana yazılan sonuç 3 7 A sayısı, B sayısından küçüktür.

Aktarma Herhangi bir ifadenin sonucunu başka bir değişkende göstermedir. degisken = ifade ifade kısmında matematiksel, mantıksal veya harfsel (alfasayısal) ifade olabilir. = sembolü atama operatörüdür. Bu operatör, sağda hesaplanan ifadenin değerini degisken içine (sola) iletir.

Örnek Klavyeden girilen üç sayının toplamını bulan algoritma. Başla t=0 OKU a t=t+a OKU b t=t+b OKU c t=t+c Yaz t Dur

Döngü Bazı işlemler belli ardışık değerlerle veya belli sayıda gerçekleştirilmektedir. Programda belirli komut bütünlerini belirli sayıda yaptırabilmek için döngüler kullanılır. Algoritma yazarken döngü akış işlemlerinde genellikle sayaç kullanılır. Döngüsel işlemler akış diyagramı bölümünde daha detaylı anlatılacaktır.

Aşağıdaki algoritma nasıl bir çıktı verir? Başla sayac=0 Eğer sayac>4 ise Git 7 sayac=sayac+1 Yaz sayac Git 3 Dur

Aşağıdaki algoritma ne iş yapmaktadır? Başla sayac=0 OKU sayi Eğer sayi=0 ise Git 7 Eğer mod(sayi,2)=0 ise sayac=sayac+1 Git 3 Yaz sayac Dur

Örnek: 123456 23456 3456 456 56 6 Bu çıktıyı veren algoritmayı tasarlayınız.

Cevap 1.basla 2.baslangic=1 3.i=baslangic 4.Yaz i 5.i=i+1 6.eğer i<=6 git 4 7.alt satıra geç 8.baslangic=baslangic+1 9.eğer baslangic<=6 git 3 10.Dur

Soru-1 Klavyeden girilen not bilgisinin 0 ile 100 arası olup olmadığını kontrol eden programı yapınız.

Soru-2 Klavyeden girilen 20 tam sayı değerin en büyük ve en küçük arasındaki farkı bulup ekrana yazan programın algoritma ve akış diyagramını yapınız.

Soru-3 Klavyeden girilen bir tam sayı eğer 1 ile 5 veya 7 ile 10 arasında ise, ekrana “Sayınız doğru yerdedir.”, değilse “Sayınız yanlış yerdedir.” yazınız. Aralık belirten sayılar da aramaya dâhildir.

Akış Çizelgesi(Flow Charts) Bir algoritmanın daha görsel gösterimidir. Çizgiler, Dörtgen, daire vb.geometrik şekillerle algoritmanın gösterilmesini sağlar. Doğal dille yazılmadığı için daha formal olduğu düşünülebilir.

Akış Çizelgesinde Kullanılan Semboller

Örnek Sözde Kod(Algoritma) -Başla -OKU A,B -Ort=(A+B)/2 -YAZ Ort - DUR

Karar Verme

Karar Verme

Karar Verme

Döngü Yapısı Bu yapı kullanılırken, döngü sayacı, koşul bilgisi ve sayacın artım bilgisi verilmelidir. Döngü sayacı kullanılmıyorsa sadece döngüye devam edebilmek için gerekli olan koşul bilgisi verilmelidir. Genel olarak çoğu programlama dilinin döngüdeyimleri ; •While •Do-while •For gibi yapılar üzerine kurulmuştur. Farklı dillerde bu yapılara farklı alternatifler olsa da döngülerin çalışma mantığı genel olarak benzerdir.

While Deyimi Koşul daha çevrim içerisine girmeden sınanır. Koşul olumsuz olduğunda çerime hiç girilmez ve döngü içerisinde yapılması gerekenler atlanır.

Do-While Deyimi Bu döngüdeyiminde, çevrim en az bir defa olmak üzere gerçekleşir. Çünkü koşul sınaması döngü sonunda yapılmaktadır. Eğer koşul sonucu olumsuz ise bir sonraki çevrime geçilmeden döngüden çıkılır. Çevrimin devam edebilmesi için her döngü sonunda yapılan koşul testinin olumlu sonuçlanması gerekir.

For Deyimi I=1,20,3 J=30,4,-2 K=1,80 Diğer deyimlerden farklı olarak, döngü sayacı doğrudan koşul parametreleri düzeyinde verilir. Döngü girmeden önce sayaç değişkenine başlangıç değeri atanmakta ve daha sonra koşula bakılmaktadır. Döngü içerisinde belirtilen işlemler yapıldıktan sonra sayaç değişkeni arttırılmaktadır.

İç İçe Döngüler İçiçe döngü kurulurken en önemli unsur, içteki döngü sonlanmadan bir dıştaki döngüye geçilmemesidir. Diğer bir deyişle döngüler birbirlerini kesmemelidir. Aşağıdaki gösterimde en içteki döngü bir dıştaki döngünün her adımında N kez tekrarlanır.

Örnek: Faktöriyel Hesabı N ile hangi sayının faktöriyelin hesaplanacağı belirlenir ve N çevrimlik bir döngü kurulur. İlk çevrimde 1!, ikinci çevrimde 2! ve sırayla N’inci çevrim sonucunda da N! değeri hesaplanmış olur. Sayac>N koşulu oluştuğunda döngüden çıkılır ve elde edilen sonuç dış ortama aktarılır.

Bu akış diyagramı ne yapmaktadır?

Akış diyagramının bazı dillerde yazımı

Akış diyagramının bazı dillerde yazımı

Soru-4 Aşağıda verilen algoritmanın akış şemasını çizin ve programı izleyerek ne iş yaptığını belirtiniz? BAŞLA Sayi1=15 Sayi2=30 Yaz Sayi1, Sayi2 Gecici=Sayi1 Sayi1=Sayi2 Sayi2=Gecici dur

Soru-5 2-16 arasındaki çift sayıların ortalamasını bulan programın algoritma ve akış şemasını yazınız?

Soru-6 Klavyeden girilen 10 tabanındaki sayıyı ikilik tabana çeviren programın algoritmasını ve akış şemasını yazın.

Soru-7 Bir aracın otopark ücretinin hesaplamasını aşağıdaki kurallara göre yapan programın algoritma ve akış diyagramını yapınız. Kurallar: Araçların en fazla 24 saat kaldığı varsayılacak. Küçük araçlariçin 1 büyük araçlar için 2 değeri girilecek(Örn:Otomobil için 1, kamyon otobüs için:2) Ücret tarifesi 0 - 2 saat Küçükler için:4 TL Büyükler için: 6 TL 2 - 8 saat Küçükler için:7 TL Büyükler için: 10 TL 8-24 saat Küçükler için:12 TL Büyükler için: 16 TL

Soru-8 10 ile 3000 arasındaki sayılardan 3 ve 10 ile tam bölünenlerin toplamını bulan algoritmayı oluşturunuz?

Soru-9 Girilen bir tamsayının asal sayı(sadece 1'e ve kendisine tam bölünebilen olup olmadığını bulan programın algoritma ve akış diyagramını yapınız. Örnek;Girilen sayı 5 ise;"5 asal sayıdır" yazmalı .... Girilen sayı 6 ise;"6 asal sayı değildir“ yazmalı

Soru 10 Girilen 2 basamaklı tamsayıyı yazıyla yazan programın algoritma va kış diyagramını yapınız? Örnek;Girilen sayı 52 ise;"Elli İki" yazmalı

Soru-11 Girilen iki adet tamının çarpımını toplama işlemi kullanarak yapan programın algoritma ve akış diyagramını yapınız.