Ana içeriğe atla

Algoritma 2

Merhabalar arkadaşlar. Biraz geçiktik ama Algoritma 2. dersi ile yine beraberiz. Öncelikle geçen derste verdiğimiz soruların çözümlerini vererek başlayalım. Sonra sırası ile İlişkisel operatörler, Mantıksal Operatörler en sonda döngüleri anlatıp bugünlük dersimizi bitirmiş olacağız.


Geçen dersteki soruların çözümleri:



1. Klavyeden girilecek bir yılın kaç gün sürdüğünü ekrana yazan programın algoritmasını yazınız.



ÇÖZÜM



1. Başla

2. Oku x
3. Toplam=x*365
4. Yaz Toplam
5. Bitir


2. Kullanıcının girdiği iki sayının karelerinin toplamını görüntüleyen algoritmayı yazınız.



Çözüm



1. Oku x,y

2. Toplam=0
3. Toplam=(x*x)+(y*y)
4. Yaz Toplam
5. Bitir


3. İki tamsayının çarpma işlemini sadece toplama işlemi kullanarak sonucu bulduran algoritmayı yazınız.

Çözüm
1. Oku a,b
2. c=0
3. b>0 olduğu sürece tekrarla.
4. C=c+a
5. b=b-1
6. Yaz c
7. Dur


Aslında son sorumuzla beraber algoritmada döngülere ve karşılaştırma ifadelerine girmiş olduk. Geçen dersimizde aritmetiksel notasyonlardan bahsetmiştik. Bu dersimizdede ilk olarak ilişkisel ve mantıksal notasyonlardan bahsedelim.


İLİŞKİSEL OPERATÖRLER

İlişkisel notasyonlar(operatörler) algoritma yazarken daha çok karşılaştırma yaparken karşımıza çıkacak. Bunlar neler;



> Büyük



>= Büyük eşit



< Küçük



<= Küçük eşit



<> Farklı



== Eşit



Soru içinde kullanımlarıyla beraber daha iyi anlaşılacaktır.




MANTIKSAL OPERATÖRLER

Mantısal notasyonlarımızda



1. VE (AND)

2. VEYA (OR)
3. DEĞİL (NOT)


Olmak üzere 3 tanedir.



Doğruluk tabloloları matematikteki mantık konusunda gördüğümüz ile aynıdır.


KARŞILAŞTIRMA ÖRNEKLERİ

1. Klavyeden girilen bir sayının pozitif, negatif, veya sıfıra eşit olma durumunu hesaplayıp yazdıran programın algoritmasını yazınız.



Çözüm

1. Başla
2. Oku x
3. Eğer (x>0) ise yaz “pozitif”
4. Eğer (x<0) ise yaz “negatif”
5. Eğer (x==0) ise yaz “sıfır”
6. Bitir


AÇIKLAMA



Şimdi gelin algoritmaya birde yakından bakalım ve Eğer ifadesinin çalışma mantığını görelim.



Program ilk olarak kullanıcıdan bir sayı girmesini istedi. Daha sonra program girilen bu sayının pozitif mi negatif mi yoksa sıfır mı olduğunu kontrol etmek için eğer ifadesini kullanmaya başladı. C# programlamada ve pek çok programlama dilinde if ifadesinin kullanımından bahsediyoruz.



Algoritmalar ve yazılan programlar yukarıdan aşağıya tüm adımları tek tek yaparlar.

Ama eğer ifadesinde şöyle bir şey vardır. Program eğer ifadesine geldiğinde o ifadedeki şarta bakar eğer şart doğruysa Eğer e bağlı ifadeyi gerçekler ve daha sonra diğer eğerle başlayan adımları atlar ve programı bitirir. Eğerli ifadenin şartı yanlışsa bir alttaki adıma geçer ve o şartı kontrol eder ve doğruysa buna bağlı ifadeyi gerçekler. Daha sonra diğer adımaları atlar ve programı bitirir.


Eğer ifadesinin çalışma mantığı bu şekildedir.



