You are on page 1of 88

EHB-105 ALGORİTMA VE

PROGRAMLAMA

DERS-1

BİLGİSAYAR İLE PROBLEM ÇÖZÜMÜ

1
GİRİŞ

Ders Notları: https://obs.sdu.ed.tr


Ders Kaynakları:
Practical Introduction to Programming and Problem Solving Third Edition,
Stormy Attaway
Holly Moore, MATLAB® for Engineers, 3rd Edition, 2012, Pearson, New York.
Fahri Vatansever, "Algoritma geliştirme ve programlamaya giriş", Seçkin
Yayınları, Ankara, 2011.
Prof. Dr. Uğur Arifoğlu MATLAB 7.14-Simulink ve Müh. Uyg. Alfa Yayıncılık
Matlab ile Programlama Dr.Deniz DAL 2012.Ekin Yayınevi
"MATLAB: An Introduction With Applications," 5th edition from Amos Gilat

http://www.mathworks.com/

2
NOT SİSTEMİ
Ödev %40
Vize %40
Final 60%

3
DERS KONULARI
Hafta 1: Bilgisayar İle Problem Çözümü
Hafta 2: Algoritma ve algoritmik mantık. Akış şemaları ve
sembollerin tanıtımı
Hafta 3: Dallanma yapıları ve örnekler
Hafta 4: Döngü mantığı. İç içe döngüler. Örnekler
Hafta 5: MATLAB programlama diline giriş. MATLAB ile ilgili
bilinmesi gerekenler
Hafta 6: MATLAB fonksiyon dosyaları(MATLAB function files )
Hafta 7: Ara Sınav
Hafta 8: Giriş ve Çıkış İşlemleri(User-controlled Input and
Output)
Hafta 9: MATLABda döngüler ve döngü mantığı(Loops)

4
DERS KONULARI

Hafta 10: MATLABda Koşullu Dallanma (Branching


Statements )
Hafta 11: MATLAB da grafik uygulamaları ve grafiklerle ilgili
deyimler, fonksiyonlar
Hafta 12: Programlama Örnekleri
Hafta 13: Eşitlik Çözümleri(Solving Simultaneous Equations)
Hafta 14&15: MATLAB Uygulamaları ve MATLAB da üç
boyutlu grafik

5
BİLGİSAYAR NEDİR?
Bilgisayar, bir dizi komut kümesine göre verileri saklayabilen,
verileri getirip kullanıma sunabilen ve işleyebilen bir
elektronik cihazdır.
Bilgisayar donanım ve yazılımdan oluşmaktadır. Donanım
bilgisayarın elektronik parçalarıdır, yazılım ise program ve
verilerden oluşur.
Program bir dizi komut kümesi olarak tanımlanabilir.

6
BİLGİSAYAR BİRİMLERİ
Girdi(Input): Bilgisayara verilerin girişinin sağlandığı
birimlerdir. Örneğin klavye, fare, tarayıcı,kamera, mikrofon...
Depolama(Storage): Bellek(RAM-Geçici depolama)
Hard Disk, CD-ROM, DVD vb. (Kalıcı depolama)
İşleme(Processing): Mikroişlemci(CPU-Central Processing
Unit)-Bilgisayar parçalarını kontrol eder ve koordine eder.
Çıktı(Output): Bilgisayardan alınan verilerdir. Ekran, Yazıcı,
hoparlör

7
8
YAZILIM
Bir dizi program, prosedür, algoritma ve bunların
dokümantasyonu ile ilgili veri işleme sistemidir. Yazılım ile
bilgisayara neyi, nasıl yapacağını komutlarını iletmiş oluruz.
Bir çok yazılım çeşiti vardır.
İşletim Sistemi yazılımları
Uygulama yazılımları (İş, eğitim, iletişim, medya vb.)

9
PROGRAMLAMAYA NEDEN
GEREK DUYULUR?
Problemin elle çözülmesi çok uzun süre olması.

Problemin çözümünün çok kere tekrarlanıyor olması.

Problemin bilgisayar aracılığı ile çözüme uygun olması.

Örnek: parsel alan hesabı

Örnek: adres takibi, kargo şirketleri

Programlamaya sonuç olarak; verinin büyüklüğüne, amaçlanan işlem

hızına ve işlem sayısına bakılarak karar verilmelidir.

10
PROGRAMLAMA BECERİSİ
NE DEMEKTİR?
Bilgisayara belirli bir işlemi yaptırabilmektir.

Programlama bir tekniktir.

Programcı belli temel bilgilere ve özelliklere sahip olmalıdır.

Programlama herkes tarafından öğrenilebilecek bir bilgidir.

11
PROGRAMLAMA DİLLERİ
Makina Dilleri
Assembly Dilleri
Yüksek Seviyeli Diller

