1. * 5651 Sayılı Kanun'a göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur.
    * Telif hakkına konu olan eserlerin yasal olmayan şekilde paylaşıldığını ve yasal haklarının çiğnendiğini düşünen hak sahiplerinin İLETİŞİM bölümünden bize ulaşmaları durumunda ilgili şikayet incelenip gereği 1 (bir) hafta içinde gereği yapılacaktır.
    E-posta adresimiz

Probem Çözme ve Algoritma

Konusu 'C Dili İle Başlangıç' forumundadır ve merakettim tarafından 2 Ağustos 2007 başlatılmıştır.

  1. merakettim
    Ecinni

    merakettim Öpözel Üye :*

    Katılım:
    19 Temmuz 2006
    Mesajlar:
    1.931
    Beğenileri:
    323
    Ödül Puanları:
    2.230
    Meslek:
    Ne iş olursa yaparım abi
    Yer:
    leşim ANKARA:)
    Banka:
    1.432 ÇTL
    GiRiŞ

    Bilgisayar, verileri saklayan , bunlar üzerinde çok hızlı işlem yapan ve istenen verileri sunan bir aygıttır.
    Donanım (hardware) ve yazılım(software) diye iki bölüme ayrlır. Donanım bilgisayarın fiziksel bileşenleridir. Yazılım ise donanımı oluşturan bileşenlerin çalışmasını ve işlevlerini yerine getirmesini sağlayan programlardır.

    [​IMG]

    Girdi birimleri : Veri ve program girilmesini sağlar. Klavye, fare, kart okuyucu ...
    Çıktı birimleri : İstenen verilerin kullanıcıya sunulduğu ortam. Ekran, yazıcı...
    Ana Bellek : Programların ve işlenen verilerin geçici olarak saklandığı birim.
    Yan bellek : Bilgilerin (veri, program) kalıcı olarak saklandığı ortamlar. Disket, disk, manyetik şerit.

    Bilgisayar broşuründe olan kavramlar, bit, byte, ... RAM, ROM...

    - Bu günkü anlamda ilk bilgisayar ENIAC [Electronic Numeric integrator and computer]
    30 ton, kablolar ile programlama
    - 1842, Charles Babbag , analitik makine tasarlıyor. Programlanabilir bir cihaz Öncesi Hesap Makinesi. Ada Agusta programcısı.

    Bilgisayarlar :
    1. Kusak 39 - 58 Vakum tüp ile çalışıyor
    2. Kusak 58 - 64 Transistör
    3. Kusak 64 - 75 Entegre
    4. Kusak 75 - --- Yüksek ölçekli entegre


     Micro computer ( PC ) ( bu gün 50 - MIPS)
     Workstation
     Mini Computer
     Main Frame (50 lerde 50 IPS)
     Super Computer
    Bilgisayarın yapısı
     Bellek (...., birimi byte bit)
     CPU ( Bilgiyi işleyen kısım bellekten okur - yazar)
     Denetim Birimi ( Hangi işlem, ne zaman yapılacak, belirler (gerekli işaretleri üretir))
     Giriş/Çıkış
    : klavye (veya benzer)
    : ekran (veya benzer)
     İkincil ( yardımcı ) bellek (Kütük olarak saklı bilgiler.)
     Hardware - Software

    Bilgisayarlar kendisine sorulan sorulara hemen cevap veren, bir sürü problemi çözen bir aygıt değildir. Bilgisayarda yapılan her tür iş, ilk önce insan aklının süzgecinden geçiyor, insanlar tarafından etraflıca tasarlanıyor, planlanıp programlanıyor.

    ilk yapılan bilgisayarın karşına geçip hemen
    en eski soruyu sormuşlar "Tanrı var mı".
    Bilgisayar kısa bir düşünmeden sonra "Evet artık var".​

    Bu nedenle, önce bilgisayara problemin çözümü öğretilmelidir. Fakat bunun için bizim problemi çözmemiz gerekir. Ve daha sonra bir programlama dili ile bu çözüm bilgisayara aktarılmalıdır.

    1- Problem Çözme ve Algoritmalar
    1.1 Problem Çözme
    Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır. Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayırılmaladır.
    Descartes tarafından "Discourse on Method" isimli kitabında anlatılan problem çözme teknikleri;

    1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının.
    2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün.
    3. Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz.
    4. Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

    1.2 Algoritmalar
    Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.

    İ.S. 9.yy da İranlı Musaoğlu Horzumlu Mehmet
    (Alharezmi adını araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu.
    Algoritma Alharezmi'nin Latince okunuşu.​

    Her algoritma aşağıdaki kriterleri sağlamalıdır.
    1. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
    2. Çıktı: En azından bir değer üretilmeli.
    3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
    4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
    5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.
    Not: Bir program için 4. özellik geçerli değil. işletim sistemleri gibi program sonsuza dek çalışırlar .

    Örnek 1.2.1 : 1'den 100'e kadar olan sayıların toplamını veren algoritma.
    1. Toplam T, sayılar da i diye çağırılsın.
    2. Başlangıçta T'nin değeri 0 ve i'nin değeri 1 olsun.
    3. i'nin değerini T'ye ekle.
    4. i'nin değerini 1 arttır.
    5. Eğer i'nin değeri 100'den büyük değil ise 3. adıma git.
    6. T'nin değerini yaz.

    Algoritmaların yazım dili değişik olabilir. Günlük konuşma diline yakın bir dil olabileceği gibi simgelere dayalı da olabilir. Akış şeması eskiden beri kullanıla gelen bir yapıdır. Algoritmayı yazarken farklı anlamlar taşıyan değişik şekildeki kutulardan yararlanılır. Yine aynı amaç için kullanılan programlama diline yakın bir (sözde kod = pseudo code) dil , bu kendimize özgü de olabilir, kullanılabilir.

    Aynı algoritmayı aşağıdaki gibi yazabiliriz.
    1. T=0 ve i=0
    2. i'nin değerini T'ye ekle.
    3. i'yi 1 arttır.
    4. i<101 ise 2.adıma git.
    5. T'nin değerini yaz.

    Algoritmayı bir de akış şeması ile gerçekleyelim.

    [​IMG]
    Örnek 1.2.2 : ax2+bx+c=0 tipi bir denklemin köklerini veren algoritma.
    Girdi : a, b ve c katsayıları Çıktı : denklemin kökleri
    1. a, b ve c katsayılarını al.
    2. D = b2-4ac değerini hesapla.
    3. D<0 ise gerçel kök yok. 7. adıma git.
    4. [​IMG]
    5 . [​IMG]
    6. değerlerini yaz.
    7. Dur.
     
  2. merakettim
    Ecinni

    merakettim Öpözel Üye :*

    Katılım:
    19 Temmuz 2006
    Mesajlar:
    1.931
    Beğenileri:
    323
    Ödül Puanları:
    2.230
    Meslek:
    Ne iş olursa yaparım abi
    Yer:
    leşim ANKARA:)
    Banka:
    1.432 ÇTL
    Döngü Gösterimi
    Tekrarlanan adımlar
    n. Koşul sağlandığı sürece
    n.1 ...
    n.2 ... tekrarlanan adımlar
    n.3 ...

    Örnek 1.2.3 : İki tamsayının çarpma işlemini sadece toplama işlemi kullanarak gerçekleyin.
    Girdi : iki tamsayı
    Çıktı : sayıların çarpımı
    1. a ve b sayılarını oku
    2. c =0
    3. b>0 olduğu sürece tekrarla
    .3.1. c=c + a
    3.2. b = b-1
    4. c değerini yaz ve dur

    Örnek 1.2.4 : Bir tamsayının faktoriyelini hesaplayınız.
    Girdi : Bir tamsayı
    Çıktı : sayının faktoriyel
    İlgili formul: Faktoriyel(n)=1*2*...*n
    1. n değerini oku
    2. F=1
    3. n >1 olduğu sürece tekrarla
    .3.1. F=F*n
    3.2. n= n-1
    4. F değerini yaz

    Örnek 1.2.5 : İki tamsayının bölme işlemini sadece çıkarma işlemi kullanarak gerçekleyin. Bölüm ve kalanın ne olduğu bulunacak.
    1. a ve b değerlerini oku
    2. m=0
    3. a>=b olduğu sürece tekrarla
    3.1 a=a-b
    3.2 m = m + 1
    4. kalan a ve bölüm m 'yi yaz


    Örnek 1.2.6 : 100 tane sayıyı okuyup, ortalamasını bul
    1. T=0, i=0
    2. i<101 olduğu sürece tekrarla
    2.1 m değerini oku
    2.2 T = T + m
    2.3 i = i + 1
    3. T = T / 100
    4. Ortalama T ‘yi yaz
    5. Dur


    Örnek 1.2.7 : Bir sınava giren öğrencilerin not ortalamasının hesaplanması
    1. Tüm sınav kağıtlarını inceleyip notların toplamını hesapla
    2. Ortalamayı notların toplamını incelenen sınav kağıdına bölerek hesapla
    3. Ortalamayı yaz.

    1. Notların toplamını ve incelenen sınav kağıdı sayısını sıfır kabul et
    2. Sıradaki sınav kağıdının notunu notların toplamına ekle
    3. İncelenen sınav kağıdı sayısını Bir arttır
    4. İncelenecek sınav kağıdı var ise 2. Adıma git
    5. Ortalamayı notların toplamını incelenen sınav kağıdına bölerek hasapla
    6. Ortalamayı yaz

    1. Notların toplamını ve incelenen sınav kağıdı sayısını sıfır kabul et
    2. Her bir sınav kağıdı için
    2.1. Sıradaki sınav kağıdının notunu notların toplamına ekle
    2.2. İncelenen sınav kağıdı sayısını bir arttır
    3. Ortalamayı notların toplamını incelenen sınav kağıdına bölerek hesapla
    4. Ortalamayı yaz

    Koşul Gösterimi

    n. Koşul doğru ise
    n.D.1
    n.D.2 doğru olduğunda işlenen adımlar
    n.D.3
    aksi halde
    n.Y.1
    n.Y.2 yanlış olduğunda işlenen adımlar
    n.Y.3

    Kök bulma örneğinde 3. Adımı tekrar yazarsak
    3. D>=0 ise
    3.D.1 [​IMG]
    3.D.2 [​IMG]
    aksi halde
    3.Y.1 Reel kök yoktur

    Sorular:
    * Girilen üç sayıdan en büyüğünü bulan algoritmayı yazınız.
    * Tamsayılarda üs alma işlemini gerçekleştiren algoritmayı yazınız ( ab ).
    * 1-100 arasında tutulan bir sayıyı tahmin eden algoritmayı yazınız.

    Örnek 1.2.8 : Aracın otopark ücretinin hesaplanması. Araçların en fazla 24 saat kaldığını varsayın.
    0 - 2 saat--------150 bin
    2 - 8 saat--------300 bin
    8-24 saat---------500 bin​


    1. Aracın kaç saat kaldığını öğren ( t olsun ).
    2. t <= 2 ise
    2.D.1. ücret = 150 bin
    Aksi halde
    2.Y.1. t<=8 ise
    2.Y.1.D.1. ücret = 300 bin
    Aksi halde
    2.Y.1.Y.1. ücret = 500 bin

    3. ücreti yaz
    4. Dur

    Örnek 1.2.9: Sınavdaki en büyük notun bulan algoritma.

    1. En büyük = ilk sınav kağıdındaki not (ya da olabilecek en düşük değer kabul edilebilir).
    2. İncelenecek sınav kağıdı var ise
    2.1 Sınav kağıdındaki not > En büyük ise En büyük = Sınav kağıdındaki not

    3. En büyük değerini yaz.
    4. Dur


    Algoritmanın yazımı daha simgesel olabilir. Ni i. Öğrencinin notu olsun.

    1. EB = N1
    2. i = 2
    3. İncelenecek sınav kağıdı var ise
    3.1 Ni>EB => EB = Ni
    3.2 i = i + 1

    4. EB’ yi yaz.
    5. Dur


    Örnek 1.2.10 : Programın C dili ile yazılıp çalışır hale getirilmesi.


    1. Programı bilgisayara gir
    2. Kaynak dosya olarak kaydet
    3. Kaynak dosyayı derle ( compile)
    4. Derleme sonucunda hata var ise
    4.1 Hataları düzelt
    4.2 3. Adıma git
    5. Oluşan amaç dosyasına diğer dosyaları bağla (link)
    6. Bağlama sonucunda hata var ise
    6.1. Hataları düzelt
    6.2. Hatalar kaynak dosya ile ilgili ise 2. adıma aksi halde 5. adıma git
    7. Program çalıştırılmaya hazır


    Algoritmayı öğrenmeniz,C dilinde çok işinize yarayacak.Bu kaynakda (bence) gayet güzel bir şekilde anlatılmış.Bu nedenle öğrenmenizde fayda var.


    ALINTIDIR
    (Hüseyin PEKTAŞ



    Bu doküman KOÜ Elektronik ve Haberleşme Mühendisliği Bölümü’ndeki Bilgisayar ve Yazılım I-II derslerine ait notlarını içerir. Dökümanda büyük oranda anlatım eksikliği vardır. Nu nedenle tek başına bi kaynak olarak kullanılamaz. Ancak programlamayı öğrenmek isteyenlerin konu/deyimleri hangi sırada takip etmelerini söyler.
    Tüm hakları yazara aittir. Üzerinde değişiklik yapmamak ve alınan tüm kopyalarda bu sayfayı bulundurmak koşuluyla bu döküman izinsiz olarak kullanılabilir.



    Sürümler : Ekim 1996, Ekim 1998)
     
  3. skate

    skate Üyecik

    Katılım:
    5 Nisan 2009
    Mesajlar:
    2
    Beğenileri:
    0
    Ödül Puanları:
    20
    Banka:
    0 ÇTL
    BİR ALGORİTMA SORSAM YAPABİLCEK BİRİSİ VARMI ?

    Üç ögrencinin notları girilcek ve hangisinin en yüksek not aldıgı yazacaktır
     
  4. merakettim
    Ecinni

    merakettim Öpözel Üye :*

    Katılım:
    19 Temmuz 2006
    Mesajlar:
    1.931
    Beğenileri:
    323
    Ödül Puanları:
    2.230
    Meslek:
    Ne iş olursa yaparım abi
    Yer:
    leşim ANKARA:)
    Banka:
    1.432 ÇTL
    Sorularını ilgili bölüme yazmalısın.Orada yardımcı olabilirim sana.[Linkleri görebilmek için ÜYE olmalısınız!..]
     
  5. İLkİm*
    Avare

    İLkİm* MaviKuş ~ Özel üye

    Katılım:
    22 Kasım 2009
    Mesajlar:
    3.474
    Beğenileri:
    153
    Ödül Puanları:
    3.480
    Banka:
    136 ÇTL
    bizim hoca notların bir kısmını buradan aldı heralde :D :D aynıları :D
     
  6. merakettim
    Ecinni

    merakettim Öpözel Üye :*

    Katılım:
    19 Temmuz 2006
    Mesajlar:
    1.931
    Beğenileri:
    323
    Ödül Puanları:
    2.230
    Meslek:
    Ne iş olursa yaparım abi
    Yer:
    leşim ANKARA:)
    Banka:
    1.432 ÇTL
    En azından işe yarar bişeyler almışlar. Bizim hocalar işe yara bişey vermiyolardı pek. Gine de Veri Yapıları dersimizin öğretim görevlisi Nevzat TAŞBAŞI hocamızın hakkını yememek gerek. Sorularımızla pek ilgilenmese bile :)
     

Sayfayı Paylaş