ISBN numarası dekodlaması

Yayınlandı: 05/07/2011 / kodlama teorisi

Tanım: C bir kod olmak üzere tüm kodsözleri n uzunluğunda ise C’ ye n uzunluğunda blok kod (block code) denir.

Örnek: Günlük hayatta çokça karşılaşılan uluslararası kitap numarası (ISBN) 10 uzunluğunda bir blok koddur. (Sembollerin arasındaki kısa çizgiler optik yönlendirme olduğundan okunmamaktadır) Kod alfabesi 11 sembolden oluşmaktadır: 0, 1, 2, …, 9 ve X (on). Örneğin; Lin ve Costello’ nun (1983) kitap numarası aşağıdaki gibidir;

ISBN  0-13-283796-X

İlk numara 0 ülkeyi (ABD), 13 yayımcıyı (Prentice-Hall) ve sonraki altı basamakta yayımcı tarafından verilen kitap numarasını göstermektedir. Son sembol ise kontrol sembolüdür ve seçilişi ISBN kodsözleri a1a2a3…a10 olmak üzere

10*a1 +9*a2 +8*a3 +…+2*a9 +a10

toplamını 11’in katı yapacak şekildedir. Örneğin yukarıdaki ISBN ele alınırsa,

10*0+9*1+8*3+7*2+6*8+5*3+4*7+3*9+2*6+1*10=132=11*12

Ders Notu Hesaplama

Yayınlandı: 05/03/2011 / C++

#include<iostream.h>
#include<conio.h>
main()
{  cout<<”Ders notlari hesaplamasi:\n”;
cout<<”\n”;
cout<<”aldiginzi uc notu giriniz \n”;
int x,y,z,top;
float ort;
cin>>x>>y>>z;
top=x+y+z;
ort=top/3;
cout<<”uc notunuzun ortalamasi = “<<ort<<”\n”;
if(ort<=44)
{
cout<<”Kaldiniz\n”;
}
else if(45<=ort&&ort<=54)
{
cout<<”2 ile gectiniz\n”;
}
else if(55<=ort&&ort<=69)
{
cout<<”3 ile gectiniz\n”;
}
else if(70<=ort&&ort<=84)
{
cout<<”4 ile gectiniz\n”;
}
else
{
cout<<”5 ile gectiniz\n”;
}
cout<<”Kalan ogrenciler icin kurtarma sinavi yapilacaktir\n”;
cout<<” Sinava girmek istiyorsaniz asagidaki numaralardan birini seciniz\n”;
cout<<” 1- Dersten kalanlar\n”;
cout<<” 2- 2 ile gecenler\n”;
cout<<” 3- 3 ile gecip yukseltmek isteyenler\n”;
cout<<” 4- Sinava girmek istemiyorum\n”;

int a;
cin>>a;

switch(a)
{case 1 : cout<<” Sinava 18.02.2011 tarihinde 09.30′da, 3. kat A sinifinda girilecektir.\n”; break;
case 2 : cout<<” Sinava 18.02.2011 tarihinde 12.30′da, 2. kat B sinifinda girilecektir.\n”; break;
case 3 : cout<<” Sinava 19.02.2011 tarihinde 09.30′da, 1. kat C sinifinda girilecektir.\n”; break;
case 4 : cout<<” İyi tatiller\n”; break;

default : cout<<”yanlis bir sayi girdinz”;
}
getche();
return 0;
}

#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
main()
{
int x,y;
string a;

do
{
cout<<”Kullanici adi “;
cin>>a;
cout<<”\n”;
cout<<”Sifre: “;
cin>>x;

if(a==”ilhami” && x==123)
{ cout<<”Hosgeldin reis\n”;break;
}
else if(a==”q”&&x==0){cout<<”Gule gule\n”;break;}
else {cout<<”Yanlis giris yaptiniz.\n”;
}

cout<<” Lutfen kullanici adini ve sifreyi giriniz.\n”;
cout<<”\n\n*********Cikmak İcin Kullanici adini q ve sifreyi 0 (sifir) tuslayiniz*********\n\n”;
}while(a!=”q” && x!=0);
getche();
return 0;
}

