You are on page 1of 39

BÖLÜM 2: ALGORİTMA

C#
C# 2.1. ALGORİTMA NEDİR?
 Bir problemin(sorunun) çözümü için ihtiyaç duyulan tüm işlemlerin (adımların) mantıksal olarak sıralı
bir şekilde ifade edilmesi algoritma olarak tanımlanır.
 Algoritma programlamanın temel mantığını oluşturmaktadır.
 Herhangi bir işin yapılabilmesi için işlemlerin adım adım sıralanarak bir akış belirlenmesi o işin
algoritmasını oluşturur.
 Algoritma oluşturulurken işlem adımları maddeler halinde sıralanabilir ya da sembollerle gösterilebilir.
 Günlük hayat uygulamalarında algoritmalara rastlamak mümkündür.
Örnek: Çayın demlenmesi ve servis edilmesi,

2
C# 2.1. ALGORİTMA NEDİR?

Bir algoritma oluştururken dikkat edil­mesi gereken hususlar aşağıda belirtilmektedir.


 Algoritmaların başlangıç ve bitiş noktaları olmalıdır,
 Problem ile ilgili tüm olasılıkların göz önüne alınması gereklidir,
 Şansa bağlı durumlar olmamalıdır,
 En hızlı, en kolay çözüm yolu tercih edilmelidir.
Algoritmada dikkat edilmesi gereken hususlar göz önüne alınarak çay ile ilgili algoritma
tekrar ele alınırsa:

3
C# 2.1. ALGORİTMA NEDİR?

Algoritmanın yeni duruma göre düzenlenmiş hali aşağıdaki gibidir:

veya

Not: Aşağıdaki durumlara göre algoritmayı yeniden düzenleyiniz.


 Bakkalın kapalı olması durumu.
4  Bakkalda çayın olmaması durumu
C# 2.1. ALGORİTMA NEDİR?

Algoritmanın sağladığı kolaylıklar;


 Program yazım sürecini hızlandırır,
 Hatalı program yazımını en aza indirir,
 Hata oluştuğunda tespit edilip giderilmesini kolaylaştırır,
 Güncelleme gerektiğinde kolaylık sağlar

Örnek: Klavyeden 2 sayının okunarak toplamının bulunması için ge­rekli algoritmanın


oluşturulması:

5
C# 2.1. ALGORİTMA NEDİR?

Algoritma oluşturma kuralları oldukça esnektir. Ancak algoritma oluşturmanın temel 5 adımı
vardır. Bunlar:
 Başla Satırı
 Veri Giriş İşlemleri
 İşlemlerin Yapılması
 Sonuçların Yazdırılması (çıkış işlemleri)
 Bitir Satırı
Bir önceki örnek incelendiğinde her bir satırın algoritmanın temel 5 adımına kar­şılık geldiği
görülür:

6
C# 2.1. ALGORİTMA NEDİR?

Örnek: Dışarıdan alınan bir sayının önce karesini sonra da 5 fazlasını bulan algoritmanın
oluşturulması:

› Algoritmanın temel 5 adımından biri olan işlemler kısmı 2 adımda bitirilmiştir. (3. ve 4. Adım)
› Soru incelendiğinde “Dışarıdan alınan bir sayı” ifadesi dikkati çek­mektedir Bir program
yazarken veri girişlerinin yapılması muh­temeldir.
› Veri girişleri farklı platformlardan yapılabilir. Örneğin bilgisayarı­nızda ki bir dosyadan, ağ
üzerinden ya da klavyeden.

7
C# 2.2. ALGORİTMALARDA KULLANILAN TANIMLAR

2.2.1.Değişken
 Bir programın her çalıştırılmasında farklı değerler alabilen bellek alanlarının programda temsil edilmesi
değişkenler ile mümkündür.
 Değişkenler doğrudan dışarıdan alınan bir sayısal, alfa sayısal (metinsel) ya da farklı veri tiplerinde
olabilir.
 Bilgisayarların bellek bölgelerindeki verilere ise “değer” denir.

