Algoritma ve Akış Diyagramı Örnekleri ( Mantıksal Akış Diyagramları)

image74Mantıksal akış diyagramları herhangi bir duruma göre algoritmanın akış yönünün değiştiği durumlarda tasarlanır. Bu yön değişimi için belirli karar durumları ile sorgulamalar yapılır. Örneklerimizle konuyu anlatmaya çalışalım.

Örnek 1: Girilen 2 sayıdan büyük olanı ekrana yazdıran programın algoritmasını ve akış diyagramını tasarlayınız.

Şimdi bu örnekte doğrusal akış diyagramlarından farklı olarak bir karar verme söz konusu. girilen ilk sayı x olsun ikinciside y olsun. x sayısımı y den büyük yoksa y sayısı mı x den büyük yoksa iki sayı birbirine eşitmi. Bu durumda bir karar verme ve bu karar sonucunda büyük olan sayının ekrana yazdırılması söz konusudur.

Değişkenler
Birinci sayı: x
İkinci sayı: y

Algoritma
Adım 1: Başla
Adım 2:Birinci sayıyı gir.(x)
Adım 3:İkinci sayıyı gir.(y)
Adım 4:Eğer x>y ise ekrana 1. sayı büyüktür yaz.
Adım 5:Eğer y>x ise ekrana 2. sayı büyüktür yaz.
Adım 6:Ekrana sayılar birbirine eşittir yaz.
Adım 7:Bitir

Akış Diyagramı

algo6

Örnek 2: Girilen bir sayının tek mi çift mi olduğunu tespit eden programın algoritmasını ve akış diyagramını tasarlayınız.

Şimdi böyle bir soruda bir  sayının 2 ye bölündüğü zaman 0 kalanını verirse sayı çift 1 kalanını verirse sayı tek olduğu bilgisini hatırlatmamız lazım. Yani burda yine bir karar verme söz konusudur. Mesala

5 sayısı tek mi çift mi ?               5    i 2 ye bölersek kalan 1            Tek
18 sayısı tek mi çift mi ?             18 i 2 ye bölersek kalan 0           Çift

Bir sayının bölümden kalanını bulan matematiksel bir fonksiyon mevcuttur. Birçok programlama dilinde de bu fonksiyon tanımlanmıştır. Mod fonksiyonu denilen bu fonksiyonun kullanılışı:

6 mod 2        anlamı  6 nın 2 ye bölümünden kalan sonuç değeri sıfır.
7 mod 2        anlamı   7 nin 2 ye bölümünden kalan sonuç değeri birdir.

Değişken
Girilen sayı : x

Algoritma
Adım 1:Başla
Adım 2:Herhangi bir sayı giriniz.(x)
Adım 3:Eğer x mod 2 =0 ise ekrana çift yaz değilse tek yaz.
Adım 4:Bitir

algo8

Örnek 3: Girilen sıcaklık değerine göre bir suyun katı, sıvı ve gaz olma durumunu gösteren programın algoritmasını ve akış şemasını tasarlayınız.

Şimdi soruyu çözmeden önce kimya konularını biraz hatırlayalım. Su sıfır derecenin altında katı, 0-100 derece arasında ise sıvı, 100 dereceden fazla ise gaz halinde bulunur. Dolayısı ile bu soruda kullanıcı su sıcaklığını girdikten sonra belirli karşılaştırmalar yaparak karar vermemiz lazım.

Değişkenler
Sıcaklık değeri: t

Algoritma
Adım 1:Başla
Adım 2:Sıcaklık değerini giriniz.(t)
Adım 3: Eğer t<0 ise Ekrana katı yaz.
Adım 4: Eğer t>0 ve t<100 ise ekrana sıvı yaz değilse gaz yaz.
Adım 5: Bitir.

Akış Diyagramı
algo9

Yukarıdaki akış diyagramından da anlaşılacağı gibi t değeri giriliyor. önce 0 dan küçük mü ona bakıyoruz. eğer küçükse ekran katı yazıyor ve programı bitiyor değilse diğer karar verme durumu oluşuyor. bu sefer 0 ile 100 arasında olup olmadığı sorgulanıyor. evet ise ekrana sıvı yazıyor değil ise girilen değer 100 ve 100 den büyük değere sahip olduğu için direkt olarak ekrana gaz yazılıyor ve program sonlandırılıyor.

