BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları

Slides:



Advertisements
Benzer bir sunumlar
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.
Advertisements

SAYISAL DEVRELER BÖLÜM-2 Sayı Sistemleri ve Kodlar

% A10 B20 C30 D25 E15 Toplam100.  Aynı grafik türü (Column-Sütun) iki farklı veri grubu için de kullanılabilir. 1. Sınıflar2. Sınıflar A1015 B20 C3015.
T.C. ORDU VALİLİĞİ İlköğretim Müfettişleri Başkanlığı TAM ÖĞRENME MODELİ TAM ÖĞRENME MODELİ.
PROGRAMLAMA ve YAZILIM Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK.
Lojik Kapılar ve Lojik Devreler (Logic Gates And Logic Circuits)
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Bölüm 4 KAPALI SİSTEMLERİN ENERJİ ANALİZİ
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
İNSAN BİLGİSAYAR ETKİLEŞİMİ: BİLİŞSEL BOYUT III. İBE alanında etkileşimi anlamaya çalışan uzmanlar, özellikle şema ve zihinsel modeller üzerinde yoğunlaşırlar.
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
Sözsüz İletişimin Özellikleri
Ö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,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ
Excel 2007.
Ders notlarına nasıl ulaşabilirim
Sıklık Dağılımları Yrd. Doç. Dr. Emine Cabı.
Bölüm 2: Bir Boyutta Hareket. Bölüm 2: Bir Boyutta Hareket.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
TAM SAYILAR.
Problem Çözme ve Algoritmalar
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
DOĞAL SAYILAR TAM SAYILAR
Ünite 9: Korelasyon Öğr. Elemanı: Dr. M. Cumhur AKBULUT.
BİLİŞİM SİSTEMLERİ GÜVENLİĞİ (2016)
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
Bilginin Organizasyonu
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme
Yrd. Doç. Dr. Mustafa Akkol
KÜMELER HAZIRLAYAN : SELİM ACAR
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Programlama
Bilgisayar Mühendisliğine Giriş
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Benzetim 11. Ders İmalat Yönetimde Benzetim.
SAYI ÖRÜNTÜLERİ ANAHTAR KAVRAMLAR MODELLEME ÖRÜNTÜ SAYI ÖRÜNTÜSÜ ÜS
NİŞANTAŞI ÜNİVERSİTESİ
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Evren-Örneklem, Örnekleme Yöntemleri 2
B- Yaygınlık Ölçüleri Standart Sapma ve Varyans Değişim Katsayısı
İleri Algoritma Analizi
Bilgisayar Bilimi Koşullu Durumlar.
Karar Yapıları İle Problem Çözme
Sonlu Özdevinirlere Giriş
Bilgisayar II 8 Mart Mart
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
NİŞANTAŞI ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Değerler ve Değişkenler
Araştırma Önerisi ve Hazırlanması
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
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
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
İleri Algoritma Analizi
ARAŞTIRMANIN YAZILMASI II: BİÇİMSEL KOŞULLAR
Bilimsel Araştırma Yöntemleri
Sunum transkripti:

BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları Yrd. Doç. Dr. Andaç MESUT Trakya Üniversitesi Bilgisayar Mühendisliği

Problem Çözme Günlük hayatımızda ya da bilgisayarda çözmemiz gereken bir problem ile karşılaştığımızda yapılması gerekenler problem çözme tekniği olarak adlandırılmaktadır. Çözüm aşamaları aşağıdaki gibidir. Problemin hiçbir kuşkuya yer kalmaksızın anlaşılması Çözüme ulaşmak için gerekli ara işlemlerin belirlenerek sıralanması Ara işlemlerin sırasıyla uygulanması ve sonucun elde edilmesi

Algoritma Verilen herhangi bir problemin çözümüne ulaşmak amacıyla uygulanması gereken adımların hiçbir karışıklığa meydan vermemesi için sıralı ve düzenli bir şekilde yazıyla ifade edilmesine algoritma denilmektedir. Her algoritmanın sadece bir başlangıcı ve bir bitişi bulunmaktadır. Algoritmada adımlar sırasıyla işlenmektedir.

Algoritmanın hazırlanması Diğer bir deyişle algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir. Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları göz önünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar.

Akış Şeması Sorunun çözümü için oluşturulmuş algoritmanın görsel olarak şekillerle ifade edilmesine akış şeması (flow chart) denilmektedir. Akış şemalarında algoritmanın adımları simgeler şeklinde kutular içine yazılmaktadır ve adımlar arasındaki ilişkiler ve akış yönü oklar ile gösterilmektedir.