12
COMPİLER(DERLEYİCİ) &
INTERPRETER (YORUMLAYICI)
Programlama dilleri derlenen ve yorumlanan olarak ikiye ayrılır.
Programcıların kodları yazarken 0-1 lerle makine dilinde yazması
zordur. Bu nedenle yüksek seviyeli diller derleyici veya
yorumlayıcı programlarla makine diline dönüştürülmektedir.
Yorumlanan bilgisayar programları ise yorumlayıcı adı verilen
yazılımlar ile satır satır makine koduna çevrilir ve işletilirler.

13
BİLGİSAYAR İLE PROBLEM
ÇÖZÜMÜ
1. Problem Analizi
2. Algoritma Geliştirilmesi
3. Akış Şeması(Flow Chart) ile Algoritmanın
İfadesi ve Sözde Kode (Pseudo Code)
4. Programlama Dili ile Algoritmanın Yazılıma
Dönüştürülmesi
5. Derleme ve Hataların Ayıklanması
6. Bakım ve Güncelleme

14
1.PROBLEM ANALİZİ

Problemin tam olarak ne olduğunun anlaşılmasıdır. Problem


eksiksiz bir şekilde tanımlanmalı, çözümde istenen ve
beklenenler tanımlanmalı, alternatif çözümler tanımlanmalı ve
problemin verileri ile elde edilmek istenilen çıktılar iyi
belirlenmelidir.

15
2. ALGORİTMA GELİŞTİRİLMESİ

Algoritma Tanımı: Algoritma, verilen herhangi bir sorunun


çözümüne ulaşmak için uygulanması gerekli adımların hiç bir
yoruma yer vermeksizin açık, düzenli ve sıralı bir şekilde söz
ve yazı ile ifadesidir. 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.

16
ALGORİTMADA OLMASI GEREKEN ÖZELLİKLER
Algoritma geliştirme aşamasında, geliştirilen algoritmanın;
I. Problemin tanımlandığı tüm durumlar için çalışabilmesi
II. Basitleştirilmiş ve tüm kullanıcılar tarafından anlaşılır olması
III. İşlemler yapılma sırasına göre ve doğru mantıksal kurguda olması
gerekmektedir. Ancak bunlar yapıldığında problem istenilen ölçüde
çözüme kavuşmuş olacaktır.
IV. Etkin ve genel olma. Her hangi sorunun algoritması verilerin yalnız bir
veya birkaç değerine değil, tüm mümkün değerlerine uygulana bilmelidir.
V. Sonlu olma. Algoritma kesinlikle sonlu sayıda işlem içermeli ve bu
işlemlerin süresi de sonlu olmalıdır; algoritma belli sayıda adımdan
oluşur, bir başlangıç noktasından başlar ve bitiş noktası mutlaka vardır.
VI. Yanılmazlık. Bir algoritmada işlem sonucundaki yanılmazlık en önemli
kriterdir. Algoritma tekrar yürütüldüğünde aynı giriş değerleri için aynı
sonuç elde edilmelidir.
VII. Giriş/Çıkış Tanımlı Olma. Algoritmanın giriş ve çıkış değerleri olmalıdır.
VIII. Başarım. Algoritma başarımı iyi olacak şekilde tasarlanmalıdır; gereksiz
tekrarlardan kaçınılmalıdır. Olabildiğince bellek gereksinimi ile çalışma
süresi arasında denge kurulmalıdır

17
ALGORİTMA /
AVANTAJLARI
I. Program yazmayı kolaylaştırır

II. Hatalı kodlama oranını azaltır

III. Program yazımı için geçen süreyi kısaltır

IV. İşlem akışını açık bir şekilde gösterdiğinden program


kontrolünü kolaylaştırır

V. Sonradan yapılacak düzenlemelerde kolaylıklar sağlar.

18
3. AKIŞ DİYAGRAMI (FLOWCHART)
İLE ALGORİTMANIN İFADESİ
Algoritmanın şekiller yardımıyla ifade edilme şekline akış
diyagramı denir. Akış diyagramı şekilleri uluslararasıdır. Her
simge genel olarak yapılacak bir işi veya komutu gösterir.
Akış diyagramı, algoritmanın tüm yazılımcılar tarafından
anlaşılmasını sağlayan bir dil olarak düşünülebilir. Ele alınan
problem için geliştirilen algoritmanın yazılıma (programa)
kolayca çevrilmesinde programcılar tarafından
kullanılmaktadır.

19
AKIŞ DİYAGRAMI

Akış Diyagramı (FlowChart) ile Algoritmanın İfadesi

İşlem ve Atama(Processing Opreator): Aritmetik işlemler


Ve değişik atama işlemlerinin temsil edilmesi için
kullanılır.