Örnek 4: Bir dersten 3 sınav notu alan bir  öğrencinin :
a- ortalamasını
b-5 li sistemdeki not karşılığını
c-harfli sistemdeki not karşılığını
yazdıran programın algoritmasını ve akış diyagramını tasarlayınız.

Şimdi bu programı çözmeden önce matematiksel işlemler ve not verme sisteminden bahsedelim.

Öncelikle alınan üç not sırasıyla x,y,z olsun ortalaması (x+y+z)/3 değerinden çıkar.
5 li sistemde verilen notlar:
100-85 dahil aralığı not 5 olur. Harfli sistemde A olur.
84-70   dahil aralığı not 4 olur. Harfli sistemde B olur.
69-55   dahil aralığı not 3 olur. Harfli sistemde C olur.
54-45   dahil aralığı not 2 olur. Harfli sistemde D olur.
44-25   dahil aralığı not 1 olur. Harfli sistemde E olur.
24-0     dahil aralığı not 0 olur. Harfli sistemde F olur.

Değişkenler
girilen not değerleri:  a,b,c
derslerin ortalaması: ort
0-5 arasındaki rakamsal notu: r
A-F aralığındaki harfsel notu: h

Algoritma
Adım 1: Başla
Adım 2: Ders notlarını al.(a,b,c)
Adım 3: ortalama değerini hesapla ort=(a+b+c)/3
Adım 4: eğer ort>84  r=5 h=a adım10 a git.
Adım 5:eğer ort>69 r=4 h=b adım 10 a git.
Adım 6:eğer ort>54 r=3 h=c adım 10 a git.
Adım 7:eğer ort>44 r=2 h=d adım 10 a git.
Adım 8:eğer ort>24 r=1 h=e adım 10 a git.
Adım 9:r=0 h=f
Adım 10: r ve h değerlerini ekrana yaz.
Adım 11: Bitir.

Şimdi adımları incelersek ort değeri bulunduktan sonra eğer ifadeleri ile bulunan ort değeri teker teker sınanıyor ve h ve r değişkenleri değerlerini alıyorlar. Adım 10 da ise bulunan değerler ekrana yazılıp program sonlandırılıyor.

Akış Diyagramı

algo101
Bir hatırlatma yapmak gerekirse bir sorunun çözümünde farklı algoritmalar oluşabilir. Yani bir sorunun farklı şekillerde çözümlemesi yapılabilir. Örneğin bu soruda tersten de gidilebilirdi. Yani alınan not 5 den 0 a değilde 0 dan 5 mi şeklinde sorgulanabilirdi.

Örnek 5: Bir fabrikada sabit maaşla çalışan işçiler aile durumlarına ve ürettikleri parça sayısına görede ek maaş almaktadır. Aşağıda verilen yönergelere göre işçilerin maaşlarını hesaplayan programın algoritmasını ve akış diyagramını tasarlayınız.

Çocuk sayısı1 ise maaşın %5 i
Çocuk sayısı 2 ise maaşın %10 u
Çocuk sayısı 3 ve 3 den fazla ise maaşın %15 i kadar aile yardımı.

Üretilen parça sayısı 50-100 arasında ise maaşın %10 u
Üretilen parça sayısı 100-150 arasında ise maaşın %15 i
Üretilen parça sayısı 150-200 arasında ise maaşın %20 si

Değişkenler
İşçinin sabit maaşı:m
Çocuk sayısı:c
Ürettiği parça sayısı:p
Çocuk yardımı:  cy
Parça yardımı: py
Ödenecek toplam maaş: t

Algoritma
Adım 1: Başla
Adım 2: Sabit maaş, Çocuk sayısı,Üretilen Parça sayısını gir.(s,c,p)
Adım 3: Eğer c=1 ise cy=m*0.05
Adım 4: Eğer c=2 ise cy=m*0.1
Adım 5: Eğer c>2 ise cy=m*0.15
Adım 6: Eğer (p>=50 ve p<100)  ise py=m*0.1
Adım 7: Eğer (p>=100 ve p<150)  ise py=m*0.15
Adım 8: Eğer(p>=150) ise py=m*0.2
Adım 9: t=m+cy+py
Adım 10: t değerini ekrana yaz.
Adım 11: Bitir