Örnek kullanım: Sayısal bir değerin değişkene aktarılması


A = 15 ifadesinde A değişkeninin değeri 15 tir.

Örnek kullanım: Metinsel bir değerin değişkene aktarılması


 Dikkat edilecek olursa metinsel ifadeler değişkenlere değer olarak aktarıl­mak istendiğinde çift tırnak
içerisinde yazılırlar.

8
C# 2.2. ALGORİTMALARDA KULLANILAN TANIMLAR

2.2.2. Aktarma
 Aktarma işlemi değişkenlere değer gönderilmesidir. Bu işlem “=” operatö­rü ile gerçekleştirilir.
Örnek Kullanım:

 “=” operatörünün sağ tarafındaki değer sol taraftaki değişkene aktarılır. Değişken bu değeri
bellek bölgesinde tutar.
Örnek Kullanım:

 “=” operatörünün sağ tarafında işlem var ise önce işlem gerçekleştirilir. Bu­lunan sonuç aktarma
operatörünün sol tarafındaki değişkene aktarılır. İşlem sonunda X değişkenin de 8 değeri
bulunur.
 Genel bir ifade ile “=” (aktarma) operatörü sağ tarafındaki ifadeyi sol tara­fındaki değişkene
aktarır. Burada ifade ile kastedilen doğrudan sayısal ya da alfa sayısal bir değer olabileceği gibi,
matematiksel bir işlem sonucu da olabilir.
9
C# 2.2. ALGORİTMALARDA KULLANILAN TANIMLAR

2.2.3. Sayaç
 Aktarma operatörünün özelliğinden faydalanarak sayaç yapılabilir. Prog­ramda bazı işlemler belirli sayıda
olabilir ya da bazı durumlarda sayım yapılma­sı gerekebilir. Bu gibi durumlarda sayaç kullanılır.
 Örneğin klavyeden kaç tane sayı girildiğinin tespiti için sayaç kullanılabilir. Sayaç ifadesi aşağıdaki gibi
yazılabilir.

 Aktarma operatörünün sağ tarafındaki işlem öncelikli olarak yapılır. Bu du­rum da “say” değişkenin önceki
değerine “1” eklenerek “say” değişkeninin yeni değeri elde edilir.
 Başlangıçta “ say’’ değişkeninin değerini sıfır kabul edelim ve işlemi 5 kez ça­lıştıralım.
Çalıştırma say Eski Değeri İşlem(say=say+1) say Yeni Değeri

1. 0 0+1 1
2. 1 1+1 2
3. 2 2+1 3
4. 3 3+1 4
10 5. 4 4+1 5
C# 2.3. ALGORİTMA YAZIM KURALLARI
 Algoritma yazarken sıkı kuralların olmadığından bahsedildi fakat algorit­malarda matematiksel ifadeler kullanmak
anlaşılabilirliği arttırmaktadır.
 Sayıların dışa­rından alınarak değişkene aktarılması için “Sayı Oku” ifadesi, sonuçları yaz­dırmak için “Yaz” ifadesi
kullanılabilir.
Daha önce verilen örnek bu yöntemle tekrar yazıldığında aşağıdaki gibi bir algoritma oluşur:

 2. adımda A değişkenine değer alınmaktadır.


 3.adımda ise aktarma işlemi gerçekleştirilmektedir. A ^2 ifadesi ile A de­ğişkeninin yani A olarak isimlendirdiğimiz
bellek bölgesinde ki değerin karesi alınmaktadır. Daha sonra bu işleme 5 sayısı eklenmektedir.
 İşlem gerçekleştiril­dikten sonra “=” operatörünün çalışma prensibi gereği işlem sonucu “S” değiş­kenine
aktarılmaktadır.

11  4. Adımda S değişkeninin değeri sonuç olarak ekran, dosya ya da yazıcıya yazdırılmaktadır.


C# 2.3. ALGORİTMA YAZIM KURALLARI