Akış Şemasının Avantajları Birbiri ile ilgili adımlar arasındaki mantıksal ilişkiyi gösterirler. İzlenmesi ve anlaşılması kolaydır. Şartlara bağlı olarak ortaya çıkan olayların takip edilmesi mümkündür. Belli bir standarda göre hazırlandıklarından herkesçe anlaşılabilir ve birden fazla kişi aynı şema üzerinde çalışabilir.

Akış Şeması Hazırlama Kuralları Başlangıç ve bitiş uçları tanımlanmalıdır. Standart semboller kullanılmalıdır. Birbirini kesen akış hatları kullanılmamalıdır. Basit kararlar alınmalıdır. Şema belli bir yönde hazırlanmalıdır.

Akış Şeması Elemanları Akış şemasının başlangıcını yada bitişini belirtir. Veri girişi yapılacağını belirtir. Ekranda görüntüleme yapılacağını belirtir.

Akış Şeması Elemanları Yazıcıya çıktı olacağını belirtir. Hesaplama ya da değerlerin değişkenlere aktarımını gösterir. Aritmetik ve mantıksal ifadeler için karar verme ya da karşılaştırma durumunu gösterir.

Akış Şeması Elemanları Yapılacak işler birden fazla sayıda yinelenecek ise yani iş akışında döngü var ise bu sembol kullanılır. İki nokta arası ilişkiyi gösterir. Döngü sonunu göstermek için ya da akış şemasının başka bir yere bağlantısını göstermek amacıyla kullanılır. Fonksiyon çağırılacağını belirtir. Akış Yönü İş akışının yönünü belirtir.

Akış Şemaları Akış şemaları içerik ve biçimlerine göre genel olarak üç grupta sınıflandırılabilirler. Doğrusal akış şemaları Mantıksal akış şemaları Döngü içeren akış şemaları

Doğrusal akış şemaları İş akışları, giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup kapsamına girer. Yapısında karar alma ya da döngü ifadeleri içermeyen akış şemalarıdır.

Örnek-1 (Ekrana Merhaba Dünya Yazdırma) Algoritması Akış Şeması (doğrusal) Adım 1: Başla Adım 2: Ekrana ‘Merhaba Dünya’ yazdır. Adım 3: Dur Başla Merhaba Dünya Dur (Son-Bitir) C Kodu #include <stdio.h> void main() { printf("Hello World"); }

Örnek-2 (İki Sayıyı Toplama ve Görüntüleme) Algoritması Akış Şeması (doğrusal) Adım 1: Başla Adım 2: Birinci sayıyı gir Adım 3: İkinci sayıyı gir Adım 4: İki sayıyı topla Adım 5: Toplam sonucunu ekranda görüntüle Adım 6: Dur Başla A B Değişkenler: A: Birinci sayı B: İkinci sayı C:Toplam sonucu C=A+B Adım 1: Başla Adım 2: A’yı gir Adım 3: B’yi gir Adım 4: C=A+B Adım 5: C’yi ekranda görüntüle Adım 6: Dur C Dur

Mantıksal akış şemaları Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. Hesap düzenleri genellikle basittir. Verilen koşulun doğru yada yanlış olmasına göre iş akışı yönlendirilir. Koşul Evet (Doğru) Hayır (Yanlış)

Örnek-3 (Klavyeden Girilen 2 sayıdan birincisi büyük ise çarpma, aksi durumda toplama yapan algoritma ve akış şeması) Algoritması Akış şeması Değişkenler: X: Birinci sayı Y: İkinci sayı S:Toplam sonucu Başla X Adım 1: Başla Adım 2: X’i gir Adım 3: Y’yi gir Adım 4: X>Y ise S=X*Y hesapla adım 6’ya git Adım 5: X<=Y ise S=X+Y hesapla Adım 6: S’i görüntüle Adım 7: Dur Y X>Y Evet S=X*Y Hayır S=X+Y S Dur

Döngüsel Akış Şemaları Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. İş akışları genel olarak giriş ya da başlangıç değeri verme, hesaplama, kontrol biçiminde olmaktadır.

