11 Haziran 2016 Cumartesi

Python collection.deque yapısı

Python dilinde kuyruk yaratırken kullanabileceğimiz ve liste yapısından daha hızlı sonuç alacağımız collection.deque yapısıyla ilgili bir örnek. pop(0) kullanarak ilk indisi almak yerine popleft() kullanarak daha hızlı sonuç alabiliriz.



1:  from collections import deque  
2:  queue=deque(["yeşil","beyaz"])  
3:  queue.append("mehmet")  
4:  queue.append("mahmut")  
5:  queue.pop()  
6:  """pop() la son elemanın alindigi gosterildi  
7:  append() ile bu eleman geri yüklendi"""  
8:  print(queue)  
9:  queue.append("mahmut")  
10:  queue.popleft()  
11:  queue.popleft()  
12:  print(queue)  
13:  """ program çıktısı  
14:  deque(['yeşil', 'beyaz', 'mehmet'])  
15:  deque(['mehmet', 'mahmut'])  """  

3 Kasım 2015 Salı

Java Kuyruk Örneği

Veri yapıları örneklerinden kuyruk liste biçimiyle ilgili bir örnek.
Veri yapılarıyla ilgili örnekleri oluştururken kullandığımız dil önemli. Bir önceki yazımızda ağaç yapısı örneğimizi c++ dilinde oluşturmuştuk. C de pointer kavramını kullanarak bir sonraki düğümün adresini işaret edebilmiştik. Yine c de bağlı liste şeklinde bir yapı oluşturacağımız zaman liste elemanlarının birbirini pointerlar ile işaret etmelerini sağlamalıyız. Kuyruk da ilk giren ilk çıkar mantığıyla örneğimizi oluşturacağız yani listemize yeni eleman eklediğimiz zaman sona ekleyip çıkartacağımız zaman ise baştaki elemanı çıkartacağız. Bu örneğimizde javanın hazır fonksiyonlarını kullandık.



1:  import java.util.LinkedList;  
2:  import java.util.Queue;  
3:  public class Kuyruk {  
4:    public static void main(String[] args) {  
5:      Queue kuyruk =new LinkedList ();  
6:      kuyruk.add(10);  
7:      kuyruk.add(11);  
8:      kuyruk.add(15);  
9:      kuyruk.add(32);  
10:      kuyruk.add(45);  
11:      while (!kuyruk.isEmpty()){  
12:        System.out.println("elemanı getir"+" = "+kuyruk.poll()); //poll metodu sıradaki elemanimizi kuyruktan almamizi saglar  
13:      }  
14:    }  
15:  }  

2 Kasım 2015 Pazartesi

İkili Arama Ağacı

İkili arma ağacı oluşturarak girdiğimiz veriler içerisinden en küçük olan elemanı bulmayı sağlayan bir uygulama.
örneğin 17 -18-19-20-21-22-23 elemanları için kök düğüm 20 olarak belirleyelim sonrasında eklenen düğüm kökten küçük ise sola büyük ise sağa yerleşir.
#include "stdafx.h"
#include 
using namespace std;

class BSTDugum {

public:
    int Veri;
    BSTDugum *pSol;    // Her düğümün veri ve sağ sol çocuklarının adresleri olmak üzere 3 alanı var.
    BSTDugum *pSag;
    BSTDugum(int Veri){ // Yapıcı fonksiyon düğüm oluştugunda sağ ve sol adresleri bos olan ilk dugumu olusturdu
        pSag = NULL; pSol = NULL;
        this->Veri = Veri;
    }
        //////
    void ekle(int item){ // agaca eleman ekleme bu kısımda yapılır. Düğümle eklenen eleman karşılastırılır ve sonuc olarak sağ ya da sol cocuk olarak eklenir
    
        if (Veri > item){
            if (pSol)
                return pSol->ekle(item);
            else{
                BSTDugum *pYeni = new BSTDugum(item);
                pSol=pYeni;
            
            }
            
        }
        else if (Veri < item){
            if (pSag)
                return pSag->ekle(item);
            else{
                BSTDugum *pYeni = new BSTDugum(item);
                pSag = pYeni;

            }
        
        }
 
 BSTDugum *ara(int item){ // girilen eleman aranır ve listede olup olmadığı kontrol edilir.
        if (Veri > item){
            return pSol->ara(item);


            return NULL;
        }

        else if (Veri < item) {
            if (pSag)
                return pSag->ara(item);
            else
                return NULL;
        }
        return this;
    }
    ////
    int Mingetir(){ // en soldaki eleman getirilir
        if (pSol){
            return pSol->Mingetir();
            
            
        }
        return Veri;
    }
    ////
    void listele(BSTDugum *node) { // agac yapısına girilen elemanlar listelenir
        if (node != NULL){
            listele(node->pSol);
            cout << node->Veri << endl;
            listele(node->pSag);

        }
    }

};

int _tmain(int argc, _TCHAR* argv[])
{
    
    BSTDugum *yeni = new BSTDugum(20);
    for (int i = 0; i < 6; i++){
        
        int a;
        cin >> a;
        yeni->ekle(a);
    
    }
    
    yeni->listele(yeni);
    cout << endl << endl;
    cout<Mingetir();
    
    

    system("pause");
    return 0;
}

28 Ağustos 2015 Cuma

C# QR Code Uygulaması

Bu yazıda C# üzerinde basitce QR Code oluşturulmasından bahsedeceğim.

  • QR Code hakkında genel bilgi için. Link 1
  • QR Code kapasite ve versiyonları hakkında bilgi için. Link 2
  • Projeye eklenmesi gereken QR Code referance dosyası MessagingToolkit.QRCode.DLL için. Link 3
  • Uygulamanın kodları. GitHub
Öncelikle resimdekine benzer bir form oluşturarak başlıyoruz.
Formumuzda textBox yardımıyla metin girilecek, sonrasında versiyon ve ecc level bilgileri seçilecek ve Qr Code butonuna tıklanarak pictureBox içinde QrCode oluşturulacak ve kaydet butonu yardımıyla kaydedilecek.








12 Mart 2015 Perşembe

Matlab Taban Aritmetiği Kullanımı

Matlab hazır fonksiyonlarını kullanarak değişik tabanlardaki hesaplama işlemlerini hızlıca yapabiliriz.


1:  dec2hex ve hex2dec fonksiyonları 10 ve 16 tabanları arasında dönüşüm yaparlar.  
2:  >> dec2hex(36*2)  
3:  ans =  
4:  48  
5:  hex2dec('48')  
6:  ans =  
7:    72  
8:  bi2de fonksiyonu binary sayıların decimal hale dönüştürülmesini sağlar.  
9:  >> bi2de ([1,0,0,1],2)*bi2de([1,0,0,1],2)  
10:  ans =  
11:    81  
12:  örnekte 2 olarak kullanılan tabanı değiştirerek farklı tabanlarda da işlemler yapabiliriz.  
13:  d = bi2de([4 2 0 1],5,'left-msb')  
14:  4(53) + 2(52) +50 = 551.   
15:  binary ifadeleri hexadecimal tabana çevirirken, aşağıdaki gibi önce decimal sonra hexadecimal tabanlara dönüşüm şeklini kullanabiliriz.  
16:  bin_str = '10001011110101'  
17:  hex_str = dec2hex(bin2dec(bin_str))  



http://www.matrixlab-examples.com/binary-to-hexadecimal.html
http://www.mathworks.com/help/comm/ref/bi2de.html
http://www.mathworks.com/help/matlab/ref/dec2hex.html
http://www.mathworks.com/help/comm/ref/de2bi.html