Program Başlangıcı ve Bitişi(Begin&End): Akış diyagramının


Başlangıç ve bitiş yerlerini gösterir.

Veri Girişi(I&O):Programa veri girişi ve programdan


Elde edilen sonuçların çıkış işlemlerini gösterir.

Yön Okları

20
AKIŞ DİYAGRAMI
Akış Diyagramı (FlowChart) ile Algoritmanın İfadesi

Ekran Çıktısı(Display)

Yazıcı Çıktısı(Print):Programdan belge alınır.

Karar Verme(Decision Logic): Bir karar verme


İşlemini temsil eder.

Döngüler(Loops): Program içinde belirli


blokların ard arda tekrar edileceğini gösterir.

21
AKIŞ DİYAGRAMI

Akış Diyagramı (FlowChart) ile Algoritmanın İfadesi

Veri Tabanı(Data Storage): Veri tabanından okuma


Ve yazma işlemi yapıldığını gösterir.

Önceden Tanımlı İşlemler(Predefined Process):


Algoritmalar, Fonksiyonlar ve prosedürler olarak bilinen
büyük yazılımları gösterir.

Bağlayıcı(Connector Point): Birden falza akış şemasını


bağlar.

22
4. PROGRAMLAMA DİLİ İLE ALGORİTMANIN
YAZILIMA DÖNÜŞTÜRÜLMESİ
Programlama dili, yazılımcının bir algoritmayı ifade etmek
amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının
yoludur. Programlama dilleri, yazılımcının bilgisayara hangi
veri üzerinde işlem yapacağını, verinin nasıl depolanıp
iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını
tam olarak anlatmasını sağlar. Şu ana kadar 150’den fazla
programlama dili yapılmıştır. Bunlardan bazıları Pascal,
Basic, C, C#, C++, Java, Cobol, Perl, Python, Ada, Fortran,
Delphidir.

23
MATLAB
MATLAB®(MATrix LABoratory – Matris Laboratuarı), temel olarak
teknik ve bilimsel hesaplamalar için yazılmış yüksek performansa
sahip bir yazılımdır. 1970’lerin sonunda Cleve Moler tarafından
yazılan Matlab programının tipik kullanım alanları:
• Matematiksel (nümerik ve sembolik) hesaplama işlemleri
• Algoritma geliştirme ve kod yazma yani programlama
• Lineer cebir, istatistik, Fourier analizi, filtreleme, optimizasyon,
sayısal integrasyon vb. konularda matematik fonksiyonlar
• 2D ve 3D grafiklerinin çizimi
• Modelleme ve simülasyon (benzetim)
• Grafiksel arayüz oluşturma
• Veri analizi ve kontrolü
• Gerçek dünya şartlarında uygulama geliştirme
şeklinde özetlenebilir.

24
5. DERLEME VE HATALARIN
AYIKLANMASI
Yazılım geliştirime (programlama) aşamasında iki hata ile
karşılaşılması muhtemeldir. Her program diline ait belli yazım
kuralları olduğundan, yazılımınız içerisindeki yanlış komut
yazımı, hatalı noktalama kullanımı veya eksik kodlama gibi
durumlardaki hatalara yazılım hataları denir. Bunlar
düzeltilmeden program zaten çalışmaz. Bunlar kullandığınız
programlama diline uygun olacak şekilde düzeltilerek hata
ayıklaması yapılır. Diğer bir hata türü ise algoritma hatalarıdır.
Yazılım hatası olmamasına rağmen programın çalışmaması,
hatalı sonuçlar vermesi veya istenilen tüm durumları
karşılamaması gibi durumlarda karşılaşılan hata durumudur.
Algoritma hatalarını test ederken akış diyagramınızın veya
kurduğunuz algoritmanın doğruluğunu kontrol etmeniz
gerekmektedir. Eğer bu bölümlerde bir hata yok ise problemin
yanlış analiz edilme olasılığı vardır, buda problemi tekrar ele
alarak, programlama aşamalarınızın derlenmesi gerektirir.

25
DERLEME VE HATALARIN
AYIKLANMASI
Problemin A
l
Analizi g
o
ri
t
m
Algoritma a
Geliştirilmesi H
a
t
a
l
a
Akış r
ı
Diyagramı

Y
a
z
ıl
Yazılım ı
m
Geliştirilmesi H
a
t
a
l
a

26
r
ı
BİR HASTANIN RÖNTGEN ÇEKTİRME ALGORİTMASI

27
ALGORİTMALARDA
KULLANILAN TEMEL TERİMLER
• Değişken
• Atama
• Sayaç
• Döngü