Algoritmanın Çalıştırılması
Algoritmanın 3 kez çalıştırıldığını düşünelim. Her defasında A değişkeni için farklı değerler
girilsin Değişkene verilen her bir değer için hesaplanan sonuç ekrana yazılmaktadır. Örnek olarak
sırasıyla 3, -2 ve 0 değerleri girildiğinde bulunan S değerleri aşağıdaki tabloda gösterilmiştir.
(Tamamen rastgele seçilmiş değerlerdir.)

Okunan A Değeri İşlem (A^2+5) S Değeri

3 3^2+5 14
2 (-2)^2+5 9
0 0^2+5 5

12
C# 2.4. ALGORİTMALARDA KULLANILAN OPERATÖRLER

Bu başlık altında algoritma ve akış diyagramlarında kullanılabilecek opera­törlere yer


verilmektedir. Programlama dillerinde farklı yapılar kullanılabilir. C# Programlama dilinde de
birçok operatör mevcuttur.
2.4.1. Matematiksel Operatörler
Matematiksel işlemlerin gerçekleştirilmesinde kullanılan işleçler vardır. Bunlara matematiksel
operatörler denir.
Matematiksel Operatörler
Operatör Anlamı Açıklama Örnek Kullanımı
+ Toplama Matematikteki toplama işlemini gerçekleştirir. Toplam = 5 + 3
- Çıkarma Matematikteki çıkarma işlemini gerçekleştirir. Fark = 7-3
* Çarpma Matematikteki çarpma işlemini gerçekleştirir. Çarpım = 4*3
Matematikteki bölme işlemini gerçekleştirir. Operatörün solundaki
/ Bölme Bölüm = 4/3
sayıyı sağındaki sayıya böler.

Mod Mod Alma Operatörün solundaki sayıyı sağındaki sayıya böler ve kalan kaç ise onu Kalan = 5 mod 3
verir.
Üs alma işlemini gerçekleştirir. Operatörün solundaki sayının sağındaki
^ Üs Alma sayı kadar kuvvetini alır. Sonuç =5^4
13
C# 2.4. ALGORİTMALARDA KULLANILAN OPERATÖRLER
Matematiksel işlemlerde işlem önceliklerine dikkat edilmelidir. Öncelikler aşağıda belirtilmiştir:
1. Parantez İçleri
2. Üs Alma
3. Çarpma, Bölme İşlemleri
4. Mod Alma İşlemi
5. Toplama, Çıkarma İşlemleri
Matematiksel yazım ile programlama dillerindeki yazım farklılık gösterebilmektedir. Matematiksel ifadeler ve
programlama dilindeki karşılıkları tabloda gösterilmektedir:

14
C# 2.4. ALGORİTMALARDA KULLANILAN OPERATÖRLER

Çalışma Sorusu:
Aşağıdaki matematiksel ifadelerin programlama dili karşılıklarını yazınız.

15
C# 2.4.2. Karşılaştırma Operatörleri
 Program yazarken birden fazla değeri karşılaştırmak gerekebilir.
 Karşılaştırma sonucuna göre program içerisinde farklı dallanmalar yapılabilir. Örneğin 2 sayıdan
hangisinin büyük olduğunu tespit edebilmek için sayıların karşılaştırılmasının yapılması gerekebilir.
 Karşılaştırma işlemi için kullanılan ope­ratörler karşılaştırma operatörleri olarak adlandırılır.
 Karşılaştırma operatörlerine ilişkin bilgiler aşağıdaki tabloda sunulmuştur.

Operatör Anlamı Açıklama Örnek Kullanım

= Eşitlik İki ifade eşit olduğunda koşul sağlanır. Eğer a=3 ise
Operatörün solundaki ifade sağındaki ifadeden küçük ise koşul
< Küçük doğrudur. Eğer a<5 ise
Operatörün solundaki ifade sağındaki ifadeden büyük ise koşul
> Büyük doğrudur. Eğer a>5 ise|
Operatörün solundaki ifade sağındaki ifadeden küçük veya eşit ise
<= Küçük Eşit koşul doğrudur. Eğer a<=12 ise
Operatörün solundaki ifade sağındaki ifadeden büyük veya eşit ise
>= Büyük Eşit koşul doğrudur. Eğer a>=2 ise

