Akış Diyagramlarının Kullanımı - Flogorithm

ZuL-RaA

Kadim Üye
9 Ara 2017
5,551
837
Semerkant
Herkese merhabalar arkadaşlar,

36n8isb.png



Akış diyagramı dediğimiz -algoritma geliştirmekte kullanılan - diyagramı, özellikle görsel şekilde rahat anlamamıza yardım eder, "Flowgorithm" programı ile bir örnekle yapacağız. Anlamanız açısından biraz basit seviye de tutacağım.

d8686kj.png


PROGRAMI EDİNME

Flowgorithm isimli uygulamayı ediniyoruz. Web sitesi burada: Flowgorithm - Download

Yükleme yapmadan çalıştırılabilir dosyayı indirdim. Arayüzümüz budur.

utcLMam3dvy.jpg


Öncelikle diyagramlardaki şekillerden bahsedeceğiz.

WE1s2.jpg


Başla - Bitir olan kenarlı oval dediğimiz dikdörtgen ile gösterilir.

İşlemler dikdörtgen ile gösterilir.

Girdi, çıktı ise parelel kenar ile gösterilir.

Baklava dilimi şartları belirtir kısaca.

Örnek olması adına ilk diyagram ile başlayalım.

3lfg5xp.png


BASİT DİYAGRAM


TAoIdEvH0.jpg


Program başlar. Değişken tanımlar. Girdi alır, çıktı verir ve kapanır.

5X0dZ9vxKz.jpg


Popüler dillerin çoğu burada bulunur. Yukarıdaki Ruby'ye tıklayıp değiştirebilirsiniz.

Akış diyagramlalarındaki olay aslında görselliğin güzelliği oluyor. Bir programı dümdüz düşünmeden yazmak yani atılgan şekilde yazmak kodu okuyanlar için veyahut ilerlediğimizde bizler için sorun oluşturur. Kodlarda tekrarlamaya düşmek, tıkanmak ve biraz da bilgisayar başında bunalımdan kaçmak gibi.


BÖLENLERİ BULAN PROGRAM YAZMAK

Bir sayının bölenleri sayıyı böldüğünde kalan bırakmayan sayılardır. Matematiksel bir tanım değil, bana ait bir tanım :) Bir sayının bölenleri adedini bulmak için:

b6FfCNxKh0.jpg


Örneğin on ikinin bölenlerini bulalım.

12 = 1, 2, 3, 4, 5, 6, 12.

Basitti. 5400'ün bölenleri bulalım. Sayısını formülle biraz uğraşacak çekebilirsiniz. 16 bin 492 sayısına bakalım bir de. Ve evet artık elle uğraşmak istemiyoruz.

Sizin için bulan programdan cevaplar:

1 2 3 4 5 6 8 9 10 12 15 18 20 24 25 27 30 36 40 45 50 54 60 72 75 90 100 108 120 135 150 180 200 216 225 270 300 360 450 540 600 675 900 1080 1350 1800 2700 5400.

1 2 4 7 14 19 28 31 38 62 76 124 133 217 266 434 532 589 868 1178 2356 4123 8246 16492

2. sinin böleni daha az gördüğünüz gibi çünkü onu oluşturan sayılardan kaynaklı. 7, 19, 31 gibi asallar içeriyor. Daha kısa ama daha bölenli bir sayı yazmak gerekirse 6270;

1 2 3 5 6 10 11 15 19 22 30 33 38 55 57 66 95 110 114 165 190 209 285 330 418 570 627 1045 1254 2090 3135 6270

Vs.

Şimdi herhangi bir programlama dilinde bunu yazmak dili bilince zor olmaz ama nasıl yazacağız kısmı bizi biraz zorlayacak. Burada önce yolu bulmalıyız. Diyagramı da oluşturacağız.

Bir sayının bölenleri nasıl bulunur diye biraz düşünelim. Bölen sayısını veren formül var ancak çarpanlarına ayırmak gerekiyor. Sayı büyüdükçe bizi uğraştırabilir. Çarpanlara ayırınca da gözden kaçırmadan önce çarpanların kendisini kabul edeceğiz, daha sonra birinci çarpan ile geri kalan çarpanları çarpıp ekler, diğerleri için de bunu yapar, sonra birden fazla kez birbiriyle çarpar... Kendimizi biraz kandırmayalım diyorum. Bunu program da veya defter de uğraşmak istemeyiz. Açıkçası bu sayıları bize getiren formül tarzı bir şey de yok. Bunu da kütüphanesiz yapacağız.