28
DEĞİŞKEN
Bir program içerisinde bilgileri geçici olarak
saklamak ve ihtiyaç duyduğumuzda bu bilgiler
üzerinde işlem yapmak için değişkenlerden
yararlanırız.
Su bardağını bir değişken olarak düşünün.
Resimdeki bardakların hepsi aynı hacme sahip
özdeş bardaklardır. Fakat;
•Birinci bardağın %10’nu dolu ve dolayısıyla
bardak değişkeninin değeri %10’dur.
•İkinci bardağın %35’i dolu ve dolayısıyla
bardak değişkeninin değeri %35’dir.
•Üçüncü bardağın %75’i dolu ve dolayısıyla
bardak değişkeninin değeri%75’dir.
•Dördüncü bardağın %90’i dolu ve dolayısıyla
bardak değişkeninin değeri %90’dır.

29
ATAMA
Herhangi bir değişkenin içine bir değeri veya ifadenin/işlemin sonucunu
aktarma işlemine atama denir.

değişken=ifade

Herhangi bir değişkenin Matematiksel, mantıksal veya


ismi sayısal olmayan ifade
Aktarma operatörü
‘değişken’ yazan kısım, herhangi bir değişkenin adıdır (Örneğin bardak
değişkeni).‘ifade’ yazan kısımda ise matematiksel, mantıksal veya alfa-
nümerik bir ifade olabilir. Aradaki‘=’sembolü, ‘atama operatörü’ olarak
adlandırılır ve sağdaki ifadenin/işlemin sonucunu soldaki değişkene
aktarır.

30
SAYAÇ
Programlarımızda bazı işlemlerin belirli sayıda yaptırılması
veya işlenen/üretilen değerlerin sayılması gerekebilir. Sayma
amacıyla kullanılan bu tür değişkenlere sayaç denir.
sayac= sayac+ 1
Bilgisayar deyimi ile sayac adlı değişkenin eski(önceki)
değerine‘1’eklenmektedir. Bulunan sonuç yine kendisine,
yenideğer olarak aktarılmaktadır. Bu tür değişkenlere, algoritmada
“sayaç” veya “sayıcı”(counter) adı verilir. Yani “sayaç” işlem
akışı kendisine her geldiğinde, belirtilen adım değeri kadar artan
veya azalan değişkendir.
Sayaç değişkeni artan bir değişken olabileceği gibi azalan bir
değişkende olabilir

31
SAYAÇ

Sayaç değişkeni = sayaç değişkeni  adım

sayacın yeni sayacın eski artma veya azalma


değeri değeri miktarı

32
DÖNGÜ
Bir çok programda bazı işlemler belirli ardışık değerlerle
gerçekleştirilmekte veya belirli sayıda yapılmaktadır.
Programlardaki belirli işlem bloklarını, belirli sayıda tekrarlayan
işlem akış çevrimlerine döngü denir.

33
DÖNGÜ OLUŞTURMA
KURALLARI

1.Döngü değişkeninin başlangıç değeri belirlenir.


2.Döngü değişkeninin bitiş değeri belirlenir.
3.Döngü değişkeninin bitiş değerine ulaşıp ulaşmadığı test edilir.
4.İstenen işlem gerçekleştirilir.
5.Döngü değişkeni, döngü içinde adım miktarı kadar artırılır yada
azaltılır.

34
İŞLEMLER
Bilgisayar programları ile gerçekleştirilen işlemler genel
olarak üç gruba ayrılır:
• Matematiksel (aritmetik) işlemler

• Karşılaştırma (karar) işlemleri



• Mantıksal (lojik) işlemler

35
MATEMATİKSEL İŞLEMLER

Temel aritmetik işlemler (toplama, çıkarma, çarpma ve bölme)

Matematiksel fonksiyonlar (üstel, logaritmik, trigonometrik, hiperbolik


vb)
Ondalıklı sayıların tam ve ondalıklı
kısımlarını ayırmak için;

Ondalık sayı
Matematik (,) Bilgisayar (.)
125,865 125.865

Sayıların önünde
Pozitif : İşaret yok

Negatif : 

36
MATEMATİKSEL İŞLEMLER
Matematiksel işlemler ve bilgisayar dilindeki karşılıkları

İşlem Matematik Bilgisayar

Toplama a+b a+b


Çıkarma a–b a–b
Çarpma a.b a*b
Bölme ab a/b
Üs alma ab a^b

37
MATEMATİKSEL İŞLEMLER
• Matematiksel işlemler, programlarda bilgisayar mantığına
göre yeniden düzenlenmelidir.

• Bilgisayar dilinde yazılmış matematiksel ifadelerde işlem


öncelik sırası bulunmaktadır.

• Matematiksel işlemler bilgisayar diline aktarılırken


yapılacak olan küçük bir hata işlem sonucunun yanlış
çıkmasına neden olur.