2. Klavyeden girilecek iki sayıdan büyük olanını bulup ekranda yazdıracak olan programın algoritmasını yazınız.



Çözüm



1. Başla

2. Oku x ve y
3. Eğer (x>y) ise Yaz “büyük” x
4. Değilse Yaz “büyük” y
5. Bitir


Eğer ifadesine farklı bir soru tipiyle bakacak olursak.



Örnek: Dışarıdan bir x sayısının girildiğini düşünelim.



Eğer (x<30) ise

Eğer ( x<20)
Eğer ( x>15) YAZ “A”
Değilse YAZ “B”
Değilse YAZ “C”
Değilse YAZ “D”





AÇIKLAMA


Öncelikle hangi değilse hangi eğere ait bunu kavramaya çalışalım. Basitçe söyleyecek olursak en dıştaki değilse en baştaki Eğer’e aittir. 2. değilse 2. Eğer ifadesine en içteki değilsede 3. Eğer ifadesine aittir.




Şöyle x e bir değer vererek sonucun ne çıktığını hep beraber görelim. Mesela x 16 değerini alırsa sonuç ne olur.




İlk eğer ifadesi şarta bakar 16<30 mu evet bu ifade doğrudur. Algoritma buna bağlı olarak bir alt satıra geçer.16<20 mi evet bu ifadede doğrudur algoritma yine bir alt satıra geçer. Peki 16>15 mi evet bu ifadede doğrudur ve program buna bağlı olan yaz “A” ifadesini gerçekleyecektir.




X e birde 40 değerine verelim.




Program 40<30 mu diye sorduğunda bu ifadenin yanlış olduğunu görecek ve ilk Eğer e bağlı değilse nin ifadesini gerçekleyecektir. Yani yaz “D” ifadesi sonuç olarak çıkacaktır.




Sizlerde x=13 değeri için sonucun ne çıkacağına bakabilirsiniz.

DÖNGÜLER(LOOPS)

Biz program yada algoritma yazarken eğer bir adımın birden fazla tekrarlanmasını istiyorsak döngüleri kullanırız. Peki döngü mantığı nedir ve nasıl çalışır.




Döngüler genellikle bizim belirleyeceğimiz bir sayaçla istediğimiz şart sağlandığı sürece bu sayaca bağlı işlemlerin birkaç kez tekrarlanması esasına dayanır.




Kısaca şöyle denebilir. Bir koşul sağlandığı sürece, bir grup işlemin tekrarlanmasıdır.




SORULAR




1. 1 den 5 e kadar olan sayıları sırayla ekranda yazdıran algoritmayı yazınız.


Çözüm

1. Başla
2. x=1
3. Yaz x
4. x=x+1
5. Eğer(x<6) GİT 3
6. Bitir

AÇIKLAMA

Algoritmada ilk olarak x başlangıç değerini atadık. Bu x başlangıç değeri aynı zamanda bizim algoritma içinde döngümüzü sağlayacak olan şartını koşacağımız sayacımız oldu. Daha sonra döngü her bir kere dönüşünde sayacımızı 1 artırdık. Ve bunu x<6 şartı sağlandığı sürece tekrarladık. x 6 ve 6 dan büyük olduğu andan itibaren algoritma döngü şartı sağlanmadığı için duracaktır. Ekranda şu şekilde bir çıktı alacağız.

1 2 3 4 5

Şeklinde yazacaktır.



3. n! İşlemini yapan programın algoritmasını yazınız.

Çözüm

1. Başla
2. Oku n
3. say=1, fakt=1
4. Eğer (n==0 veya n==1) ise fakt=1 GİT 8
5. fakt=fakt*say
6. say=say+1
7. Eğer (say<=n) GİT 5
8. Yaz fakt
9. Bitir

SINIRI BELLİ OLMAYAN DÖNGÜLER

Döngünün kaç kez döneceği belli değildir.döngünün devam şartı döngü içerisinde döngü şartını değiştirecek bir duruma bağlıdır yada döngünün devam edilip edilmeyeceği sorusuna bağlıdır.


Bu konuyu anlamak için şu soruyu çözebilirsiniz.

