DUYURU

DUYURU

1 Mart 2013 Cuma

Algoritma 1

ALGORİTMAYA GİRİŞ


Bunun öncesinde anlatılabilecek bir sürü şey var, ama ben o bölümleri atlayıp direk algoritma ile işe başlamak istiyorum.



Algoritma Niye Önemli:



Algoritma nedir den önce algoritma niye önemli bence önce buna bakalım. Bir programcının en önemli ilkelerinden biri bir probleme hemen girişmek yerine o probleme dikkatli ve sistematik bir şekilde yaklaşmak olmalıdır. Programcı problemi iyice anlamalı ve olabildiğince küçük parçalara ayırmalıdır. İşte programcının bunu yaptığı evre program yazmanın algoritma evresidir.



Yani algoritma programlamanın temel yapı taşıdır. İşin algoritma kısmını halleden arkadaşlar programlama kısmında çok zorlanmayacaklardır.



Bilgisayar programları aslında sıralı bir şekilde tanımlanmış düzenli birkaç komuttan başka bir şey değildir. Yani biz işin algoritma kısmında bunu yapacağız.



Algoritma nedir?



Algoritma belirli bir sorunu çözmek için gerekli olan sıralı, mantıksal adımların tümüdür.

Algoritmalar doğal dille yazılabileceği için fazla formal değildir.


Bir algoritma için aşağıdaki ifadeler mutlaka doğrulanmalıdır.



1.Yazılan her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı olmamalıdır.

2. Belirli bir adım sonunda algoritma sonlanmalıdır.
3. Ve son olarak algoritmalar karşılaşılabilecek tüm ihtimalleri içine alacak kadar kapsamlı olmalıdır.


Bir algoritma yukarıdan aşağıya doğru yazılmış tüm adımları sırayla yapar. Bu bize aslında çok yabancı bir şey değil. Bizler zaten günlük hayatta yaşantımızı bir dizi algoritmaya göre yaşıyoruz ama bunun pek farkında değiliz. Şöyle küçük bir örnek verecek olursak. Okula gitmek için hazırlanan bir öğrenciyi düşünelim.



1.Okula gitmek için kalk.

2.Kahvaltını yap.
3.Kıyafetlerini giy.
4.Özel yaptığın bir şey varsa onu yap (saç, boya gibi :D).
5.Evden çık.
6.Okula doğru yürü.
7.Sınıfa gir.
8.Arkadaşlarına günaydın de.
9.Otur.
10.Dersi dinle.


İşte aslında biz her işimizi bir algoritmik sisteme göre yapıyoruz. Çok yabancı değiliz yani bu ifadeye.

Tabi yazdığım algoritma tamamen algoritma kurallarını sağlamasada olayın gözümüzde canlanması için yazdığım küçük bir örnekti.
İşte bundan sonra belirlediğimiz bir problem için çözüm aşamalarını bu şekilde adım adım yazmaya çalışacağız.


HATIRLATMA:


Şimdi küçük birkaç algoritma yazmaya başlamadan önce daha sonra daha detaylı anlatacağım aritmetiksel ifadelere kısaca değinmek istiyorum.



Matematikte kullandığımız aritmetiksel ifadeler bilgisayar dilinde bilgisayar için bazen aynı şeyi ifade etmiyor. Küçük birkaç değişiklik var.



Mesela matematikte bir işlemin eşitliği için kullandığımız “=” işareti programlamada atama operatörü olarak kullanılır.



1.Atama operatörü “=”:



X=2 dediğimde x in 2 ye eşit olduğunu değil x e 2 değerini atadığımızı ifade eder.

Küçük bir örnek
x=2
x=x+2


Bu işleme matematiksel olarak bakarsak yanlış bir ifade olduğunu düşünebiliriz. Ama programlamada doğrudur çünkü verilen ifade bir eşitlik ifadesi değil bir atama ifadesidir.

X e önce 2 atanmış daha sonraki adımda x e yine bir atama yapılmış ve x i x+2 değeri atanmış. Ve bu adımdan sonra artık x içinde x+2 değerini tutacaktır. Yani x=4 olmuştur artık bu adımdan sonra.


2.Eşitlik operatörü “==”:



Eşitlik ifadesini söyleyebilmek için ise “==” operatörünü kullanırız.