• Bu nedenle, matematiksel işlemlerin bu öncelik sırasına


dikkat edilmelidir.

38
MATEMATİKSEL İŞLEMLER
Matematiksel işlem öncelik sıraları
Sıra İşlem Bilgisayar dili

1 Sayıların negatifliği -

2 Parantezler ((.....))

3 Matematiksel Cos,sin,ln,log,…
Fonksiyonlar
4 Üs alma a^b

5 Çarpma ve bölme a*b ve a / b

6 Toplama ve çıkarma a+b ve a-b

39
MATEMATİKSEL İŞLEMLER
Örneğin
Y=A*B/C
denkleminde, aynı öncelik sırasına sahip çarpma ve bölme işlemleri
bulunmaktadır. Bu durumda bilgisayar;

A * B işlemini yapıp bulunan sonucu C’ye bölerek işlemi


gerçekleştirecektir.

Y=A+B-C+D
İşleminde A ile B toplanacak çıkan sonuçtan C çıkarılacak ve bulunan
sonuca D eklenecektir.

Y=A^B^C
işleminde ise önce A’nın B’inci kuvveti alınır; çıkan sayının C’inci
kuvveti hesaplanır.

40
MATEMATİKSEL İŞLEMLER
Bazı matematiksel ifadelerin bilgisayar diline kodlanması

Matematiksel yazılım Bilgisayara kodlanması


a + b – c + 2abc - 7 a + b – c + 2 * a *b *c-7

a + b2 - c 3 a + b^2 – c^3
𝟐𝒂𝒃 sqrt(a+b)-2*a*b/(b^2-4*a*c)
𝒂+𝒃−
𝒃𝟐 − 𝟒𝒂𝒄
𝑩. 𝑪 A+B*C/D-E*F
𝑨+ − 𝑬. 𝑭
𝑫

41
MATEMATİKSEL İŞLEMLER
Örnek 1: a = 4, b = 6, c = 8 ve d = 10 değerleri için bilgisayar
dilinde kodlanmış üç denklemin sonuçlarını inceleyiniz
1. Denklem c * d / (a*d) + b + c *d / a = 28
2. Denklem c * d / a*d + b + c *d / a = 226
3. Denklem c * d / a*d + (b + c) *d / a =235

42
MATEMATİKSEL İŞLEMLER
Örnek 2: A = 9, B = 16 değerleri için aşağıdaki ifadelerin
sonuçlarını bulunuz

İfade Matematiksel eşdeğeri

A + B^1/2

A + B^(1/2)

(A + B)^1/2

(A + B)^(1/2)

43
KARŞILAŞTIRMA İŞLEMLERİ
Bilgisayar, temel matematiksel işlemlerin yanında karar
modelleri de üretebilir. Örneğin,

• İki büyüklükten hangisinin büyük veya küçük olduğunu,

• İki değişkenin eşit olup olmadığı gibi konularda karar


verebilir.

Karşılaştırma işlemleri, sayısal ve sayısal olmayan bilgilere


uygulanabilmektedir.

44
KARŞILAŞTIRMA İŞLEMLERİ
Karşılaştırma İşlemleri

İşlem Sembolü Anlamı


== Eşittir
~= veya <> Eşit değildir
> Büyüktür
< Küçüktür
>= Büyük eşittir
<= Küçük eşittir

45
KARŞILAŞTIRMA İŞLEMLERİ
Örnek 3: x=0 , y=sin(pi) olsun.

Bilgisayarda,

x==y

dendiğinde sonuç,

ans =

olur. Çünkü bilgisayarda sin(pi)=1.22410-16 değerine sahiptir ve 0’a eşit değildir.


>> x=3;y=3;
>> x==y

ans =

46
MANTIKSAL İŞLEMLER
Mantıksal işlem operatörleri hem karar ifadelerinde hem de
matematiksel İşlemlerde kullanılır.
Programlardaki karşılaştırma ifadelerinde birden fazla
koşulun belirli bir özellikte sağlanması istenir. Bu durumda
araya mantıksal işlem operatörleri konulur.

Mantıksal Komut
işlem
VE and (&)
VEYA or ( | )
DEĞİL not (~)

47
MANTIKSAL İŞLEMLER
VE (&) Operatörü: Bütün koşullar doğru ise sonuç
doğrudur.Bütün şartların sağlatılması isteniyorsa koşullar
arasına (VE) mantıksal operatörü kullanılır

A B A &B , and(A,B)

0 0 0

0 1 0

1 0 0

1 1 1

48
MANTIKSAL İŞLEMLER
VEYA (|) Operatörü: Koşullardan herhangi birisi doğru ise
sonuç doğrudur.

A B A|B, or(A,B)

0 0 0

0 1 1

1 0 1