Soru :Klavyeden Hayır (H) cevabı girilene kadar , klavyeden girilecek sayıların toplamını bulup ekrandan yazdıran programın algoritmasını yazınız.


İÇ İÇE DÖNGÜLER

Bir takım ifadeyi gerçekleştirmek için çoğu zaman ard arda döngü ifadeleri kullanmamız gerekebilir. İşte bu şekilde oluşturacağımız döngüler iç içe döngüler olacaktır.


1. İçteki döngü dıştaki döngünün bir komut satırı gibidir.



2. Birbirini hiçbir şekilde kesmezler. 


AKIŞ DİYAGRAMLARI

Bizler algoritma yazarken günlük konuşma dilimizi kullanıyorduk. Bu şekilde yazdığımız bir algoritmayla dünyanın en büyük sorununu çözüm bulmuş olabiliriz. Ama bizim dilimiz anlamayan bir kişi için bu algoritma hiçbir şey ifade etmeyecektir. Oysaki bir algoritma evrensel olmalı dünyanın herhangi bir yerinde bu algoritmaya bakan herkes aynı şeyi anlamalıdır. İşte bunun sağlanması için algoritmayı herkes için aynı şeyleri ifade eden sembollerle yazabilmemiz gerekmektedir. İşte bu şekilde sembollerle oluşturacağımız çözümede akış diyagramı (flow chart) adını vereceğiz.



Bir sonraki dersimizde akış diyagramlarından bahsedip algoritma konusuna nokta koymuş olacağız. Sağlıcakla kalın iyi çalışmalar.


Yorumlar

Bu blogdaki popüler yayınlar

Matlab Programlama Soru Çözümü

26 Matlab Soru Çözümleri 26
25 Matlab Soru Çözümleri 25
24 Matlab Soru Çözümleri 24
23 Matlab Soru Çözümleri 23

Matlab Programlama 18 Matlab de Rand Fonksiyonu Kullanımı

Merhabalar herkese. Yeni ve belkide programlamada kullanım alanları ve yaptırabildiği uygulamalar dolayısıyla programlamanın önemli konularından olan rastgele sayı üretmeye yardımcı olan  rand fonksiyonundan bahsetmeye çalışacağım bu yazımda sizlere.
Bismillah diyelim ve başlayalım.
Her programlama dilinde olduğu gibi Matlabde de rastgele sayı üretmeye sağlayan bir fonksiyonumuz bir metodumuz mevcuttur.
Temel kullanımı rand(n,m) şeklindedir. Bu ifade şunu yapar n satırlı ve m sütunlu bir matrisi 0 ile 1 arasında rastgele gelen ondalık sayılar ile doldurur.

Matlab Programlama Konu Anlatımı

18 Matlab Programlama 18 Matlab de Rand Fonksiyonu KullanımıMerhabalar herkese. Yeni ve belkide programlamada kullanım alanları ve yaptırabildiği uygulamalar dolayısıyla programlamanın önemli konularından olan rastgele sayı üretmeye yardımcı olan rand fonksiyonundan bahsetmeye çalışacağım bu yazımda sizlere.Bismillah diyelim ve başlayalım.Her programlama dilinde olduğu gibi Matlabde de rastgele sayı üretmeye sağlayan bir fonksiyonumuz bir metodumuz mevcuttur.Devamını Gör-->
17 Matlab Programlama 17 Matlab de Kullanıma Hazır Fonksiyonlar Ve İşlevleriMerhabalar herkese. Matlab derslerimizin 13. sü ile yolumuza devam ediyoruz. Bu dersimizde sizlere Matlab'in pek çok hazır fonksiyonundan ve işlevlerinden bahsetmeye çalışacağım.O zaman Bismillah diyelim ve yolumuza koyulalım.1 SAYI YUVARLAMA FONKSİYONLARIMatlab de ondalık sayılar üzerinde işlem yapabilmek için bize kolaylık sağlayan 4 tane fonksiyon vardır. Bu fonksiyonlar fix, round, ceil ve floor'dur.Devamını Gör-->
16 Matla…