Sayı tahmini oyunu

Yayınlandı: 05/03/2011 / C++

#include<iostream.h>
#include<conio.h>
#include <cstdlib>
#include <ctime>
main()
{srand(static_cast<unsigned int>(time(0)));
int a=rand()%100+1;
int b,c,t=0;
cout<<”***NUMARA TAHMİN OYUNU***\n\n\n”;

do
{ cout<<”Sayiyi tahmin ediniz\n”;
cin>>b;
if (b==0){cout<<” Bilemeyince boyle kacarsin iste.\n”;
cout<<”Yurude ense trasini gorelim…\n”;break;}
if(a<b){cout<<”Daha kucuk bir sayi tahmin ediniz\n”;}
else if (a>b){cout<<”Daha buyuk bir sayi tahmin ediniz\n”;}
else {cout<<”\n—Tebrikler bildiniz—\n”;
cout<<”Toplam “<<t<<”kez karavana\n”;
cout<<t+1<<”. de isabet:)\n”; break;}
cout<<”\nCikmak icin 0(sifir) tuslayiniz\n\n”;
t=t+1;
} while(b!=0);

getche();
return 0;
}

#include<iostream.h>
#include<conio.h>
#include<cmath>

main()
{ float x,y;
int t=0,a,b,c;
cout<<”Ondalik sayiyi giriniz: \n”;
cin>>x;
do{
x=x*10;
y=fmod(x,10.0);
t=t+1;
}while(y!=0);

cout<<”\n”;
a=x/10;b=pow(10,t-1);
if(b<a)
{  do
{c=a%b;if(c==0){break;}
a=b;b=c;}while(c!=0);

}

if(a<b){
do{c=b%a;if(c==0){break;}
b=a;a=c; }while(c!=0); b=a;

}
a=x/10; c=pow(10,t-1);

cout<<”ondalik karsilik= “<<a/b<<”/”<<c/b;

getche();
return 0;
}

Rank metrik

Yayınlandı: 04/28/2011 / kodlama teorisi

F(q^m) (q asal)  galois cisim olmak üzere n adet F(q^m)’nun kartezyen çarpımını düşünelim. Bu küme F(q^m) üzerinde bir vektör uzayıdır. Yani tabanı vardır. Bir a vektörünü F(q^m) lerin çarpımından seçersek x(i) ler bu kümede taban belirtmek üzere a=(x(1),x(2),…,x(n)) şeklinde yazılır.(x(i)’ler F(q^m) de elemanlar.) Yine F(q^m)’ yi F(q) cismi üzerinde vektör uzayı olarak düşünebiliriz. Şu halde a(i)’ler F(q) da tanımlı F(q^m)’nun tabanları olmak üzere her x(i)=(a(1)i,a(2)i,…,a(m)i) şeklinde yazılabilir. Ohalde alınan bir a vektörü için şu matrisi düşünelim: x(i) bileşenlerini  ilk satıra yazıyoruz. Daha sonra her bir x(i)’yi a(i) tabanlarıyla ifade edebildiğimizdin x(i)’leri oluşturan a(i) bileşenlerini o x(i) sütununa ekliyoruz. (Yani x(i)=(a(1)i,a(2)i,…,a(m)i) elemanının transpozunu o sütuna yazıyoruz) Oluşan matris için bazı geçiş ve izomorfizmalar sağlandığından a vektörünün rank normu bu matrisin rank normuna eşittir ve bir metrik belirttiğinden rank metrik olarak isimlendirilir.

Merhaba

Yayınlandı: 04/04/2011 / Genel

Bu blogda kodlama teorisi ile ilgili bilgilerimi sizlerle paylaşacağım.