1 1 1

49
MANTIKSAL İŞLEMLER
NOT (‘) Operatörü: Koşul doğru ise sonuç yanlış olur yanlış
ise doğru olur.

A DEĞİL A

0 1

1 0

50
MANTIKSAL İŞLEMLER
• Mantıksal işlemlerde öncelik sırası şöyledir:

1. Her zaman parantez içindeki mantıksal işlemler ilk önce


yapılır.

2. Değil, yani (~) işleminin diğer mantıksal işlemlere göre


önceliği vardır.

3. Son olarak, Ve (&) ve or (|) işlemleri gerçekleştirilir.

51
MANTIKSAL İŞLEMLER
Örnek 1 : Bir işyerinde çalışan işçiler arasında yalnızca yaşı
23’ün üzerinde olup maaş olarak 600 TL alanların isimleri
istenmektedir.
Eğer Yaş > 23 & maaş == 600 ise Yaz isim

Yaş Maaş 1. koşul 2. koşul Sonuç Yaz

20 440 0 0 0 Çalışmaz

19 600 0 1 0 Çalışmaz

25 445 1 0 0 Çalışmaz

30 600 1 1 1 Çalışır

52
UYGULAMALAR
UYGULAMA 1
Klavyeden girilen iki sayıyı okuyup aritmetik
ortalamasını hesaplayan ve sonucu ekrana yazan
bir algoritmanın akış şemasını çiziniz.

53
ALGORİTMA 1
1.Adım:Başla
2.Adım:Kullanıcıdan A sayısını klavye yardımıyla al
3.Adım:Kullanıcıdan B sayısını klavye yardımıyla al
4.Adım:ortalama=(A+B)/2
5.Adım:ortalama değerini ekrana yazdır.
6.Adım:Bitir

54
AKIŞ DİYAGRAMI 1

Başla

A yı
oku

B yi
oku

ortalama=(A+B)/2

ortalama

Bitir

55
UYGULAMA 2
Girilen üç sayının ortalamasını hesaplayan ve ekrana
yazdıran algorimayı geliştiriniz ve bu algoritmaya ait akış
diagramını çiziniz.

56
ALGORİTMA 2
1.Adım:Başla
2.Adım:Kullanıcıdan sayi1 değişkeni klavye yardımıyla al
3.Adım:Kullanıcıdan sayi2 değişkeni klavye yardımıyla al
4.Adım:Kullanıcıdan sayi3 değişkeni klavye yardımıyla al
5.Adım:ortalama=(sayi1+sayi2+sayi3)/3
6.Adım:ortalama değerini ekrana yazdır.
7.Adım:Bitir

57
AKIŞ DİYAGRAMI 2
Başla

sayi1 i
oku

sayi2 yi
oku

sayi3 ü
oku

ortalama=(sayi1+sayi2+sayi3)/3

ortalama

Bitir

58
KOŞULLU DALLANMA
Koşullu dallanma simgesi baklava dilimi şeklindedir.
Simgenin içerisine koşul yazılır. Simgeden iki yöne ok
çıkabilmektedir. Koşul olumlu ise Evet olumsuz ise Hayır
olarak etiketlenen yöne doğu dallanır.

Hayır Evet
Koşul

İşlem 1 İşlem 2

59
UYGULAMA 3
Su sıcaklığını ölçüp veri tabanına belirli periyotlarla T
değişkeni ile atayan su ısıtma cihazının, su sıcaklığının 40
dereceye kadar ısıtan algoritmayı kurunuz.

60
ALGORİTMA 3

1.Adım:Başla
2.Adım:Veri tabanından T değişkeni al
3.Adım:T değişkenini sıcaklık değişkenine ata
4.Adım:sıcaklık≥40 ise 5. Adıma git değilse 2. Adıma git
5.Adım:lsıtıcıtı kapat
6.Adım:Bitir

61
AKIŞ DİYAGRAMI 3
Başla

Sıcaklık=T

Hayır Evet
Sıcaklık≥40

Isıyı kapat

Bitir

62
UYGULAMA 4
Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit
olma durumunu hesaplayıp yazdıran algoritma ve akış
şemasını hazırlayınız.

63
ALGORİTMA 4
1.Adım: Başla
2. Adım: S sayısını oku
3. Adım: Eğer S > 0 ise “Pozitif” yaz,
4. Adım: Eğer S < 0 ise “Negatif” yaz,
5. Adım: Eğer S = 0 ise “Sıfıra eşit” yaz,
6. Adım: Bitir

64
AKIŞ DİYAGRAMI 4
Başla

S yi
oku

Hayır Evet
S≥0

Hayır Evet
S>0

Negatif Sıfıra eşit Pozitif

Bitir