Herhangi bir programlama dili ile önce 1 sayısıyla bölmeye başlayıp, kalan 0 sa bölenlere dahil etmek bana en kolay yol görünüyor. Daha sonra +1 şeklinde devam eder. Kısaca deneme yanılma ama programlama da. Diyagram oluşturmak için şöyle düşünüyorum:

* Programı çalıştır.
* Bölenleri bulunacak sayı seç.
* 2'ye böl, kalan 0 sa yaz. 3'e böl, kalan 0 sa yaz. 1 arttırarak devam et.
* 1 arttırarak sayının kendisine ulaşırsak programı kapat.


Bölenleri bulunacak sayıyı dışarıdan alalım ve hadi koda dökelim.

ybHkiRTY.jpg


Okumanızda sorun olmayacaktır umuyorum. Şimdi sol taraf diyagramımız, sağ üst python da kod hali, sol alt ise sonuçlarımız.

Diyagram kısmı bizi ilgilendiriyor. En baştan aşağı doğru:

* Başla.
* Değeri sayı olacak "getnum" değişkeni tanımla.
* Değeri sayı olacak "kontrolsay" değişkeni tanımla.
* "kontrolsay" değişkeninin değerini 2 yap. (1 yapmanın alemi yok, her sayıyı bölebildiği için 2 ile başladık."
* Kullanıcıdan sayı al diyoruz. "getnum" 'a atayacak onu.


Döngü görmekteyiz. "do" döngüsü isimli bu döngü C de falanda vardı. Önce içindeki komutu yalnızca 1 kere için çalıştırır daha sonra ise şartını kontrol eder, duruma göre tekrar içindeki komutu çalıştırır.
* "getnum % kontrolsay == 0" ifadesi "getnum" değişkeninin "kontrolsay" 'a bölünmesiyle kalan 0'a eşit mi diye kontrol et demek. "True" yani doğru ise kendi okunun taraftından bir sonraki kısma, "False" yanlış ise kendi okunun taraftından bir sonraki kısma geç demek.
* "kontrolsay = kontrolsay + 1" ifadesi, soldan sağa doğru okunur. "kontrolsay" değişkenini eşitle; "kontrolsay" değişkenin değeri ve onun bir fazlasına.
* "getnum != kontrolsay" ifadesi döngüyü sağlar. "getnum" eşit değilse "kontrolsay" a ki bu program çalıştığında "True", doğrudur. Eşit olunsa "False" yani yanlış dönecek ve okun "False" yönüne gidiyoruz.
* "tamam." ifadesini ise ben bastırdım.
* Program kapanır.


** Türkçe çevirisinde kullanayım dedim ama sonra aklıma yatmadı.

Aynı programın C hali: GitHub - Ustrif/Bolenler-C: Ortak bolenler.

Örnek bir algoritmayı kafamızda tasarlayıp diyagrama dökmüş olduk. Okları takip ederek görmüş olduğunuz. İç içe döngülerin ve koşulların geçtiği döngülerde gerçekten hayat kurtarıcı olabilir.

Okuduğunuz için teşekkürler.

Görseller: Flowchart.rar dosyasını indir - download
VT: VirusTotal
800px-TürkHackTeam_Logo.png
 
Son düzenleme:

kst132

Junior Hunter
12 Haz 2023
920
542
Herkese merhabalar arkadaşlar,

36n8isb.png



Akış diyagramı dediğimiz -algoritma geliştirmekte kullanılan - diyagramı, özellikle görsel şekilde rahat anlamamıza yardım eder, "Flowgorithm" programı ile bir örnekle yapacağız. Anlamanız açısından biraz basit seviye de tutacağım.

d8686kj.png


PROGRAMI EDİNME

Flowgorithm isimli uygulamayı ediniyoruz. Web sitesi burada: Flowgorithm - Download

Yükleme yapmadan çalıştırılabilir dosyayı indirdim. Arayüzümüz budur.

yJmy1b.jpeg


Öncelikle diyagramlardaki şekillerden bahsedeceğiz.

yJmQkG.jpeg


Başla - Bitir olan kenarlı oval dediğimiz dikdörtgen ile gösterilir.

İşlemler dikdörtgen ile gösterilir.

Girdi, çıktı ise parelel kenar ile gösterilir.

Baklava dilimi şartları belirtir kısaca.

Örnek olması adına ilk diyagram ile başlayalım.

3lfg5xp.png


BASİT DİYAGRAM


yJmCws.jpeg


Program başlar. Değişken tanımlar. Girdi alır, çıktı verir ve kapanır.

yJmuxQ.jpeg


Popüler dillerin çoğu burada bulunur. Yukarıdaki Ruby'ye tıklayıp değiştirebilirsiniz.

Akış diyagramlalarındaki olay aslında görselliğin güzelliği oluyor. Bir programı dümdüz düşünmeden yazmak yani atılgan şekilde yazmak kodu okuyanlar için veyahut ilerlediğimizde bizler için sorun oluşturur. Kodlarda tekrarlamaya düşmek, tıkanmak ve biraz da bilgisayar başında bunalımdan kaçmak gibi.


BÖLENLERİ BULAN PROGRAM YAZMAK

Bir sayının bölenleri sayıyı böldüğünde kalan bırakmayan sayılardır. Matematiksel bir tanım değil, bana ait bir tanım :) Bir sayının bölenleri adedini bulmak için:

yJmrHS.jpeg


Örneğin on ikinin bölenlerini bulalım.

12 = 1, 2, 3, 4, 5, 6, 12.

Basitti. 5400'ün bölenleri bulalım. Sayısını formülle biraz uğraşacak çekebilirsiniz. 16 bin 492 sayısına bakalım bir de. Ve evet artık elle uğraşmak istemiyoruz.

Sizin için bulan programdan cevaplar:

1 2 3 4 5 6 8 9 10 12 15 18 20 24 25 27 30 36 40 45 50 54 60 72 75 90 100 108 120 135 150 180 200 216 225 270 300 360 450 540 600 675 900 1080 1350 1800 2700 5400.

1 2 4 7 14 19 28 31 38 62 76 124 133 217 266 434 532 589 868 1178 2356 4123 8246 16492

2. sinin böleni daha az gördüğünüz gibi çünkü onu oluşturan sayılardan kaynaklı. 7, 19, 31 gibi asallar içeriyor. Daha kısa ama daha bölenli bir sayı yazmak gerekirse 6270;

1 2 3 5 6 10 11 15 19 22 30 33 38 55 57 66 95 110 114 165 190 209 285 330 418 570 627 1045 1254 2090 3135 6270

Vs.

Şimdi herhangi bir programlama dilinde bunu yazmak dili bilince zor olmaz ama nasıl yazacağız kısmı bizi biraz zorlayacak. Burada önce yolu bulmalıyız. Diyagramı da oluşturacağız.

Bir sayının bölenleri nasıl bulunur diye biraz düşünelim. Bölen sayısını veren formül var ancak çarpanlarına ayırmak gerekiyor. Sayı büyüdükçe bizi uğraştırabilir. Çarpanlara ayırınca da gözden kaçırmadan önce çarpanların kendisini kabul edeceğiz, daha sonra birinci çarpan ile geri kalan çarpanları çarpıp ekler, diğerleri için de bunu yapar, sonra birden fazla kez birbiriyle çarpar... Kendimizi biraz kandırmayalım diyorum. Bunu program da veya defter de uğraşmak istemeyiz. Açıkçası bu sayıları bize getiren formül tarzı bir şey de yok. Bunu da kütüphanesiz yapacağız.

Herhangi bir programlama dili ile önce 1 sayısıyla bölmeye başlayıp, kalan 0 sa bölenlere dahil etmek bana en kolay yol görünüyor. Daha sonra +1 şeklinde devam eder. Kısaca deneme yanılma ama programlama da. Diyagram oluşturmak için şöyle düşünüyorum:

* Programı çalıştır.
* Bölenleri bulunacak sayı seç.
* 2'ye böl, kalan 0 sa yaz. 3'e böl, kalan 0 sa yaz. 1 arttırarak devam et.
* 1 arttırarak sayının kendisine ulaşırsak programı kapat.


Bölenleri bulunacak sayıyı dışarıdan alalım ve hadi koda dökelim.

yJmxpt.jpeg


Okumanızda sorun olmayacaktır umuyorum. Şimdi sol taraf diyagramımız, sağ üst python da kod hali, sol alt ise sonuçlarımız.

Diyagram kısmı bizi ilgilendiriyor. En baştan aşağı doğru:

* Başla.
* Değeri sayı olacak "getnum" değişkeni tanımla.
* Değeri sayı olacak "kontrolsay" değişkeni tanımla.
* "kontrolsay" değişkeninin değerini 2 yap. (1 yapmanın alemi yok, her sayıyı bölebildiği için 2 ile başladık."
* Kullanıcıdan sayı al diyoruz. "getnum" 'a atayacak onu.


Döngü görmekteyiz. "do" döngüsü isimli bu döngü C de falanda vardı. Önce içindeki komutu yalnızca 1 kere için çalıştırır daha sonra ise şartını kontrol eder, duruma göre tekrar içindeki komutu çalıştırır.
* "getnum % kontrolsay == 0" ifadesi "getnum" değişkeninin "kontrolsay" 'a bölünmesiyle kalan 0'a eşit mi diye kontrol et demek. "True" yani doğru ise kendi okunun taraftından bir sonraki kısma, "False" yanlış ise kendi okunun taraftından bir sonraki kısma geç demek.
* "kontrolsay = kontrolsay + 1" ifadesi, soldan sağa doğru okunur. "kontrolsay" değişkenini eşitle; "kontrolsay" değişkenin değeri ve onun bir fazlasına.
* "getnum != kontrolsay" ifadesi döngüyü sağlar. "getnum" eşit değilse "kontrolsay" a ki bu program çalıştığında "True", doğrudur. Eşit olunsa "False" yani yanlış dönecek ve okun "False" yönüne gidiyoruz.
* "tamam." ifadesini ise ben bastırdım.
* Program kapanır.


** Türkçe çevirisinde kullanayım dedim ama sonra aklıma yatmadı.

Aynı programın C hali: GitHub - Ustrif/Bolenler-C: Ortak bolenler.

Örnek bir algoritmayı kafamızda tasarlayıp diyagrama dökmüş olduk. Okları takip ederek görmüş olduğunuz. İç içe döngülerin ve koşulların geçtiği döngülerde gerçekten hayat kurtarıcı olabilir.

Okuduğunuz için teşekkürler.

Görseller: Dosya.tc - Ücretsiz, Hızlı ve Kolay Dosya Paylaşımı - Dosya Upload
VT: VirusTotal
800px-TürkHackTeam_Logo.png
Ellerinize sağlık hocam
 

drjacob

Uzman üye
21 Ocak 2012
1,777
405
localhost
Herkese merhabalar arkadaşlar,

36n8isb.png



Akış diyagramı dediğimiz -algoritma geliştirmekte kullanılan - diyagramı, özellikle görsel şekilde rahat anlamamıza yardım eder, "Flowgorithm" programı ile bir örnekle yapacağız. Anlamanız açısından biraz basit seviye de tutacağım.

d8686kj.png


PROGRAMI EDİNME

Flowgorithm isimli uygulamayı ediniyoruz. Web sitesi burada: Flowgorithm - Download

Yükleme yapmadan çalıştırılabilir dosyayı indirdim. Arayüzümüz budur.

utcLMam3dvy.jpg


Öncelikle diyagramlardaki şekillerden bahsedeceğiz.

WE1s2.jpg


Başla - Bitir olan kenarlı oval dediğimiz dikdörtgen ile gösterilir.

İşlemler dikdörtgen ile gösterilir.

Girdi, çıktı ise parelel kenar ile gösterilir.

Baklava dilimi şartları belirtir kısaca.

Örnek olması adına ilk diyagram ile başlayalım.

3lfg5xp.png


BASİT DİYAGRAM


TAoIdEvH0.jpg


Program başlar. Değişken tanımlar. Girdi alır, çıktı verir ve kapanır.

5X0dZ9vxKz.jpg


Popüler dillerin çoğu burada bulunur. Yukarıdaki Ruby'ye tıklayıp değiştirebilirsiniz.

Akış diyagramlalarındaki olay aslında görselliğin güzelliği oluyor. Bir programı dümdüz düşünmeden yazmak yani atılgan şekilde yazmak kodu okuyanlar için veyahut ilerlediğimizde bizler için sorun oluşturur. Kodlarda tekrarlamaya düşmek, tıkanmak ve biraz da bilgisayar başında bunalımdan kaçmak gibi.


BÖLENLERİ BULAN PROGRAM YAZMAK

Bir sayının bölenleri sayıyı böldüğünde kalan bırakmayan sayılardır. Matematiksel bir tanım değil, bana ait bir tanım :) Bir sayının bölenleri adedini bulmak için:

b6FfCNxKh0.jpg


Örneğin on ikinin bölenlerini bulalım.

12 = 1, 2, 3, 4, 5, 6, 12.

Basitti. 5400'ün bölenleri bulalım. Sayısını formülle biraz uğraşacak çekebilirsiniz. 16 bin 492 sayısına bakalım bir de. Ve evet artık elle uğraşmak istemiyoruz.

Sizin için bulan programdan cevaplar:

1 2 3 4 5 6 8 9 10 12 15 18 20 24 25 27 30 36 40 45 50 54 60 72 75 90 100 108 120 135 150 180 200 216 225 270 300 360 450 540 600 675 900 1080 1350 1800 2700 5400.

1 2 4 7 14 19 28 31 38 62 76 124 133 217 266 434 532 589 868 1178 2356 4123 8246 16492