Örnek-4 (Klavyeden 5 kişinin doğum yılını girip 2013 yılındaki yaşını hesaplayan algoritma ve akış şeması) Algoritması Değişkenler: dy : kişinin doğum yılı yas: kisinin yaşı i : sayaç (5 kişi olup olmadığını kontrol eder) Adım 1: Başla Adım 2: i=1; Adım 3: dy’yi gir Adım 4: yas=2013-dy Adım 5: yas’ı ekrana yazdır Adım 6: i<5 ise i’yi 1 arttır, adım 3’e git Adım 7: Dur

Örnek 4 (Devam) Akış şeması I (Döngü ifadesi içermeyen) Akış şeması II Artım değeri Başlangıç değeri Akış şeması I (Döngü ifadesi içermeyen) Akış şeması II (Döngü şekli içeren) i, 1, 5, 1 Başla Başla i,1,5,1 i=1 Döngü Değişkeni Bitiş değeri dy dy yas=2013-dy yas=2013-dy i=i+1 yas yas i Evet i<5 Hayır Dur Dur

Örnek 5 (1’den 10’a kadar sayıları ekranda görüntüleyen akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla i=1 i,1,10,1 i i i=i+1 i Evet i<10 Hayır Dur Dur

Örnek 6 (Girilen 5 sayının karelerini görüntüleyen akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla i=1 i,1,5,1 sayı sayı kare=sayı*sayı kare=sayı*sayı i=i+1 kare kare Evet i<5 i Hayır Dur Dur

Örnek 7 (Girilen 15 sayıdan pozitif olanların adedini bulup görüntüleyen akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla i=1, adet = 0 adet = 0 sayı i,1,15,1 sayı>=0 Evet sayı i=i+1 adet=adet+1 sayı>=0 Evet Hayır adet=adet+1 Evet i<15 Hayır i adet adet Dur Dur

Örnek 8 (50 öğrencinin notlarının ortalamasını bulan akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla toplam = 0 i=1, toplam=0 i,1,50,1 not not toplam=toplam+not i=i+1 toplam=toplam+not Evet i<50 i Hayır ortalama=toplam/50 ortalama=toplam/50 ortalama ortalama Dur Dur

Örnek 9 (Girilen sayının faktöriyelini hesaplayan akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla f=1,i=2 f=1 sayı sayı f=f*i i,2,sayı,1 i=i+1 f=f*i Evet i<sayı Hayır i f f Dur Dur

Örnek 10 (y=x2+5x-7 denkleminin x=[-4,4] aralığındaki çözümlerini bulan ve görüntüleyen akış şeması, (x’in artım değeri 0,5’tir.)) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla x=-4 x,-4,4,0.5 y=x*x+5*x-7 y=x*x+5*x-7 y y x=x+0,5 i Evet x<4 Hayır Dur Dur

Örnek 11 (girilen sayının tek yada çift olduğunu bulup uygun mesajı görüntüleyen akış şeması) Başla % simgesi mod alma işlemidir. sayi mod 2 = 0 ise çift sayı olduğunu değilse tek sayı olduğunu ekrana gösteriyoruz. kalan adında bir değişken kullanmadan, kontrol ifadesi içinde sayi % 2 = 0 yazmamız da mümkün olabilirdi. sayı kalan=sayi%2 kalan=0 sayi%2=0 Evet Sayı çifttir Hayır Sayı tektir Dur

Örnek 12 (girilen sayının asal olup olmadığını bulan akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla sayı sayı k=0 k=0, i=2 i,2,sayı-1,1 sayi%i=0 Evet k=k+1 sayi%i=0 Evet i=i+1 k=k+1 Hayır i<sayı-1 Evet Hayır i Hayır k=0 Evet Sayı asal k=0 Evet Sayı asal Hayır Hayır Sayı asal değil Sayı asal değil Dur Dur

Örnek 12 (girilen sayının asal olup olmadığını bulan akış şeması) Döngü içinde verdiğimiz sayi%i=0 koşulu sağlandı ise asal olmadığı kesinleştiğinden, diğer sayılar için döngüyü devam ettirmek gereksizdir. Yandaki akış şemasında verilen çözüm, önceki slaytta verilene göre daha hızlı çalışır (özellikle büyük bir sayı girildiğinde). Başla Bu çözümde k değişkenini kullanmadık. Eğer i döngü değişkeni sayı değerine ulaştıysa hiç tam bölen bulunamadı demektir. Eğer bir bölen bulunursa döngünün içinden çıkılcağı için i değeri sayi değerinden küçük olur. sayı i,2,sayı-1,1 sayi%i=0 Evet Hayır Daha hızlı çalışması sağlanabilir mi? i 1) sayi-1 yerine sayi/2’ye kadar kontrol edilebilir (2 kat daha hızlı) 2) Sayının kareköküne kadar kontrol edilmesi de yeterli olur (bir sayı karekökünden büyük bir sayıya tam bölünebilir, ama o bölümün sonucu karekökünden küçük olacağı için, kareköke kadar bölen olup olmadığını kontrol etmek yeterlidir) sayi=i Evet Sayı asal Hayır Sayı asal değil Dur

Örnek 13 (girilen 3 sayıdan hangisinin en büyük olduğunu bulan akış şeması) Başla a,b,c a>b Evet a>c Evet En buyuk sayı a’dır Hayır Hayır b>c Evet En buyuk sayı b’dir Hayır En buyuk sayı c’dir Dur

Örnek 14 (girilen 10 sayıdan en büyüğünü bulan ve görüntüleyen akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla eb=0 Başla i=1, eb=0 i,1,10,1 sayı sayı sayı>eb sayı>eb Evet i=i+1 Evet eb=sayı eb=sayı Hayır Hayır Evet i<10 i eb eb Dur Dur

Dizi Kavramı Diziler aynı tipteki elemanların yan yana sıralanmasıyla elde edilen bir bilgi kümesidir. İki boyutlu (örn: matris) yada daha çok boyutlu diziler de olabilir. Diziler akış şemalarında indisli gösterilirler: dizi(0), dizi(1), dizi(2), ……….., dizi(i) ilk elemanın indisi akış şemalarında 1 olarak gösterilse de, C programlama dilinde 0’dır.

Örnek 15 (10 elemanlı bir diziye bilgi girişi yapan ve diziyi görüntüleyen akış şeması) Kontrol İfadesiyle Döngü İfadesiyle Başla Başla i=1 i,1,10,1 dizi(i) dizi(i) i=i+1 Evet i<10 i Hayır i=1 i,1,10,1 dizi(i) dizi(i) i=i+1 i<10 i Evet Hayır Dur Dur

toplam=toplam+dizi(i) Örnek 16 (15 elemanlı bir sayı dizisine bilgi girişi yapılarak elemanların toplamını bulan akış şeması) Başla i,1,15,1 dizi(i) toplam=toplam+dizi(i) i toplam Dur

Örnek 17 (15 elemanlı bir sayı dizisine bilgi girişi yapılarak pozitiflerin ortalamasını, negatiflerin adedini bulan ve görüntüleyen akış şeması) Başla i,1,15,1 sayı(i) sayı(i)>=0 Evet poz_adet=poz_adet+1 toplam=toplam+sayi(i) Hayır neg_adet=neg_adet+1 i poz_ort=toplam/poz_adet poz_ort,neg_adet Dur

b(i)>=4 ve b(i)<=25 Örnek 18 (20 elemanlı bir sayı dizisine bilgi girişi yapılarak 4 ile 25 arasında olanların adedini bulan ve görüntüleyen akış şeması) Başla i,1,20,1 b(i) b(i)>=4 ve b(i)<=25 Evet adet=adet+1 Hayır i adet Dur

Örnek 19 (5 elemanlı bir sayı dizisine bilgi girişi yapılarak sayıları büyükten küçüğe doğru sıralayan ve sıralanmış diziyi görüntüleyen akış şeması) Başla i,1,5,1 i,1,5,1 sayı(i) sayı(i) i i Dur i,1,4 j,i+1,5 sayı(i)<sayı(j) Evet g=sayı(i) sayı(i)=sayı (j) sayı(j)=g Hayır j i

Algoritma ve Akış Şeması Alıştırma Soruları 1 ile 10 arasındaki sayıların karelerinin toplamını ekranda gösterin Girilen pozitif tamsayının kaç basamaklı olduğunu bulup ekranda gösterin Girilen 20 tamsayıdan çift sayıların toplamının tek sayıların toplamına oranını ekranda gösterin Girilen sayının 5’in kuvveti olup olmadığını ekranda gösterin Girilen 50 vize notunu vize dizisine, aynı öğrenci sıralaması ile girilen 50 final notunu da final dizisine yazıp, vizenin %30’u ve finalin %70’i hesabı ile 50 öğrencinin başarı notlarını sırası ile ekranda gösterin