ForumTayfa  

Go Back   ForumTayfa > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama Bölümü > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama > Programlama

Programlama Programlama hakkında herşeyi paylaştığımız, soru ve sorunlarımızı tartıştığımız bölüm...

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 16.02.07, 23:59   #1 (permalink)
Deneyimli Tayfa
 
silentwolf - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: burada
Mesaj Sayısı: 3.964
Konu Sayısı: 157
Takım: Fenerbahçe
Rep Gücü: 196650
Rep Puanı: 19663395
Rep Derecesi : silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000
Ruh Hali:

Standart C# Öğreniyorum Makale 5: Algoritma ve Dump Coding




Programlamanın temelinde, çalışma akışını, izlenecek yolları belirleyen algoritmalar vardır. Bir iş yapılmaya başlanmadan önce nasıl planlanıyorsa, kodlamaya geçilmeden önce de bir çalışma planı belirlenmelidir. Programlar, bu planda yazılan kodları belli bir sıra ile okur ve işler. Dolayısıyla algoritma yapısını çok iyi kurmak gerekir. Kurulan algoritmalar akış diyagramları ile görsel zenginlik kazanırlar.
Dump Coding yöntemi algoritmaları çözmenin uzun fakat etkili bir yoludur. Bu yöntem, adımları tek tek inceleyerek algoritma akışını çözer.
Bu makaleyi okuduktan sonra:
· Algoritma kurmayı öğrenecek,
· Dump Coding ile algoritmaları çözümleyecek,
· Akış diyagramları ile algoritmaları görsel olarak ifade edebileceksiniz.
Konu 1: Algoritma Nedir?

Algoritma, bir işin hangi etaplardan geçilerek yapılacağını gösteren çalışma planıdır. Algoritma bir programlama dili değildir. Programlama dillerine yol gösteren bir yöntem dizisidir. Her dilde algoritma yazılıp uygulanabilir. Örneğin bir cep telefonunun el kitapçığında yazan, rehber kaydı girmek için izlenecek yollar, o işin algoritmasıdır.
Algoritma yazarken, programın çalışması için kullanılan kaynakların, yapılması gereken kontrollerin veya işlemlerin açıkça ifade edilmesi gerekir. Ayrıca iyi bir algoritma, tüm ihtimalleri kontrol edip istenmeyen durumlarda ne yapılması gerektiğini belirtmesi gerekir.
Örneğin, bir e-ticaret uygulamasında ürün satış algoritması çıkarılır. Satın alınacak ürün seçildikten sonra, kullanıcıdan adet miktarı bilgisi alınır. Uygulama yazılırken, bu değerin Int16 veri tipinde olacağına karar verildiği düşünülürse; kullanıcının girdiği adet miktarı bu değişkene atanmadan önce kontrol edilmelidir. Eğer Int16 veri tipinin tutamayacağı bir değer girilmişse, çalışma anında uygulamanın beklenmedik şekilde durduğu ya da istenmeyen sonuçların üretildiği gözlemlenir. Ayrıca sistemin verdiği hata, kullanıcının anlamayacağı bir mesaj içereceği için, uygulamanın imajını da kötü yönde etkiler.
Veri girişi: Çalışma zamanında çoğu zaman, işleyişin tamamlanması için dışarıdan bir bilgi girilmesi gerekir. Algoritmanın çalışması için ihtiyaç duyduğu veriler, işlemi başlatan kişiden veya belirtilen bir kaynaktan alınabilir. Bu bilgiler sağlanmadan işlem devam etmez.
Kararlar: Karar ve kontrol yapıları algoritmanın akışını yönlendiren en önemli kavramlardır. Girilen veya işlem sonucunda elde edilen veriler, işlemin amacına göre kontrol edilir ve sonuca göre algoritma akışı istenilen yere yönlendirilir.
İşlemler: Algoritmanın akışı boyunca veriler üzerinde değişiklikler, yeni değer atamaları gibi işlemlere ihtiyaç duyulur. Algoritmalar kurulurken, yapılan işlemlerin yalın halde, tek tek yazılması okunabilirliği arttırır.
Algoritmalar adım sırası ile çalışır ve karar yapıları sonucunda farklı bir yere yönlendirilmediği müddetçe, bir sonraki adım ile işlemeye devam eder.
Örnek: Telefon kulübesinden telefon açmak için örnek bir algoritma
1. Telefon kulübesine git
2. Telefon kartı al
3. Telefon sırasında kaç kişi olduğuna bak
4. Kişi sayısı sıfırdan fazlaysa 3 e dön
5. Kapı kapalıysa kapıyı aç
6. İçeri gir, kapıyı kapat
7. Telefon kartını telefona yerleştir
8. Ahizeyi kaldır
9. Numarayı çevir
10. Konuşmanın bitip bitmediğine bak
11. Konuşma bittiyse kartı al, bitmediyse 10 a dön
12. Bir daha konuşma yapılacaksa 7 e dön
13. Kapıyı aç, dışarı çık
Bu algoritmanın işlemesi için, her ihtimal gözden geçirilerek, algoritma akışı gerekli yerlere yönlendirilir. Örneğin kapının kapalı olması durumunda kapıyı açmak için gerekli komutlar verilmelidir. Bu algoritmanın ihtiyaç duyduğu veriler, ya kullanıcı tarafından verilir ya da işlem başlamadan önce belirlidir. Sıradaki kişi sayısı, telefon kartı gibi veriler kullanıcı tarafından sağlanmış; çevrilecek numara, algoritma başlamadan önce belirlenmiştir.
Konu 2: Dump Coding Nedir?