65
UYGULAMA 5
A ve B gibi iki sayıdan büyüğünü yazdıran algoritma ve akış
şeması yazınız.

66
ALGORİTMA 5

1. Adım: Başla
2. Adım: A yi oku
3. Adım: B'yi oku
4. Adım: A>B ise Adım 6'ya git
5. Adım: B'yi yaz Adım 7'e git
6. Adım: A'yı yaz Adım 7'e git
7. Adım: Bitir

67
AKİŞ DİYAGRAMI 5
Başla

A,B yi
oku

Hayır Evet
A>B

EB=B EB=A

En Büyük:
EB

Bitir

68
UYGULAMA 6
Ekrana bir eşkenar üçgenin üç kenar uzunluğu okunmaktadır.
Buna göre okunan uzunluklara karşılık üçgenin eşkenar
üçgen olup olmadığını bulan, eşkenar ise "eşkenar"; değilse
"eşkenar üçgen değil", mesajını görüntüleyen algoritmayı
yazınız.

69
ALGORİTMA 6
1. Adım: Başla
2. Adım: kenar1, kenar2, kenar3 oku
3. Adım: Eğer kenar1 = kenar2 ve kenar1 = kenar3 ise “üçgen
eşkenardır” yaz : 5. adıma git
4. Adım: “üçgen eşkenar değildir” yaz
5. Adım: Bitir

70
AKIŞ DİYAGRAMI 6
Başla

kenar1, kenar2, kenar3


yi oku

Hayır kenar1= Evet


kenar2

Hayır kenar1= Evet


kenar3

üçgen
eşkenar üçgen
değildir eşkenardır

Bitir

71
UYGULAMA 7
Ekrana bir öğrencinin adı vize notu ve final notu olmak üzere
iki tane sınav notu okunmaktadır. Okunan notlara göre
öğrencinin vize notunun %40’ı ve final notunun %60’ı alınarak
başarı ortalamasını hesaplayan ve başarı ortalaması 60’tan
küçük ise adı ile birlikte başarısız, büyük ise adı ile birlikte
başarılı yazdıran algoritmayı yazınız.

72
ALGORİTMA 7
Formülbort = vize *( 40 /100) + final * (60/100)
1. Adım: Başla
2. Adım: ad, vize, final oku
3. Adım: bort = vize *( 40 /100) + final * (60/100)
4. Adım: Eğer bort < 60 ise ad, “başarısız” yaz ve 6. adıma git
5. Adım: ad, “başarılı” yaz
6. Adım: Bitir

73
AKIŞ DİYAGRAMI 7
Başla

ad, vize,final i
oku

bort = vize *( 40 /100) + final *


Hayır (60/100)

Hayır Evet
bort<60

ad ad
başarılı başarısız

Bitir

74
UYGULAMA 8
İkinci dereceden cebirsel 𝑎𝑥2+𝑏𝑥+𝑐=0 denkleminin
katsayılarının kullanıcı tarafından girilmesiyle, reel kökü olup
olamadığına karar veren, varsa bulup ekrana yazdıran bir
algoritma geliştiriniz ve akış diyagramını çiziniz.

a,b,c katsayıları alınır/okunur ve aşağıdaki bağıntı uyarınca


(delta) hesaplanır:

Δ= b2-4.a.c

Eğer Δ >0 ise birbirinden farklı iki gerçel kök vardır; Δ =0 ise
tek kök vardır veya iki kök aynıdır denilebilir; Δ <0 için kökler
karmaşıktır, yani sanal kısmı vardır.

75
ALGORİTMA 8
1.Adım:Başla
2.Adım:Kullanıcıdan 𝑎, 𝑏ve 𝑐katsayı sabitlerini klavye
yardımıyla al
3.Adım:𝑎, 𝑏 ve 𝑐 değerleri ile denklemin diskriminant (Δ)
değerini hesapla ve “delta” değişkenine ata
4.Adım:“delta” değişkeni sıfırdan küçükse 6. Adım’ a, değilse
5. Adım’ a git
5.Adım:Ekrana “Denklemin kökleri reel.” yazdır. 7. Adım’ a git
6.Adım:Ekrana “Kökler karmaşıktır.” yazdır. 9. Adım’ a git
7.Adım:Birinci ve ikinci kökleri hesapla ve sırasıyla “x1” ve
“x2” değişkenlerine ata
8.Adım:“x1” ve “x2” değişkenlerinin değerlerini ekrana
yazdır.
9.Adım:Bitir

76
AKIŞ DİYAGRAMI 8
Başla

A,B,C
yi oku

Delta=B*B-4*A*C

Hayır Evet
Delat>0

Hayır Delat=0
Evet X1=(-B-sqrt(Delta))/(2*A)
X2=(-B+sqrt(Delta))/(2*A)
X=-B/(2*A)

