19 Ekim 2012 Cuma

Bağlı Listeler (Linked List)

C de linked list (bağlı liste )kullanarak küçükten büyüğe sıralı liste kullanıma ufakcana bi örnek :)Üstteki resmi linked list deyince gözümüz kapalı çizeriz de nedir ne yapıyoruz la burda deseler az bi zorlanırız heralde:)İlk sınıflar için bu lafım tabi. Bi kere neden ihtiyaç duyulmuş bunu bilmek gerek.Kafadan dinamik bellek kullanıyo ki bu da memory management diye üstüne düştüğümüz probleme bir çözüm.Bir şeyler eklemek ve silmek de normal arrayde yaptığımız işlemlerden çok daha kolay.Yani zamandan da kazanıyoruz.Şu bizim bayram ödevinin ilk sorusuna da temel olsun, uzatmayım kodları vereyim :) Buradan indirin kolay gelsin.İndirmek istemeyen de buyursun:


#include < stdio.h >
#include <stdlib.h >
#include < conio.h >
struct node
{
int value;
struct node *next;
};

typedef struct node node;
void initialization();//listeye ilk deðer verme islemleri
void add(int,node**);//eleman eklemek icin fonk


int main () {
    initialization();

    getch();
    return 0;
    }

    void initialization(){
     node *current ,*head;
     head=NULL;
     int added=1;
     printf("Listenizin elemanlarini girin\nbitirmek icin 0 basin :\n");
    while(added!=0){
     scanf("%d",&added); //her seferinde elemanlar alýnýyor
     add(added,&head);//her seferinde eklenmek üzere fonksiyona gönderiliyor
     printf("\n");

     }
     printf("Bagli listenizin elemanlari sirasiyla :\n");
    current=head;
    while (current) { //NULL görene kadar devam
          printf("%d\n",current->value);
          current=current->next;
          }
     }
     void add(int a,node** head){ //sýralý eklemek yapmak icin
          node *previous=NULL,*added,*current;

          added=(node*)malloc(sizeof(node));//ihtiyac oldukca belek ayýrýyor
          added->value=a;//gelen deðeri value kýsmýna atýyor
          added->next=NULL;// göstericisini sýfýrlýyor

          current=*head;

    while (current!=NULL && (added->value)>current->value){ //sýralý ekleme yapmak icin
                previous=current;
                current=current->next;
                }
                if(previous==NULL)
                  *head=added;
              else{
              previous->next=added;
             }
             added->next=current;
         }






6 Ekim 2012 Cumartesi

BCD (Binary Coded Decimal) muhabbeti nedir?



Genel olarak kodlama, görülebilen, okunabilen, yazı ve sayı işaretlerin değiştirilmesidir. Bu değiştirme şekli, metodlarla yapılır. Bu metodlara kodlama denir.
Bir çok kodlama sistemi vardır. Sayısal kodlamanın yanında normlandırılmış (mors alfabesinde olduğu gibi) kodlamada vardır. Bu sistemde harfler, rakamlar ve cümle parçaları başka başka kodlandırılır.
Decimal İçin Binary Kodlaması - (BCD) 
En basit kod sistemi "Binary Code Decimal" kısaca ifade edildiği gibi "BCD" kodudur. Bu kod 'da 0 - 9 decimal sayılarının ifadesi için, binary sayı sistemi kullanılır. BCD sayıları 0 ve 1 ile ifade edilirler.
Decimal Sayıları
 Binary Sayıları için Binary Kodu
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Bu kod sisteminde her decimal sayı karakteri için, dört bitli binary karakteri kullanılır.
Decimal
              BCD
      25(Erzurum:)
32
679
2571


0010
0101


0011
0010

0110
0111
1001
0010
0101
0111
0001
Burada görüldüğü gibi, her decimal sayısı, dört bitli bir binary kod 'u ile ifade edilmiştir. 
Binary için 10 decimal sayısı 1010 dır. BCD kodu ile, 10 sayısı 0001 0000 olarak yazılır. yani her basamak kendi içinde binary 'e çevrilir.
Decimal
Binary
BCD
141
2179
10001101
100010000011

0001
0100
0001
0010
0001
0111
1001
Herhangi bir aritmetik işlem varsa önce çözüm bulunur sonra BCD kodlamasına geçilirmiş bu da bi bilgi :)