3.toplama çıkarma bölme ve çarpma operatörleri aynıdır.



4.üs alma ifadesi “^”:



a^2+b^2=c^2 bu ifadeyi algoritma yazarken şöyle ifade edeceğiz

a^2 + b^2=c^2


5.Karekök alma ifadesi “^1/2”



x=2*√((a)*b) ifadesini ise;

X=2*((a*b)^1/2) şeklinde yazacağız.


6.Kalan bulma “%”:



Bir işlemin sonucundan kalanı bulmak isityorsak “%” operatörünü kullanırız.

X=10%6 ifadesi bize sonuç olarak 10 nun 6 ya bölümünden kalan olan 4 sayısını verecektir.


7.Matematiksel işlemlerin öncelik sırası



A)Önce parantez içleri yapılır. (())

B)Varsa üs alma işlemi yapılır. x^2
C)Çarpma ve bölme işlemlerinin toplama ve çıkarma işlemleri üzerinde önceliği vardır.
D)Toplama ve çıkarmanın, çarpma ve bölmenin kendi içlerinde önceliği yoktur.
Hangisi solda ise öncelik onundur. Çünkü program çalışmaya başladığında, işlemleri soldan başlayıp sağa doğru yapmaya başlar.
a*b/d ifadesinde önce çarpma yapılır sonra bölme yapılır.


ÇALIŞMA SORULARI



1. y=6x+3x^2+6



2.y=√(b^2-4ac )+□(d/e)



Bu ifadeleri programlama olarak yazınız.



3. 9-(4/((2*6/(4⁄2))/6) bu işlemin sonucu kaçtır?



Bundan sonra konu anlatımına soru çözümleri içinde devam edeceğim.



ALGORİTMA SORULARI



Soru 1: Klavyeden kullanıcı tarafından girilecek iki sayının toplamını veren algoritmayı yazınız.



Çözüm


  1. Başla
  2. A sayısını oku
  3. B sayısını oku
  4. Sonuç=A+B
  5. Yaz Sonuç
  6. Bitir



NOT: Bir algoritma başla şeklinde bir başlangıç ibaresi ile başlayıp Son, Bitir, Dur şeklindeki ifadelerle de biter.



Soru 2. Klavyeden girilen iki sayıdan büyük olandan küçük olanı çıkaran programın algoritmasını yazınız.



Çözüm


  1. Başla
  2. A sayısını oku
  3. B sayısını oku
  4. Eğer A>B ise
  5. Sonuç=A-B değilse Sonuç=B-A
  6. Yaz Sonuç
  7. Dur



Soru 3. En az üç basamaklı bir tamsayının yüzler basamağındaki rakamı bulup ekranda yazdıran programın algoritmasını yazınız.



Çözüm


  1. Başla
  2. X sayısını oku
  3. X=X/100
  4. X=X%10
  5. Yaz X
  6. Bitir



Soru4. Klavyeden girilen bir sayının pozitif negatif veya sıfıra eşit olup olmadığını yazan programın algoritmasını yazınız.



Çözüm


  1. Başla
  2. Oku x
  3. Eğer (x>0) YAZ “Pozitif”
  4. Eğer (x<0 data-blogger-escaped-br="" data-blogger-escaped-egatif="" data-blogger-escaped-yaz=""> Eğer (x==0) YAZ “Sıfır”
  5. Bitir




Çalışma soruları:

  1. Klavyeden girilecek bir yılın kaç gün sürdüğünü ekrana yazan programın algoritmasını yazınız.
  2. Kullanıcının girdiği iki sayının karelerinin toplamını görüntüleyen algoritmayı yazınız.
  3. İki tamsayının çarpma işlemini sadece toplama işlemi kullanarak sonucu bulduran algoritmayı yazınız.






NOT: Soruların çözümleri bir sonraki ders yapılacaktır.




Her programcının kendine has bir problem çözme tekniği vardır ve her sorunun birden fazla çözüm yolu vardır. Bu soruların algoritmalarını farklı şekillerde de yazmak mümkündür.



Çalışan arkadaşlara kolay gelsin.

KONUNUN YAZARI NCFKR
DİĞER KONU ANLATIMLARI İÇİN TIKLA VE ÖĞREN

Hiç yorum yok:

Yorum Gönder