<> Eşit Değil İki ifadenin birbirine eşit olmadığında koşul sağlanır. Eğer a < > 3 ise
16
C# 2.4.2. Karşılaştırma Operatörleri

Örnek: Karşılaştırma operatörlerinin algoritma içerisinde kullanımı. Öğrencinin notuna göre


“GEÇTİNİZ” ya da “KALDINIZ” şeklinde ekrana mesaj yazan algoritmanın oluşturulması,
Açıklama: Öğrencinin aldığı not 50 in altındaysa öğrenci kalır üstünde ise geçer.
Bunun için girilen notun 50 ile karşılaştırma yapılması gerekir.
Dışarıdan alınacak not bilgisi bir değişkende tutulmalıdır.
Değişkenin adı not olarak belir­lenmiştir.

Algoritma:
1. Başla //Başla
2. Sayı Oku, not //Dışarıdan alınması gereken not bilgisi “not” değişkenine ak­
tarıldı.
3. Eğer not<50 ise Yaz, "KALDINIZ " //Şarta bağlı olarak “KALDINIZ” ifadesi ekrana yazdırıldı .
4. Eğer not>=50 ise Yaz, "GEÇTİNİZ " //Şarta bağlı olarak “KALDINIZ” ifadesi ekrana yazdırıldı.
5. Bitir //Bitir

 Dikkat edilecek olursa Yaz ifadesinden sonra ki KALDINIZ ve GEÇTİNİZ ifade­leri tırnak
içerisindedir. Çünkü bu ifadeler alfa sayısal (metin) ifadelerdir ve doğrudan ekrana
17 yazdırılacaklardır.
C# 2.4.2. Karşılaştırma Operatörleri

Çalışma sorusu: Aşağıdaki algoritmaların sonuçları nasıl olur?

18
C# 2.4.3. Mantıksal İşlem Operatörleri

› Karşılaştırma işlemleri bazı durumlarda birkaç koşul ile gerçekleştirilebilir. Bu gibi durumlarda
karşılaştırma işlemleri arasında mantıksal ifadelerden fay­dalanılır.

Mantıksal İşlem Açıklama Örnek Kullanımı


Mantıksal ifadenin doğru olabilmesi için tüm şartların doğru
VE a<10 ve b>20
olması gerekir.

VEYA Mantıksal ifadenin doğru olabilmesi için koşullardan birinin a<10 veya b>20
doğru olması yeterlidir.
Mantıksal ifadedeki koşulun sağlanmaması istendiğinde
DEĞİL değil (a=10)
kullanılır.

‘’VE’’Kullanımı:

Mantıksal ifade “ve” olduğu için koşulların ikisinin de doğru olması gere­kir. Koşullar doğru ise
ekrana “Koşul Doğru” yazılır.
19
C# 2.4.3. Mantıksal İşlem Operatörleri

‘’VEYA’’Kullanımı:

“veya” mantıksal ifadesi kullanıldığında koşullardan birinin doğru olması yeterlidir.


Öğrencinin başarı durumunu 2 farklı kritere göre belirlenmek istediğinde mantıksal ifadelerden
faydalanılır:

Örnek: Öğrencinin notuna ve devamsızlık bilgisine göre “GEÇTİNİZ” ya da “KALDINIZ”


şeklinde ekrana mesaj yazdıran algoritmanın oluşturulması:
Açıklama;
 Öğrencinin aldığı not 50 in altında veya devamsızlık 10 ve üzeri ise öğrenci kalır,
 Not 50 nin üstünde ve devamsızlıkta 10’dan küçük ise geçer.
 Başarı durumu ile ilgili bir karar verilmesi gerekir.
 Kararın verilebilmesi için not ve devamsızlık bilgilerine ihtiyaç duyulmaktadır. Bu bilgiler için
20 “not” ve “dev” değişkenlerini kullanılsın ve değerler dışardan alınsın.
C# 2.4.3. Mantıksal İşlem Operatörleri