Kökler Tek kök X1


karmaşıktır vardır X2

77
Bitir
MATLAB YAZILIMI 8.
a=input('Lütfen a katsayısını giriniz:');
b=input('Lütfen b katsayısını giriniz:');
c=input('Lütfen c katsayısını giriniz:');
delta=b^2-4*a*c;
if delta<0
disp('Denklemin Reel Kökü Yoktur');
else
disp('Denklemin Kökleri Reeldir');
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
fprintf('1. Kök: %g\n2. Kök: %g\n',x1,x2);
end

78
UYGULAMA 9
Klavyeden girilen bir N sayısının faktöriyelini ekrana yazan
Algoritma ve akış diyagramını çiziniz.
𝒏

𝒏! = ෑ 𝒌
𝒌=𝟏

𝟓! = ෑ 𝒌 = 𝟏 ∗ 𝟐 ∗ 𝟑 ∗ 𝟒 ∗ 𝟓
𝒌=𝟏

79
ALGORİTMA 9
1.Adım: Başla
2. Adım: n OKU
3. Adım: f=1
4. Adım: k=2
5. Adım: f=f*k
6. Adım: k=k+1
7. Adım: EĞER k<=n İSE 5. ADIMA GİT
8. Adım: f YAZ
9. Adım: Bitir

80
AKIŞ DİYAGRAMI 9
Başla

n i oku

f=1,k=2

f=f*k

k=k+1

Hayır Evet
k≤n

81
Bitir
UYGULAMA 10
𝑓 fonksiyonunun değeri 𝑥'in aldığı değerlere göre aşağıda
verilmiştir. 𝑥'in değeri 0-20 arasında 0.5 aralıklarla arttığına
göre herbir 𝑥 değeri için 𝑓 fonksiyonunu hesaplayan
programın akış diyagramını çiziniz.
𝑥, 0≤ 𝑥≤2
𝑥 − 𝑥 3 − 22, 2<𝑥≤3
𝑓 𝑥 =
𝑥 2 − 2𝑥 + 13, 3<𝑥≤4
𝑥 4 − 3𝑥 2 − 43, 4<𝑥

82
AKIŞ DİYAGRAMI 10
Başla

x=0
Evet
0≤x≤2 f=x
Hayır
Evet
2<x≤3 f=𝑥 − 𝑥 3 − 22
Hayır
Evet
3<x≤4 f=𝑥 2 − 2𝑥 + 13
Hayır
f=𝑥 4 − 3𝑥 2 − 43

x,f

x=x+0.5

Hayır Evet
x≥20 Bitir

83
UYGULAMA 11
Çamaşır makinasının, çalışmasını anlatan algoritmayı
kurunuz.

84
AKIŞ DİYAGRAMI 11
Başla

Kapağı Aç

Makineyi Doldur

Evet Makineyi Boşalt


Hayır
Kilo≤5

Yıkama Programını
ve Zamanı(x)
Hayır belirle

Kapağı kapat
Kapak Açık
Evet Çalıştırma
Kapak kapalı ise Hayır
Çalıştır ve
zamanı başlat

Evet
x>0 Kapağı kilitle X(zaman) i azalt
Hayır
Kapak kilidini aç

85
Bitir
SÖZDE (PSEUDO) KOD
Sözde kod, doğrudan konuşma dilinde ve programlama
mantığı altında, eğer, iken gibi koşul kelimeleri ve > = < gibi
ifadeler ile yazılır.
İyi bir biçimde yazılmış, sözde koddan, programlama diline
kolaylıkla geçilebilir.

86
ÖRNEK
Verilen bir sıcaklık derecesine göre suyun durumunu belirten
PseudoKod.
1. Program açıklama mesajı yaz.
2. Kullanıcın sıcaklığı girmesi için bir uyarı mesajı yaz.
3. Girilen Sıcaklığı Oku.
4. Durumu belirle
• Eğer Sıcaklık > 0 ise
• Eğer Sıcaklık>= 100 ise
• Durum =“Buhar”
• Değilse
• Durum =“Su”
• Değilse
• Durum=“Buz”
5. Sonucu (Durum) Yaz

87
ÖZET
Algoritma tasarımı programlamaya bir başlangıçtır. Yapılacak
olan iş öncelikle programlamadan bağımsız olarak ortaya
konulmalıdır. Algoritma bir problemin bilgisayar ortamında
çözülecek biçimde adım adım ortaya konulmasıdır.
Akış şemaları algoritmanın şekilsel olarak ifade edilmesidir.
Problemin çözümü simgeler kullanılarak gerçekleştirilir.
Algoritmanın kullanıldığı programda algoritmanın bütün
adımlarını görmek mümkündür.

88

You might also like