Akış Diyagramı

algo11

Örnek 6: Klavyeden 3 adet kenar uzunluğu giriliyor. Girilen kenar uzunlukları ile :

a-Üçgenin çizilip çizilemiyeceğini
b-Eğer üçgen çizilirse Üçgenin çeşidini(ikizkenar, çeşitkenar, eşkenar)
c- çizilen üçgenin alan ve çevresini bulup ekrana yazan programın algoritmasını ve akış diyagramını tasarlayınız.

Şimdi bu soruyu çözmeden önce biraz geometrik işlemlerden bahsedelim :

Birincisi üçgenin üçgen olabilmesi için bir kenarı diğer iki kenarının toplamından küçük ve yine diğer iki kenarın farkından büyük olmak zorundadır. Bu özellik tüm kenarlar için doğru olursa belirtilen ölçülerde bir üçgen çizilebilir demektir.

Üçgen tiplerinde eşkenar üçgen tüm kenarları eşittir, ikizkenar üçgen de herhangi iki kenar birbirine eşittir, çeşitkenar üçgende ise tüm kenar uzunlukları birbirinden farklıdır.

Üçgenin çevresi tüm kenar uzunlukları toplamına eşittir. Alan formüllerinden biri ise Alan=U*((U-a)*(U-b)*(U-c))^1/2 U burada çevrenin yarısı kadardır. Yani yarı çevrede denilebilir. Bu bilgilerin ışığında algoritmamız aşağıdaki şekilde düzenlenmiştir.