Algoritma
1. Başla //Başla
2. Sayı Oku, not, dev //Not ve devamsızlık bilgileri sırasıyla “not” ve “dev” değişkenlerine alındı
3. Eğer (not<50) VEYA (dev>=10) ise Yaz, "KALDINIZ" //Şarta bağlı olarak “KALDINIZ’’ ekrana yazdırıldı
4. Eğer (not>=50) VE (dev<10) ise Yaz, "GEÇTİNİZ" //Şarta bağlı olarak “GEÇTİNİZ’’ ekrana yazdırıldı
5. Bitir //Bitir

 Öğrencinin dersten kalma durumu “not bilgisinin 50 den az olması” ya da “devamsızlık 10 ve üzeri
olması” koşuluna bağlıdır. Yani bu koşullardan sadece birinin doğru olması yeterlidir. Mantıksal
ifadelerden “veya” 3. Adım için uy­gundur.
 Öğrencinin dersi başarması ise “notun 50 ve üzeri olması” ve “devamsızlı­ğının 10 dan az olması”
koşullarına bağlıdır. Yani bu iki koşul birden gerçekleşmelidir. Dolayısıyla “Ve” ifadesi kullanılmalıdır.

21
C# 2.4.3. Mantıksal İşlem Operatörleri

Algoritmanın Çalıştırılması

› Algoritmada yer alan tüm koşullar tabloya aktarılmıştır.


› 3. Adımda “veya” operatörü ile bağlı olan koşullardan sadece birinin doğru olması ifadenin
doğru olması için yeterlidir. Tablodan 1., 2. ve 4. çalıştırmalar incelendi­ğinde görülecektir ki
koşullardan en az biri doğrudur ve ekran çıktısı “KALDINIZ” şeklindedir.
› 4. Adımda “ve” operatörü ile bağlı olan koşulların ikisinin de doğru olması ifadeyi doğru yapar.
Bu şartı sağlayan tablodaki 3. Satırdır.
22
C# 2.4.3. Mantıksal İşlem Operatörleri

Mantıksal Operatörlerde İşlem Önceliği


1. Parantez içleri,
2. "Değil”
3. "Ve"
4. "Veya"
Mantıksal ifadelerin incelenerek koşulun sağlanıp sağlanmadığının bulunması:
ÖRNEK: A=5, B=10;
Eğer (A<10)VE(B<=10) ise Yaz "DOĞRU"
ÇÖZÜM
Yukarıdaki değerlere göre koşul ifadesinde yer alan koşullar arasında “ve“ operatörü olduğu için tüm
koşulların doğru olması gerekir.
 Koşul olan A<10 ifadesi incelendiğinde bu koşulun doğru olduğu görü­lür. Yani A değişkeninin sahip
olduğu 5 değeri 10 dan küçüktür.
 Koşul olan B<=10 ifadesi incelendiğinde bu koşulun da doğru olduğu gö­rülür.
Mantıksal ifadede ki 2 koşulun da doğru olması “ve” operatörünün sonucu olarak ifadeyi doğru yapar.
23
C# 2.4.3. Mantıksal İşlem Operatörleri

ÖRNEK: A=10, B=5, C=20


Eğer ( (A< 10) VE (B<=10) ) VEYA (C >15) ise Yaz "DOĞRU"
ÇÖZÜM:
 1. İfade ((A<10) VE (B<=10)) 2. İfade (C >15)
 1. Koşul A< 10, 2. Koşul B <=10, 3. Koşul C >15
 1. ve 2. koşullar arasında “ve” operatörü kullanılmıştır. Dolayısıyla 1. ifa­denin doğru olması için iki
koşulunda doğru olması gereklidir.
 1. ifade ile 2. ifade arasında ise “veya” operatörü kullanılmıştır. Yani koşullardan sadece biri­nin doğru
olması mantıksal ifadenin doğru olması anlamına gelir.
 Duruma göre çözüm tabloda gösterilmiştir.

A B C 1.Koşul 2.Koşul 1. İfade 3. Koşul Mantıksal İfade Sonuç