Dump Coding, aptal kodlama anlamına gelir. Bu yöntem birçok karışık algoritmayı çözümlememizi sağlar.
Dump coding yöntemi, algoritmanın her adımında, değişkenlerin tek tek değerlerini yazıp işleyişi takip etmektir.
Örnek: İki sayının OBEB ini (ortak bölenlerin en büyüğünü) alan algoritmalardan bir tanesi Euclid tarafından geliştirilmiştir.
1. İki sayı gir. Büyük A, küçük B
2. A sayısı B sayısına böl. Tam bölünüyorsa, OBEB B sayısıdır. Çıkış
3. A sayısının değerini, Kalan sayının değeri yap
4. A ile B sayılarını yer değiştir. İkinci etaba dön
Bu algoritmanın çalışma mantığı, Dump Coding yöntemi ile adım adım incelenir.
1. İki sayı girilir. A = 12 ve B = 8
2. A sayısı, B sayısına tam bölünmüyor. Algoritma diğer etaptan devam eder.
3. Kalan sayı = 4. Dolayısıyla A = 4 olur.
4. A sayısı ile B sayısı yer değiştirilir. A = 8 ve B = 4 olur. İkinci etaba dönülür.
5. A sayısı B sayısına tam bölünüyor. OBEB = 4
Konu 3: Akış Diyagramlarında Kullanılan Semboller

Madde madde yazılan algoritmaların okunması kolaydır ancak işleyişin bütününü görmek çoğu zaman mümkün değildir. Akış diyagramları, algoritmaları görsel biçimde göstermeyi, dolayısıyla daha anlaşılır hale getirmeyi sağlar. Algoritmada yapılacak işlemlerin çeşitlerine göre çeşitli semboller kullanılır.
· Başla – Bitir
Algoritmanın hangi aşamadan başlayacağını ve ne zaman biteceğini gösteren semboldür. Bir algoritmayı temsil eden akış diyagramında, bir tane Başla ve bir tane Bitir sembolü olmalıdır.

· Veri Girişi
Kullanıcıdan ve başka bir kaynaktan alınan verilerin isimlerini tutar.

· Karar Verme
Karar yapısını belirten semboldür. Üstünde koşul ifadesi belirtilir.

· Veri tabanı
Veri tabanında okuma veya yazma işlemi yapıldığını gösterir.

· Ekran
Üzerinde yazılan yazının bilgi olarak ekranda gözükeceğini belirtir.

· Printer
Üzerinde yazılan yazının yazıcıdan çıkarılacağını belirtir.

· İşlem
Bir işlem yapılacağını belirten semboldür. Her işlem için ayrı bir fonksiyon sembolü kullanılması, akış diyagramını daha anlaşılır kılar.

· Fonksiyon
İşlem sembolüne yazılamayacak büyüklükte işlemler, alt işlem olarak bu sembolle belirtilir.

Konu 4: Algoritma Uygulamaları

Bilet Satma

Bir tiyatro uygulamasının sürekli gerçekleştireceği temel işlem bilet satmaktır. Bu işlemi gerçekleştirmek için gerekli kodlar yazılmadan önce, algoritma kurulmalıdır.
1. Kullanıcının istediği oyun, gün ve yer bilgileri alınır.
2. Veritabanı sorgulanarak, belirtilen günde oynayan oyunun boş yerleri çıkartılır.
3. Boş yer sayısı sıfırsa, o günde belirtilen oyun oynamıyordur ya da oyundaki bütün yerler satılmıştır.
4. Her iki durumda da bilet kesilemediği için ekrana hata mesajı gösterilir. Gün ve oyun bilgilerini baştan almak için ilk etaba dönülür.
5. Kullanıcıdan oturmak istediği yer bilgisi alınır.
6. İstediği yerin dolu olup olmadığı kontrol edilir.
7. Yer dolu ise ekrana hata mesajı gösterilir ve yer bilgisi tekrar alınmak üzere 5. etaba dönülür.
8. Yer boşsa, veritabanında oyunun yer kayıtları güncellenir.
9. İstenilen gün, oyun ve yer bilgilerini içeren bilet yazıcıdan çıkartılır.

