Archive for the ‘Algoritma’ Category
Algoritma 2-d: Global Unique Identifier Türü
Bir çok yerde eşsiz tanımlayıcı değerlere ihtiyaç duyuyoruz. En basitinden benim yazmış olduğum yazılara wordpress bir tanımlayıcı numara veriyor böylece bu yazı üzerinde bir çalışma yapmak gerektiğinde sadece bu tanımlayıcı değer üzerinden istenilen iş yapılabiliyor.
Bu değerler hep kendi sistemlerimizde olduğundan biz rahatlıkla bu değerlerin eşsiz olmasını sağlayabiliyoruz. Ancak ya sistemin bir ortamda bulunamaması gündeme gelirse?
Mesela bir çok market bulunmakta bu marketlerde bir sürü ürün var. Bu ürünler farklı üreticilerden geliyor ve her üretici ürünlerinin üzerine kendi belirlediği barkodları basıyor, marketlerdeki kasalarda bu barkodları okuyup ürünü tanıyor. Bu sistemde çıkabilecek en önemli sorun aynı barkoda sahip olan 2 veya daha fazla ürün olmasıdır. Acaba müşteri hangi ürünü aldı diye kasanın düşünmesi lazım. Bu da mümkün değil. O zaman geriye tek yol kalıyor. Barkodların ülke içinde, veya dünya ölçeğinde eşsiz olması lazım.
Bunu sağlamak için birçok yol kullanılabilir.
Mesela farklı başlangıç noktalarından başlayarak , birebir artan numaralar kullanmak bu yollardan biri olabilir. Bu sistemin en güzel örneği IBAN numaralarıdır. Dünya üzerindeki ülkelere ilk 2 harf ayrılmış, o ülkedeki bankalar bu sayıdan sonraki 3 hane ile kendilerini tanımlarken, sonraki sayılarda şube ve hesap numarasını tanımlarlar. Böylece hesap numarasının dünya üzerinde eşsiz olması sağlanır.
Diğer bir yöntem ise matematiksel algoritmalar ile rastgele sayılar üretmektir. bu sayede eşsiz bir sayı üretilebilir. Global unique identifier bu şekilde üretilen 16 bayt yer kaplayan bir sayıdır. Bu sayı 16lık sayı sisteminde yazılır bu yüzden 32 hane olur. Ama bu tip için şöyle bir format belirlenmiştir. {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
Veya
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX şeklinde kullanılır. Örnek olarak :
{21EC2020-3AEA-1069-A2DD-08002B30309D}
Verilebilir. Detaylı bilgi için wikipedia başlığına bakabilirsiniz.
Algoritma 2-c: Boolean türü
Yaşamımızda sadece 2 seçeneği olan durumlarda kullandığımız bir tiptir. Sadece evet / hayır , doğru / yanlış gibi değerler alabilir. Karşıkaştırma işlemlerinin sonucu bu türde döner.
Karar yapılarında bu tip kullanılmaktadır.
Algoritma 2-b: Tarih türleri
Sabit ve değişkenlerde sayısal ve metin türlerini önceki yazımda incelemiştik. Şimdi bir başka tür olan tarih türüne bir bakalım:
Tarih ve saatin tutulması için kullanılan türdür. Bir çok dil farklı yöntemlerle bu bilgiyi tutar. Bazıları tarih ve saati belli bir başlangıç noktasına göre saniye cinsinden tutar. Bazıları ise her bir alt parçayı kendi içlerinde değişkenlerde tutar. Nasıl olduğunun çok önemi yok bizim için, ancak başlangıç noktası, bitiş noktası, hassasiyet gibi kavramlar bizim için önemlidir. Örneğin 1 ocak 1970 tarihini başlangıç olarak alan bir tür benim doğum tarihimi tutabilirken anneminkini tutamayacaktır.
Tarih ve saat türlerinde genel olarak şu işlemleri yapabiliriz:
1. Alt detayları tek tek alabilme, ve/veya değiştirebilme.
2. Değere ekleme ve çıkartma yapabilme. Örneğin şu tarihe 5gün ekle gibi.
3. 2 tarih arasındaki süreyi bulmak. Mesela yaşımı hesaplamak veya bebeğimizin kaç aylık olduğunu bulmak gibi.
Algoritma 2-a: Sabit ve değişkenlerin tipleri
Sabit ve değişkenler için birbaşka önemli nokta ise tipleridir. Bir sabit değerine, bir değişkende içerebileceği veya içerdiği değere göre tiplenir. Örneğin 5 tam sayı tipindedir, 6,34 ise ondalıklı sayı tipindedir. Mesela bir kişinin ismini veya adresini kafamızda tuttuğumuzda bu değişkenin tipi yazısal veya metin türünde olacaktır.
Şimdi genel anlamda tiplere bir göz atalım:
1. Sayısal tipler:
Farklı kapasitelere sahip sayı tipleri programlama dillerince kullanılmaktadır. Sayısal tipler üzerlerinde matematiksel işlemler yapabileceğimiz değerleri barındırırlar. bu yüzden sayısal tiplerde 2 temel tip karşımıza çıkar.
a) Tam sayılar
b) Ondalıklı sayılar
2. Metin veya yazısal tipler:
Bir isim veya adres gibi yazısal değerleri ifade eder. İçinde küçük ve büyük harfler, rakamlar ve özel işaretleri barındırabilir. Ayrıca metin tipleri birden fazla alfabeninde harflerini içerebilir. Bir metin elemanı içinde yer alabilecek bütün harf, sayı ve özel işaretlere kısaca karakter denir. Bu tiplerde yapılabilen işlemler şunlar olabilir:
a) iki metin toplanabilir, ki bu iki metnin arka arkaya eklenmesi anlamına gelir. Burada mesela on ile beşi topladığımızda sonuç onbeş olacaktır. Eğer bir yazısal değer içinde rakamlar içeriyorsa bu değerin benzer bir değerle toplanması matematiksel olarak yapılmaz. Örneğin : 10 + 5 = 105 olur. Bu sebeple böyle bir durumda matematiksel işlem yapabilmek için metin tiplerini sayısal tipe çevirmek gerekir.
b) Metnin içinde bir karakter kümesini arayabilirsiniz.
c) Metnin bir karakter kümesi ile başladığını veya bittiğini kontrol edebilirsiniz.
d) Ve dilden dile değişiklik gösteren daha birçok işlem yapılabilir.
Diğer Tipleride bir sonraki yazımda anlatacağım.
Algoritma 2: Sabitler ve Değişkenler
Sabitler:
Hayatımızın her noktasında yaptıklarımızı belli süreçlere göre yaparız. Bazı işler artık o kadar otomatikleşmiştir ki üzerinde düşünmemizede gerek yoktur. Ancak her noktada karşımıza temel olarak 2 kavram çıkar. Sabitler ve değişkenler. Sabitler bir işlemde bizim için değişmez olan değerlerdir. Mesela 2+2 dediğimizde buradaki 2′ler sabittir.
Bazı sabitler ise matematik veya diğer bilim dallarında kabul görmüştürler. Mesela pi sayısı veya avagado sayısı gibi. Bunların değişmeleri düşünülemez.
Birde bizim yaptığımız kabullerle veya prensiplerimize göre belirlenen sabitler vardır. Mesela arabama benden başka 4 kişi daha binebilir, 1 ocak 2011′e kadar yazılarıma devam edeceğim gibi. Bu sabitler belli zamanlarda değişebilir, ancak bizim herhangi bir uygulamamızın yazımı boyunca sabit kalacaktır.
Böylece sabitlere bir göz atmış olduk. Özetlersek; sabit belli bir zaman aralığı boyunca değişmeyen değerdir. Bu zaman aralığı uygulamanın çalıştığı süre olabileceği gibi, evrensel sabitlerde olduğu gibi çok daha uzun bir süre de olabilir.
Sabitleri değeri açık olarak yazarak kullanabileceğimiz gibi, sabiti önce isimlendirip, sonra bu isimide kullanabiliriz. Örnekler:
1. 23+35
2. pi=3,1415
Alan = pi * 4 * 4
Değişkenler :
Hayatımızın her aşamasında değişken değerlerle karşılaşırız. Örneğin günlük döviz kurları, hava durumu gibi, veya bizim değişken değerlerle çalışmamız gerekir. Elimizdeki listedeki fiyatları toplarken ara işlemlerde toplam değerini kafamızda tutarız mesela, ya da sekreter müdüre telefon bağlarken telefondaki kişinin ismini bir süreliğine aklında tutar diğer bir kişi aradığında bu adı aklında tutar.
Gördüğünüz gibi işlerimizi yaparken biz bile içsel olarak değişkenleri kullanırız. Aynı durum doğal olarak bilgisayar için yazdığımız programlarda da geçerli olmalıdır. Şimdi iki sayıyı toplama örneğine tekrar bakalım:
1. İlk sayıyı sorarım
2. Bu sayıyı a değişkenine atarım
3. İkinci sayıyı sorarım
4. Bu sayıyı b değişkenine atarım
5. a ve b değişkenlerinin değerlerini toplarım
6. Sonucu c değişkenine atarım
7. c değişkeninin değerini söylerim.
Gördüğünüz gibi bu işin içinde de değişken kullanmışım. Sanırım bu sizi şaşırtmadı.