A<10 B<=10 (A<10)VE(B<s10) C>15 ((A<10)VE(B<=10)) VEYA(C>15)
10 5 20 0 1 0 1 1 DOĞRU

24
C# 2.4.3. Mantıksal İşlem Operatörleri

› Çalışma sorusu: Aşağıdaki mantıksal ifadeleri inceleyerek koşulun sağlanıp sağlanmadığını


belirleyiniz.

25
C# 2.5. ALGORİTMA ÖRNEKLERİ

Örnek: Ohm Kanunu çözen algoritmanın oluşturulması,


Açıklama;
 Ohm Kanunu V=I*R olarak formüle edilmiştir.
 Akım (Amper) ve Direnç (Ohm) değerlerinin çarpılması ile Gerilim (Volt) hesap­lanır.
 İhtiyaç duyulan, dışarıdan alınması gereken değişkenler, Akım ve Direnç değerleridir.

Algoritma:

1. Başla //Başla
2. Sayı Oku, I //Akım değerini klavyeden oku. Değişken ismi I
3. Sayı Oku, R //Direnç değerini klavyeden oku. Değişken ismi R
4. V=I*R //Gerilim değerini hesaplayarak ilgili değişkene (V) aktar
5. Yaz, V //Ekrana yazdır
6. Bitir //Bitir

26
C# 2.5. ALGORİTMA ÖRNEKLERİ

Algoritmanın Çalıştırılması
Farklı akım ve direnç değerlerine göre algoritmanın çalıştırılması tabloda gösterilmiştir. Algoritma
3 kez çalıştırılmıştır.
Çalıştırma Okunan I Değeri Okunan R Değeri İşlem (l*R) V Değeri Ekran Çıktısı
1. Kez 5 3 5x3 15 15
2. Kez 2 4 2x4 8 8
3. Kez 1 5 7x5 35 35

› Örnek: Celcius olarak girilen sıcaklık bilgisinin Fahrenheit cinsinden hesaplanması,


› Açıklama;
 Sıcaklık birimleri arasında ki dönü­şümün matematiksel olarak ifade edilmesi gerekir.
 Celcius 0-100 arasında bir değerdir. Fahrenheit ise 32-212 arasında 180 parçaya ayrılmıştır. Bunun
matematiksel olarak ifadesi: F=(9/5)*C+32

27
C# 2.5. ALGORİTMA ÖRNEKLERİ

Algoritma
1. Başla //Başla
2. Sayı Oku, C //Celcius değerini oku
3. F=(9/5)*C+32 //Fahrenheit değerini hesapla
4. Yaz, F //Fahrenheit değerini ekrana yaz
5. Bitir //Bitir

Örnek: Üçgenin alanım bulan algoritmanın oluşturulması;

Açıklama;
 Üçgenin alanı matematiksel olarak; Taban*Yükseklik/2’dir.

Algoritma
1. Başla
2. Sayı Oku, taban, h
3. A =taban*h/2
4. Yaz, A
28 5. Bitir
C# 2.5. ALGORİTMA ÖRNEKLERİ

Örnek: Adı soyadı klavyeden alınan kişiye “Merhaba” mesajı veren algoritmanın oluşturulması,
Açıklama;
 Algoritma da kullanılan değişkenler metinsel olduğu için 3. Adımda “+” operatörü toplama
değil birleştirme işlemini gerçekleştirmektedir.
 Birleştirme işlemi için programlama dillerinde farklı operatörler kullanılabilir. C#
Programlama dilinde “+” operatörü metinsel ifadeler de birleştirme operatö­rü olarak kullanılır.
Algoritma

1. Başla
2. Metin Oku, adSoyad
3. Yaz, "Merhaba " + adSoyad
4. Bitir

29
C# 2.5. ALGORİTMA ÖRNEKLERİ
 Algoritma örneklerinde programlama mantığının anlaşılmasını kolaylaştır­mak için dışarıdan okunan tüm