Çay Demleme

Bu örnekte, bir çay demleme işleminde yapılması gereken işlemleri, kontrol edilmesi gereken olayları içeren algoritma kurulur.
1. Kullanıcıdan su vermesi beklenir.
2. Suyu ısıtma işlemi yapılır.
3. Suyun kaynayıp kaynamadığı kontrol edilir. Kaynamamışsa 2. etaba dönülür.
4. Çay daha önceden hazır olduğu için, kullanıcıdan beklenmez. Demliğe çay koyma işlemi yapılır.
5. Kullanıcıdan, demleme işleminin ne kadar süreceği bilgisi alınır.
6. Kullanıcıdan alınan demleme süresi ile şimdiki zaman (çayın demlenmeye başladığı zaman) toplanır. Çıkan değer, BitisZamani isimli değişkene atılır. Bu değişken demleme işleminin ne zaman biteceği bilgisini tutar.
7. Şimdiki zaman, bitiş zamanından küçükse çayın demlenmesi için ayrılan süre daha dolmamış demektir. Bu süre dolana kadar 7. etap tekrarlanır.
8. Çayın demlendiğini, kullanıcıya ekran üzerinde bildiren bir mesaj çıkartılır.

Üniversite Eğitim Notunu Hesaplama

Üniversitede bir dersin başarı notu, genelde bir vize ve bir final notu hesaplanır. Vize notunun katsayısı finalden daha düşüktür. Sonuçta çıkan not 50 ve üstüyse öğrenci geçer, 50 altıysa kalır. Bu örnek, vizenin %30 ve finalin %70 ağırlıklı olduğu başarı notunun hesaplanmasını akış diyagramı ile gösterir.
1. Notu hesaplanacak öğrencinin numarası kullanıcıdan alınır.
2. Veritabanından öğrencinin vize ve final notları çekilir.
3. Eğer final notu 28 veya daha düşükse öğrenci kalır ve 9. etaba gidilir. Bu durumda vize notu 100 olsa dahi, sonuç olarak toplanan not 50 altında olur. Dolayısıyla öğrencinin kalması kesinleşir. Böyle bir kontrol yapılması, gereksiz işlemlerin yapılmasını engeller.
4. Vize değişkenine, veritabanından alınan vize notunun %30 u atanır.
5. Final değişkenine, veritabanından alınan final notunun %70 i atanır.
6. Sonuc değişkenine, vize ve final değerlerinin toplamı atanır.
7. Sonuc değerinin 50’den büyük olup olmadığı kontrol edilir.
8. Sonuc 50’den büyükse ekrana “Geçtiniz” yazan bir mesaj çıkartılır. Algoritmadan çıkılır.
9. Sonuc 50’den küçükse ekrana “Kaldınız” yazan bir mesaj çıkartılır.

Makale Sonu Soruları & Alıştırmalar

1. Algoritma kurulurken esas alınacak noktalar nelerdir?
2. Dump Coding ile Algoritmanın farkı nedir?
3. Bir ürünün bilgilerinin, veri tabanından çekilerek kullanıcıya görüntüleme işleminin algoritmasını kurun
4. Bu algoritmayı akış diyagramı ile gösterin.
Kaynak : Yazılım Profesyoneli 1


__________________
bir silahım olsaydı...




hiç bir farklılık ayrımcılığa neden olamaz.
Hürriyet Hürriyettir.

silentwolf isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 05:13.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
User Alert System provided by Advanced User Tagging v3.0.6 (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 103 104 105 106 155 156 157 158 159 160 161 162 163 164 167 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271


ForumTayfa - Link Değişimi
Telinka İletişim | Voip Ürünleri | Link Değişimine Katılın |

Sitemiz bir forum sitesi olduğundan dolayı, kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. ForumTayfa Yöneticileri mesajları itina ile kontrol etse de, bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yine de sitemizde yasalara aykırı unsurlar bulursanız [email protected] email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.

Any member of our web site has the right of adding comments instantly without getting permisson due to the forum structure of our site basis. Althought, our site modarators check comments with care, all the responsibilities sourced from these comments directly belong to the members. If you still find any illegal content in our site ( A.buse, H.arassment, S.camming, H.acking, W.arez, C.rack, D.ivx, Mp.3 or any Illegal Activity ), please report us via [email protected] .Your reports will be evaluated as soon as the arrival of your e-mail.