2. sinin böleni daha az gördüğünüz gibi çünkü onu oluşturan sayılardan kaynaklı. 7, 19, 31 gibi asallar içeriyor. Daha kısa ama daha bölenli bir sayı yazmak gerekirse 6270;

1 2 3 5 6 10 11 15 19 22 30 33 38 55 57 66 95 110 114 165 190 209 285 330 418 570 627 1045 1254 2090 3135 6270

Vs.

Şimdi herhangi bir programlama dilinde bunu yazmak dili bilince zor olmaz ama nasıl yazacağız kısmı bizi biraz zorlayacak. Burada önce yolu bulmalıyız. Diyagramı da oluşturacağız.

Bir sayının bölenleri nasıl bulunur diye biraz düşünelim. Bölen sayısını veren formül var ancak çarpanlarına ayırmak gerekiyor. Sayı büyüdükçe bizi uğraştırabilir. Çarpanlara ayırınca da gözden kaçırmadan önce çarpanların kendisini kabul edeceğiz, daha sonra birinci çarpan ile geri kalan çarpanları çarpıp ekler, diğerleri için de bunu yapar, sonra birden fazla kez birbiriyle çarpar... Kendimizi biraz kandırmayalım diyorum. Bunu program da veya defter de uğraşmak istemeyiz. Açıkçası bu sayıları bize getiren formül tarzı bir şey de yok. Bunu da kütüphanesiz yapacağız.

Herhangi bir programlama dili ile önce 1 sayısıyla bölmeye başlayıp, kalan 0 sa bölenlere dahil etmek bana en kolay yol görünüyor. Daha sonra +1 şeklinde devam eder. Kısaca deneme yanılma ama programlama da. Diyagram oluşturmak için şöyle düşünüyorum:

* Programı çalıştır.
* Bölenleri bulunacak sayı seç.
* 2'ye böl, kalan 0 sa yaz. 3'e böl, kalan 0 sa yaz. 1 arttırarak devam et.
* 1 arttırarak sayının kendisine ulaşırsak programı kapat.


Bölenleri bulunacak sayıyı dışarıdan alalım ve hadi koda dökelim.

ybHkiRTY.jpg


Okumanızda sorun olmayacaktır umuyorum. Şimdi sol taraf diyagramımız, sağ üst python da kod hali, sol alt ise sonuçlarımız.

Diyagram kısmı bizi ilgilendiriyor. En baştan aşağı doğru:

* Başla.
* Değeri sayı olacak "getnum" değişkeni tanımla.
* Değeri sayı olacak "kontrolsay" değişkeni tanımla.
* "kontrolsay" değişkeninin değerini 2 yap. (1 yapmanın alemi yok, her sayıyı bölebildiği için 2 ile başladık."
* Kullanıcıdan sayı al diyoruz. "getnum" 'a atayacak onu.


Döngü görmekteyiz. "do" döngüsü isimli bu döngü C de falanda vardı. Önce içindeki komutu yalnızca 1 kere için çalıştırır daha sonra ise şartını kontrol eder, duruma göre tekrar içindeki komutu çalıştırır.
* "getnum % kontrolsay == 0" ifadesi "getnum" değişkeninin "kontrolsay" 'a bölünmesiyle kalan 0'a eşit mi diye kontrol et demek. "True" yani doğru ise kendi okunun taraftından bir sonraki kısma, "False" yanlış ise kendi okunun taraftından bir sonraki kısma geç demek.
* "kontrolsay = kontrolsay + 1" ifadesi, soldan sağa doğru okunur. "kontrolsay" değişkenini eşitle; "kontrolsay" değişkenin değeri ve onun bir fazlasına.
* "getnum != kontrolsay" ifadesi döngüyü sağlar. "getnum" eşit değilse "kontrolsay" a ki bu program çalıştığında "True", doğrudur. Eşit olunsa "False" yani yanlış dönecek ve okun "False" yönüne gidiyoruz.
* "tamam." ifadesini ise ben bastırdım.
* Program kapanır.


** Türkçe çevirisinde kullanayım dedim ama sonra aklıma yatmadı.

Aynı programın C hali: GitHub - Ustrif/Bolenler-C: Ortak bolenler.

Örnek bir algoritmayı kafamızda tasarlayıp diyagrama dökmüş olduk. Okları takip ederek görmüş olduğunuz. İç içe döngülerin ve koşulların geçtiği döngülerde gerçekten hayat kurtarıcı olabilir.

Okuduğunuz için teşekkürler.

Görseller: Flowchart.rar dosyasını indir - download
VT: VirusTotal
800px-TürkHackTeam_Logo.png
eline sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.