değerlerin doğru girildiği kabul edilmiştir.

 Ör­neğin Ohm kanunun çözüldüğü örnekte akım ve direnç değerleri negatif olamaz. Bu gibi hatalı girişlerin
önlenmeleri gerekir.

 Buraya kadar çözülen örnek algoritmalar doğrusal olarak akmaktadır. Bun­dan sonraki örnekler de ise karar
alma yapıları kullanılacaktır.

 Karar alma yapı­lan karşılaştırma ve mantıksal operatörlerin kullanılmasını gerektirir.

 Hatalı girişler bundan sonraki algoritmalarda da dikkate alınmayacaktır.

 Burada öncelik farklı örnekler ile programlama mantığının oluşturulması­dır. Hatalı veri girişi gibi
30 istenmeyen durumlara karşı gerekli önlemler prog­ramlama konusunda gelişim gösterdikçe kolaylıkla
C# 2.5. ALGORİTMA ÖRNEKLERİ

Örnek: Klavyeden girilen 2 sayıdan büyük olanı bulup ekrana yazdı­ran algoritma,
Açıklama;
 İki sayıdan hangisinin büyük olduğunu bulabilmek için karşılaş­tırma operatörleri
kullanılmalıdır. (“>” , “<”) Karar yapıları “Eğer” ifadesinin kul­lanılmasını
gerektirir.
ÖNEMLİ: Karar yapılarında tüm olasılıkların düşünülmesi gerekir. Bu soruda oluşturulacak
algoritmada üç farklı olasılık dikkate alınmalıdır. Klavyeden girilecek 2 sayının birbirlerine göre
büyük olma durumları ve eşit olma durumu 3 farklı olasılığı ortaya çıkarmaktadır.
Algoritma
1. Başla
2. Sayı Oku, S1,S2
3. Eğer S1>S2 ise yaz "1. Sayı Büyüktür."
4. Eğer S1<S2 ise yaz "2. Sayı Büyüktür.”
5. Eğer S1=S2 ise yaz "Sayılar Eşittir."
6. Bitir

31
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Örnek: Klavyeden girilen sayının tek mi çift mi olduğunu bulan algo­ritmanın oluşturulması
› Açıklama;
 Bir sayının tek mi çift mi olduğuna matematiksel olarak ifade edilmesi gerekir.
Sayının tek ya da çift olma durumu 2 rakamına tam bölünüp bölünmediğine bağlıdır.
 Bu noktada hatırlanması gereken matematiksel operatör “mod” operatörüdür.
Algoritma
1. Başla
2. Sayı Oku, sayı
3. Eğer sayı mod 2=0 ise "Sayı Çifttir”
4. Eğer sayı mod 2=1 ise "Sayı Tektir”
5. Bitir

32
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Örnek: Klavyeden girilen 100 sayının toplamının bulunması;


› Açıklama;
 Sayı okuma ve toplama işleminin 100 kez tekrar edilmesi gerekmektedir. Bu tür
tekrar eden işlemler için döngüler kullanılır.
Algoritma

› İşlemin kaç kez tekrar edeceği sayaç yapısı kullanarak sağlanabilir. Sayaç değişkeni 100 den küçük
olduğu sürece klavyeden sayı almaya devam edilecek ve girilen sayı toplam değişkenine
eklenecektir, “toplam” değişkeninin başlangıç değeri “0” olarak belirlenmiştir.
33 › 100. Sayı girildiğinde sayaç değişkeni 100 olacak ve 5. Adımdaki koşul sağlanmadığından
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Örnek: Basit bir dört işlem yapan algoritmanın oluşturulması;


› Açıklama;
 Algoritmanın 4 işlemi de yapabilmesi için bir menü oluşturulmalıdır. Bu menüden yapılacak seçime