Algoritma
Adım 1 :  Başla
Adım 2:  Üç kenar uzunluğunu giriniz.(a,b,c)
Adım 3:  Eğer( (a+b>c) ve (a-b<c))  veya ( (a+c>b) ve (a-c<b)) veya ((b+c>a) ve (b-c<a))değilse ekrana “Bir üçgen çizilemez.” yaz ve Adım 10 a git.
Adım 4:  Eğer ((a=b) ve (b=c) ve (a=c))  ise ekrana “Eşkenar üçgen” yaz.
Adım 5:  Eğer ((a<>b) ve (a<>c)  ve (b<>c)) ise ekrana “Çeşitkenar üçgen” yaz.
Adım 6:  Eğer ((a=b) ve (b<>c)) veya ((a=c) ve (c<>b)) veya ((b=c) ve (c<>a)) ise ekrana “İkizkenar Üçgen”  yaz.
Adım 7: Üçgenin çevresini bul.  (C=a+b+c)
Adım 9: Üçgenin yarım çevresini bul. (U=C/2)
Adım 8: Üçgenin alanını bul. (A=U*((U-a)*(U-b)*(U-c))^1/2
Adım 9: Çevre ve alan değerlerini ekrana yaz.(C,A)
Adım 10: Bitir

 

Akış Diyagramı

 

 

Evet bu makalede sizlere programların vazgeçilmezi eğer (if) kalıbının algoritma ve akış diyagramları ile ifade edilmesini anlattık. Umarım herkes için güzel bir çalışma olmuştur. İyi çalışmalar diliyorum tüm bilişim severlerimize hoşçakalın…

algo111

Join the Forum discussion on this post

Yazar: kacarozgur

Özgür Kaçar sitemizde 38 yazı eklemiş...




Benzer Konularımıza da Göz Atın!

coded by nessus
Share
  • onur

    Tabanı ve Yüksekliği Klavyeden Girilen
    Bir Üçgenin Alanını Hesaplayan Programın Akış Diyagramı

    • http://dahiweb.com/ Mustafa ŞADOĞLU

      kardeş bu nedir? soru mudur? cevap mıdır? istek midir?
      burada sorularınıza direk cevap vermiyoruz.. takıldığınız yeri yazın cevaplayalım.. biliyorsak… yoksa ödevler size aittir…

      • onur

        istek

    • http://dahiweb.com/ Mustafa ŞADOĞLU

      sen biraz çöz… takıldığın yerde sana yardımcı olalım

  • https://www.facebook.com/SeniSeviyorumBitanemde serafettin

    LÜTFEN YARDIM ÖDEV ..TŞK
    BANA ULAŞABİLİRİSİNİZ BURDAN >> https://www.facebook.com/SeniSeviyorumBitanemde
    1.)Başla
    2.)n değerini gir.
    3.) i=0,a[], negatif=0,pozitif=0,negatifsayac=0,pozitifsayac=0
    4.)eğer i >n ise git 6
    5.) gir a[i]
    6.) Eğer i>n ise git 13
    7.)Eğer a[i]> 0 ise git 10
    8.)negatif+=a[i] işlemini yap
    9.)negatifsayac++ işlemini yap
    10.)Eğer a[i]<0 ise git 13
    11.)pozitif+=a[i] işlemini yap
    12.)pozitifsayac++ işlemini yap
    13.) yaz pozitif ortalası=pozitif/pozitifsayac
    14.) yaz negatif ortlaması=negatif/negatifsayac
    15.)Dur

  • ed0

    @fatma
    ederdimde ben de bilmiyorum ki kardeşim

  • erhan

    girilen iki tam sayıdan küçük olanı büyük olandan çıkartarak sonucu hesaplayıp ekran yazdıram programın akış diyagramını çiziniz

    • jhsdhfjhsf

      tüffff daha bunumu yapamıyorsun

  • http://nereyeeserse.blogspot.com hakanyavas

    Abi bir gecedir boyle bisi ariyorum gozume uyku girmedi eline saglik aydinlattin beni..

  • recep

    bir fabrikada sabit maşla çalışan işçiler çocuk sayılarına göre aile yardımı almaktadırlar.Klavyeden maaş ve çocuk sayısı girilen işçinin maaşı aşağıda verilen yönergelere göre hesaplayan programın algoritmasını ve akış diyagramını
    çocuk sayısı 1 ise maaşın %5;
    çocuk sayısı 1 ise maaşın %10;
    çocuk sayısı 3 ve 3ten fazla ise maaşın %15 i kadar aile yardımı
    YARDIM EDER MİSİNİZ LÜTFEN

  • melek

    bir ödevim var bana yardım edermisiniz ? ödevim:
    klavyeden 3 sayı girilecek bu sayıların toplamını ,ortalamasını bulan sayıları büyükten küçüğe doğru sıralayan en büyük sayıyı bulup yazdıran programın algoritma ve akış diyagramını yazınız. yardım ederseniz çok sevinirim 2 gün içinde teslim etmem lazım.

  • İlhan

    Girilen arda arda sayılar için,sayılar arasındaki fark 5 oluncaya kadar veya sayı adeti 100 oluncaya kadar;
    A)Girilen sayılardan kaç tanesi tektir?
    B)Girilen sayılardan kaç tanesi Çifttir?
    C)Girilen sayıların aritmatik ortalaması?
    D)Girilen sayıların en büyüğünü ve en küçüğünü bulunmasını sağlayan algoritma ve akış diyagramı geliştiriniz sorusuna cevap arıyorum…

  • http://kara_25_25.com.tr kara

    Arkadaşım benim bir vize ödevim var bana yardımcı olurmusun?
    ödevim:metrobuste çalışacak otomatik bilet veren makina için bileti ve para üstünü hesaplayıp verebilen program.
    kullanacıgımız paralar:
    KRŞ:5.10.25.50.1
    TL: 5.10.20.50
    biletin fiyeti:1.95 algoritması ve akış şeması lütfen çok önemli salı günü teslim etmem gerekiyo.
    ilgilendiğin için teşekkürler.

  • http://facebook naside

    qüzel anlatılmış fakat Çok karışık bunun mantksal bi yoLu yokmu aLahm delircem snavda direk adımı yazıp çıkarm heraLde başka şansm yok :S

  • cennet başpınar

    ooo süper olmuş tam bizim ödevlik :)

  • Pingback: Algoritma ve Programlamaya Giriş #2 | Seçkin ALAN Kişisel Güncesi

  • Kürşat

    “N” tane reel yada tam sayıyı okuyan, bu N sayısının en büyüğü ile en küçüğünü bulan ve bulunan bu sayıları “enbuyuk_enkucuk” adlı “txt” dosyasına formatlı yazdıran bir MATLAB programı için,
    a) Algoritma hazırlayınız
    b) Akış diyagramı çiziniz
    c) .m dosyasını hazırlayınız.

    yardım edebilecek olan var mııı

  • melis

    arkadaşlar çarkıfelek oyununun akış diyagramıa çok acil ihtiyacım var lütfen yardımlarınızı bekliyorum

  • re5asm

    dışardan girilen N değerine göre tek indisli elemamları “D” ,çift indisli elemanları “1″ olan N elemanlı bir A dizisini oluşturan programın akış diyagramını çizip yazılımını her hanga bir programla yapınız. ACİL CEVAP

  • re5asm

    dışardan girilen N X N tipindeki A matriksinin tüm elemanlarının karekterlerini alarak B matriksinin ve tüm elemanlarının koareköklerini alarak c matriksini oluşturup bu matriksleri çarpan (D=B.C) PROGRAMININ AKIŞ DİYAGRAMINI ÇİZİP YAZILIMINI YAPINIZ.ACİL CEVABI

  • http://www.facebook.com/albert.ortega.riera.11 berk

    ben teknik lise 10. sınıf ögrencisiyim gerçekten güzel anlatmışsın

  • yücel

    çok teşekkürler ellerinize sağlık çok güzel anlatmışsınız yarın sınavım çok yardımcı oldunuz arkadaşlar aslında çalışmayı zevkli hale getirirseniz bu ders çok kolay gelecektir :)

  • https://www.facebook.com/bilqisayar.p Pınar

    ya evet aslında basit a<dı üstünde mantıksal saksıyı biraz çalıştırmamız gerekiyor. bende bazen durgunluk yaşıyorum yanlış yapıyorum ve pazartesi sınavım var. :S yarı uygulama yarı teorik. :S

  • BY FRK

    ÇOK SAOLUN ÇOK İŞİME YARADI

  • Bahadır

    çok basit bunlar ne böyle ya :D

  • buket

    çok sıkıcı

  • ayşeeeee

    çOK GÜZEL SAĞOLUUUN ALİ VE AYŞE

  • ömer

    girilen iki pozitif tam sayının ebob ve ekok unu bulan program (akış diyagramı ve algoritması) acil lazım???

  • http://www.roksi.net muhammed

    arkadaşlar o kadarda zor değil abartmayın

  • Sercan Akal

    Merhabalar arkadaşlar Örnek:6′da algoritmadan önce değişkenleri yazmak gerekmiyor muydu yoksa soruyu çözen arkadaş gözden mi kaçırmış?Yardımcı olursanız sevinirim.Teşekkürler

  • ayşe

    dizilerle ilgili kodu ve algoritması akış şemasıyla ilgili örnekler çözümle birlikte

  • emir

    ÇOK TEŞEKKÜR EDERİM ÇOK KOLAY GELDİ. FİBONACCİ VE DİZİ SERİLERLE İLGİLİ PAYLAŞIMLARINIZI BEKLİYORUM…

  • hatice

    bende anlamıyorum bu algoritmadan tembellik degil bu sadece temeli olmayanda zorluk yaratn bi sürectir

    • http://www.editorfatih.22web.net Fatih Aydın

      örneği dikkatli incelemenizi gerekiyor, yine de anlaşılır değil ise daha basit uygulamalardan kademe kademe yükselmeyi deneyiniz

  • mervem

    Bir depo ve N adet müşteriden oluşan bir taşımacılık sisteminde araç depodan başlayıp bütün
    müşterileri teker teker ziyaret ederek depoya geri dönmektedir. Sistemdeki bütün düğümler
    (müşteriler ve depo) arasındaki taşımacılık süresi düzgün dağılıma sahip olup parametreleri
    [10,20] dir. Düğüm sayısını (N) öğrenci numaranızın son iki hanesi olarak kabul edip,
    depodan başlayan ve bütün müşterileri ziyaret eden rassal bir rota için;
    a) Rotanın beklenen uzunluğunu (aracın toplam kat ettiği mesafe) 1000 deneme yaparak
    tahmin ediniz
    b) Rota uzunluğunun N*12 ile N*19 arasında olma olasılığını 1000 denemeye dayalı
    olarak tahmin ediniz.
    Not:
    1) Öğrenci numarasının son iki hanesi 10 dan küçük olanlar için N=N+10 kabul
    edilecektir (…03 için N=3+10=13).
    2) Rotalama Kuralı: Depodan itibaren sırasıyla tüm müşterilere uğranılacak ve tekrar
    depoya dönüş yapılacaktır. (yani, 0 depo olmak üzere rota
    0, 1, 2,…, N-1, N, 0
    şeklinde olacaktır).

    Bu soruyu nasıl yapabiliriz.Lütfen yardımcı olur musunuz?

  • mehmet

    mrb öncelikle güzel bir makale olmus ta bu kadar tembel arkadasların olması cok kotu ben sistem uzmanı olmama ragmen bi hobidir sadece c ve c++ calışıyorum bos vaktimde meraktandır ögreniyorum ..keske bende bilgisayar bölümü okuyup yazılım dersleri alabilseydim arkadaslar cok sanslı fakat bunu bilemicek kadar zayıflar..yeterince kolay zaten daha zorunu gormek isterlerse unix platformunda baksınlar ..saygılarımla güzel bir makale olmus iyi çalılşmalar .

  • ali ali

    arkadaşlar C’de bir sorum var…ama algoritmasını oluşturamıyorum..yardımcı olurmusunuz?

  • kerime

    ya of yarın sınavımız var vede uygulamalı napacam ben şimdiden kaldım yaaaaaaa olmaz ki böyle şey ötekiler güzel ama bundan kesin 000 çaktım

  • TalhaEmin

    Arkadaşım bunu iyi güzel yapmışsında akış diyagramında kullandığın değişkenleri sayisal olarak tanımlaman gerekmiyormu??

  • Kaan

    kardeşim paylaşım için teşekkürler eline saglık güzel olmuş sınavımda vardı ….

  • http://www.dahiweb.com/algoritma-ve-akis-diyagrami-ornekleri-mantiksal-akis-diyagramlari iboşşşş

    şu an şu dkka şu sn okulda lavobatuarda yım çok uzun bunlar uzun yolun kısası yokmu :D :D :D (HOCA HAŞLAMADAN BENİ)

  • uğur

    eyvallah hocam.eline sağlık.çok işime yaradı :) yarın sınav var..hocanın verdiği ödevlere yakın programları buldum..

  • kandemir

    Kardeşim eline sağlık bence güzel olmuş…

  • burhan

    boş beleş olmuş

  • serkan

    admin acilen bana “”klavyeden renk değerleri verildiğinde direncin ohm unu hesaplayan pragram lazım base kodunda olcak yardımcı olabilirmisin acil””…

  • sevinç

    iki kenarı girilen dörtgen şeklin alanı çevresi ve kare olup olmadıgını ekrana yazan programın algoritması nedir

  • ramazan

    ben bu konulurdan hiç bise anlamıyom zor….

  • fatma

    AHANDA YARIN SINAVIMIZ VAR HEMDE FUL ALGORİTMA VE AKIŞ DİYAGRAMLARI
    YHA VALLA BEN KESİN KALDIM ŞİMDİDEN SIFIR BEKLİYORUM ARKADAŞLAR ALGORİTMAYI BANA DAHA AÇIK BİR ŞEKİLDE ANLATABİLECEK KİMSE YOKMU YAA!!! MÜMKÜNSE ÖRNEKTE VERİN HAAA BİŞEY DAHA SORACAKTIM MANTIKSAL ALGORİTMA NEDİR YAAA?LÜTFEN BİRİNİZ YARDIIMM EDİİİN!!!!

  • Ahmet

    Ya bu Konular ney bole yaw ! Cok zor

  • oz

    ellerinize sağlık çok güzel anlatmışsınız.