Algoritmalar.

Slides:



Advertisements
Benzer bir sunumlar
Algoritmalar (Algoritms)
Advertisements

Algoritmalar (Algoritms)
Algoritmalar (Algoritms)
Algoritmalar (Algoritms)
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
FARABİ KURUM KOORDİNATÖRLÜĞÜ
SAYISAL DEVRELER BÖLÜM-2 Sayı Sistemleri ve Kodlar
LUCA BILGISAYARLı MUHASEBE PROGRAMı Öğr. Gör. Coşkun Aliyazıcıoğlu KTÜ Beşikdüzü Meslek Yüksekokulu Şubat
PROGRAMLAMA ve YAZILIM Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
O R T L G İ M A A Ve Problem çözme.
OLASILIK TEOREMLERİ Permütasyon
MATEMATİK PROJE ÖDEVİ Adı-Soyadı:Nihat ELÇİ Sınıfı-Numarası:7/C 1057
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
EQUIZSHOW.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
BİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ
Bilişim Teknolojileri ve Yazılım Dersi
Excel 2007.
İdari ve Mali İşler Daire Başkanlığı
KDV BEYANNAMESİ / MUHTASAR BEYANNAME / KURUMLAR VERGİSİ BEYANNAMESİ / GEÇİCİ VERGİ BEYANNAMESİ’NDE ORTAK ÖZELLİKLER F5 PENCERESİ Beyannamelerde yer alacak.
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
TAM SAYILAR.
E-posta Forum Sohbet Sesli Görüntülü Konferans
Problem Çözme ve Algoritmalar
PROGRAMLAMA TEMELLERİ
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
DOĞAL SAYILAR TAM SAYILAR
Ünite 8: Olasılığa Giriş ve Temel Olasılık Hesaplamaları
İleri Algoritma Analizi
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
RESİM VE RESİM DÜZENLEME İŞLEMLERİ
E-posta Forum Sohbet Sesli Görüntülü Konferans
Doç. Dr. Emine TANIR KAYIKÇI Yrd. Doç. Dr. Esra TUNÇ GÖRMÜŞ
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Programlama
Bilgisayar Mühendisliğine Giriş
Bölüm 7 İfadeler ve atamalar.
BİLGİSAYAR programlama II
Bilgisayar Yazılımları
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
ÖLÇME-DEĞERLENDİRME 1.DERS
Bilgisayar Bilimi Koşullu Durumlar.
Karar Yapıları İle Problem Çözme
VERİTABANI YÖNETİM SİSTEMLERİ 3-Normalizasyon
Sonlu Özdevinirlere Giriş
Bilgi Teknolojileri Hafta 01
NİŞANTAŞI ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Değerler ve Değişkenler
Bilgisayar Bilimi Programlama Yapısı.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
BLM113 Bilgisayar Bilimlerine Giriş
Doç. Dr. Emine TANIR KAYIKÇI
Veri ve Türleri Araştırma amacına uygun gözlenen ve kaydedilen değişken ya da değişkenlere veri denir. Olgusal Veriler Yargısal Veriler.
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Kesikli Olay benzetimi Bileşenleri
Bilgehan Arslan, Süreyya Gülnar
İleri Algoritma Analizi
ARAŞTIRMANIN YAZILMASI II: BİÇİMSEL KOŞULLAR
Sunum transkripti:

Algoritmalar

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.

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ış Çizelgesi 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 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 önemli. 3 ve 4 nolu adımlar yer değiştirirse mesela? (Kim ıslanmak ister? )

Algoritma(devamı) Örnek: Telefon Etme işleminin algoritması Başla Ahizeyi kaldır Sinyali kontrol et, sinyal yoksa arızaya haber ver ve 9. adım’a git Eğer telefon numarası yurt dışında ise iki kere sıfır tuşuna bas ve ülke ve alan kodunu tuşla, 6. adıma git Eğer telefon numarası şehir dışında ise bir kere sıfır tuşuna bas ve alan kodunu tuşla Telefon numarasını tuşla Eğer hat meşgul ise ya da cevap vermiyorsa 9. adıma git Telefon konuşmasını gerçekleştir Telefonu kapat Bitiş

Algoritma(devamı) Akış Şeması Komut İşlem (Process): Yapılması istenen işlemle ilgili tanımlamalar Koşul Karar (Decision): Bir karara bağlı olarak farklı yolların izlenmesi Veri Veri (Data): Her farklı veri grubu için farklı isim verilmelidir. Doküman: Çıktı olarak gösterilmek istenen veriler ve işlemler Bağlantı: Büyük yazılımlarda bir sonraki sayfadaki işlemlerin hangi noktadan devam edeceğini göstermesi Başla/Bitir: Akış şemasının başlangıç ve bitiş noktaları Doküman A Başla/Bitir