göre işlem gerçekleştirilerek sonuç ekrana yazdırılmalıdır.
› Algoritma
1. Başla
2. Yaz, "1. Toplama”
3. Yaz, "2. Çıkartma"
4. Yaz, "3. Çarpma”
5. Yaz, "4. Bölme"
6. Sayı Oku, İşlem
7. Sayı Oku, s1, s2
8. Eğer işlem=l ise sonuç = sl+s2
9. Eğer işlem=2 ise sonuç = sl-s2
10. Eğer işlem=3 ise sonuç = sl*s2
11. Eğer işlem=4 ise sonuç = sl/s2
34 12. Yaz, sonuç
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Örnek: Vize, Final notlarına göre bütünleme notunun istenmesi ve öğrencinin başarı
durumunun değerlendirilmesi (vize notunun % 30, Final No­tunun %70 i geçme notu ise 50);
› Açıklama;
 Öğrencinin vize ve final notlarına göre ortalamayı hesaplayalım. Öğrenci başarısız ise
bütünleme notunu isteyelim. Bütünleme notu 50 nin altın­daysa “Kaldınız” değilse “Geçtiniz”
ifadesini ekrana yazdıralım.
› Algoritma
1. Başla
2. Sayı Oku, vize, final
3. Ortalama = vize * 0,3 + final * 0,7
4. Eğer Ortalama>=50 ise Git 8. Adım
5. Sayı Oku, bütünleme
6. Eğer bütünleme>50 ise Git 8. Adım
7. Yaz, "Kaldınız" Git 9. Adım
8. Yaz "Geçtiniz"
35 9. Bitir
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Örnek: Klavyeden girilen 20 sayıdan kaçının negatif, kaçının pozitif olduğunu bulan algoritma;
› Açıklama;
 Klavyeden girilecek sayılar bir döngü yardımıyla alınabilir. Sa­yının negatif ya da pozitif olma
durumu “0” dan küçük ya da büyük olması du­rumuna bağlıdır. Negatif sayıları saymak için
negatifSay, pozitif sayılan say­mak için pozitifSay değişkenleri kullanılmıştır.
› Algoritma

36
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Örnek: Klavyeden “0” girilene kadar girilen sayıların toplamının bu­lunması,


› Açıklama;
 Bu örnekte kaç tane sayı girileceği belli değil. Bu soruda girilen sayı “0” sıfır olma­dığı sürece
klavyeden değer alınmaya devam edilecektir.
› Algoritma

37
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Örnek: Klavyeden girilen sayının asal olup olmadığının bulunması;


› Açıklama;
 Bir sayının asal olması o sayının sadece kendisine ve bire tam bölünmesi ve birden büyük bir
sayı olmasıdır. Sayının asal olup olmadığını bulabilmek için sayıyı kendisine kadar olan tüm
sayılara bölmek gerekir.
Örneğin; 7 sayısının asal olup olmadığının bulunması için bir tablo;
İşlem Kalan Açıklama
7/1 0 TAM BÖLÜNÜR
7/2 1 Tam bölünmez
7/3 1 Tam bölünmez
7/4 3 Tam bölünmez
7/5 2 Tam bölünmez
7/6 1 Tam bölünmez
7/7 0 TAM BÖLÜNÜR

› Tabloda görüldüğü üzere 7 sayısı sadece 1 e ve kendisine tam bölünüyor. Dolayısıyla asal bir
sayıdır.
38
C# 2.5. ALGORİTMA ÖRNEKLERİ

› Tüm sayılar kendisine ve bire tam bölünür. Asal sayıların başka tam bölen­leri yoktur.
Dolayısıyla algoritma kurulurken sayıyı 2 den başlayarak kendisinin bir eksiğine kadar tüm
sayılara bölmek gerekir. Eğer hiçbir sayıya tam bölün­mez ise sayı asaldır. Aksi halde sayı asal
değildir.
› Algoritma

› 4. adımdaki i değişkeni sayının bir eksiğine kadar birer birer artıyor. 5. adımda sayı i
değişkenine bölünüyor. Eğer bu bölünme tam bölünme ise sayının asal olmadığı tespit ediliyor.
Önemli Not: Algoritmaların yazıldıktan sonra adım adım kontrol edilmesi olası mantık
39 hatalarının tespit edilip düzeltilmesi bakımından önemlidir.

You might also like