Telefon konuşmasını gerçekleştir Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız? Başla Ahizeyi kaldır Sinyal var mı? Hayır Arızaya haber ver Evet Yurt dışı mı? İki kere sıfıra bas ve ülke , alan kodunu tuşla Şehir Bir kere sıfıra bas ve şehir kodunu tuşla Telefon numarasını tuşla Telefon konuşmasını gerçekleştir Telefonu kapat Meşgul/ cevap yok? Bitir Örnek: Telefon Etme işleminin akış diyagramı

Yazılım(Software) İşletim Sistemi (MS Windows xx, Unix, IBM –OS, etc) Database Programları (Oracle, Sybase, MS SQL Server, etc.) Office programları (Word, Excel, Powepoint) Programlama dilleri (QBasic, Fotran, Pascal, C, C++, .Net etc.)

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: –(ilkdeğer) e (100) ata. –eğer(sayı<x) ise(ilk satıra git) değilse (son satıra git) –dön(döngü<girilen_değer)

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.

Programlama Dili Bir Problemin Algoritmik çözümünün Bilgisayara anlatılmasını sağlayan, son derece sıkı-sıkıya kuralları bulunan kurallar dizisidir. Programlama Dilleri için; Farklı problem alanlarına göre farklı dillerden söz etmek mümkündür. Dilin seçimi bu yüzden önemli olabilir. Probleme uygun dilin seçilmesi programın geliştirilmesinde kolaylık ve hızlı çalışma sağlayabilir.

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: BAŞLA-DUR: Algoritmanın ilk ve son adımıdı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. YAZ : Ekrana mesaj yazmak için kullanılır. Yukarıdaki gösterimlerin İngilizce 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)

Ö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-Soru Klavyeden girilen 2 sayıdan büyük olanı yada her ikiside eşit ise " A sayısı, B sayısına eşittir " diye mesaj yazan programı yazınız.

Örnek Algoritma Başla A sayısını gir B sayısını gir Eğer A>B ise Yaz A Eğer A<B ise Yaz B 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 7

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 değişken içine (sola) iletir.

Örnek 1 Klavyeden girilen üç sayının toplamını bulan algoritma.

Örnek 1 - Cevap Başla Başla t=0 OKU a,b,c OKU a Yaz a+b+c t=t+a Dur OKU b t=t+b OKU c t=t+c Yaz t Dur Başla OKU a,b,c Yaz a+b+c Dur

Örnek-2 Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması.(Kenar uzunlukları negatif olarak girildiği durumda veri girişi tekrarlanacaktır)

Örnek 2 - Cevap Girdi: Kısa kenar (a), Uzun Kenar (b) Çıktı: Alan 1. BAŞLA 2. OKU a 3. a < 0 İSE GİT 2.Adım 4. OKU b 5. b < 0 İSE GİT 4.Adım 6. Alan = a*b 7. YAZ Alan 8. BİTİR

Örnek-3 Bir öğrencinin bilgisayar programlama dersinin 2 yazılı sınavından aldığı notları klavyeden okuyan, bu notların ortalamasını bulan, eğer ortalaması 45’e eşit veya 45’den büyükse “geçti”, aksi halde “kaldı” mesajı yazan programın algoritma şu şekildedir.

Örnek-3 Cevap Girdi 1. sınav notu (s1), 2. sınav notu (s2) Çıktı Sınav ortalaması (so) 1. BAŞLA 2. OKU s1,s2 3. so = (s1 + s2) / 2 4. EĞER so>=45 İSE YAZ “Geçti” 5. DEĞİLSE YAZ “Kaldı” 6. BİTİR

Örnek 4 Aracın otopark ücretinin hesaplanması. Araçların en fazla 24 saat kaldığını varsayın. (Ücretlendirme: 0 - 2 saat 5 TL, 2 - 8 saat 7 TL, 8-24 saat 8 TL)

Örnek 4 Cevap 1.       BAŞLA 2.       OKU saat 3.       EĞER saat>0 ve saat <= 2 ise ücret="5 TL." 4.       EĞER t<=8 ve t>2 ise ücret =" 7 TL" 5.       DEĞİLSE ücret =" 8 TL" 6.       YAZ ücret 7.       BİTİR

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 algoritmasını yazı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.” yazan algoritamyı yazınız. (Aralık belirten sayılar da aramaya dâhildir.)

Soru-4 Aşağıda verilen algoritmadaki değişkenlerin aldıkları değerleri tek tek 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 algoritmasını yazınız?

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

Soru-7 Bir aracın otopark ücretinin hesaplamasını aşağıdaki kurallara göre yapan programın algoritmasını yazı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 algoritmasını yazı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 algoritmasını yazınızz? Örnek;Girilen sayı 52 ise;"Elli İki" yazmalı

Soru-11 Girilen iki adet tamsayının çarpımını toplama işlemi kullanarak yapan programın algoritmasını yazınız.