Documente Academic
Documente Profesional
Documente Cultură
SURSELOR DE INFORMAŢIE
Cod Sursa:
#include <iostream>
#include <stdlib.h>
#include <math.h>
int main()
int n=64,i;
float p[n],s=0,s_info;
cout<<"Valori random:"<<endl;
for(i=0;i<n;i++)
cout<<endl<<"Probabilitati"<<endl;
for(i=0;i<n;i++)
float info[n];
for(i=0;i<n;i++)
cout<<endl<<"Entropia:"<<endl;
float h=0;
for(i=0;i<n;i++)
return 0;
}
LUCRAREA 2
Codul Sursa :
#include <iostream>
#include <math.h>
#include <stdlib.h>
int main()
int n=5,i,j,k;
float m[n][n],s[n],h1=0,h2=0;
cout<<"k=";
cin>>k;
cout<<"Valori random:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
}
cout<<endl;
cout<<endl<<"Probabilitati:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cout<<endl<<"Entropia H1:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(i=0;i<n;i++)
s[i]=0;//suma ia valoarea 0
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cout<<endl<<"Entropia H2:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cout<<h2<<endl;//afisarea entropiei
return 0;}
Metoda Shannon – Fano
Codul Sursa:
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<string.h>
int main()
int n,i,j,k,ok;
float p[10],s=0,aux=0,s1,s2,s3,s4,d1,d2;
char cod1[10]="0",cod2[10]="0";
cout<<"n=";cin>>n;
cout<<"Apasati tasta 1 pentru valori de la tastatura,iar pentru valori random apasati orice alta
tasta"<<endl;
cin>>ok;
if(ok==1)
{cout<<"p["<<i<<"]=";cin>>p[i];
s=s+p[i];}
if(s==1)
{cout<<endl<<"Corect";}
return 0;
}}
else
{cout<<"Valori random:"<<endl;
for(i=1;i<=n;i++)
cout<<endl<<"Probabilitati:"<<endl;
for(i=1;i<=n;i++)
}}
cout<<" "<<endl;
for(j=i+1;j<=n;j++)
if(p[j]>p[i])
aux=p[i];
p[i]=p[j];
p[j]=aux;
cout<<endl<<"Ordonare descrescatoare:"<<endl;
for(i=1;i<=n;i++) cout<<"p["<<i<<"]="<<p[i]<<endl;
cout<<endl;
k=0;
cout<<"Codificare:"<<endl;
{ s1=0;
s2=0;
s3=0;
s4=0;
s3+=p[i];
s4=1-s3;
d1=abs(s4-s3);
s1=s3+p[i+1];
s2=1-s1;
d2=abs(s1-s2);
if(d1<=d2) //codificarea cu 0 sau 1 pe baza algoritmului studiat până se parcurge întreg vectorul
cout<<p[i]<<"->cod "<<cod1<<endl;
cod1[10]=0;
cod2[10]=0;
strcpy(cod1,"1");
strcpy(cod2,"1");
for(j=0;j<k;j++)
strcat(cod1,"1");
strcat(cod2,"1");
}
if(i!=(n-2))
strcat(cod1,"0");
strcat(cod2,"0");
else
strcat(cod1,"0");
strcat(cod2,"1");
i=i+1;
cod1[10]=0;
cod2[10]=0;
strcpy(cod1,"1");
strcpy(cod2,"1");
for(j=0;j<k;j++)
strcat(cod1,"1");
strcat(cod2,"1");
if(i!=(n-2))
strcat(cod1,"0");
}
}
k++;
return 0;
Valori de la tastatura :
Valori random:
Metoda Huffman-Schwartz
Codul sursa :
#include <iostream>
#include <stdlib.h>
#include <math.h>
a[1][1]=0.35;
a[1][2]=0.23;
a[1][3]=0.14;
a[1][4]=0.1;
a[1][5]=0.06;
a[1][6]=0.05;
a[1][7]=0.04;
a[1][8]=0.03;
{int i,j,ok;
float aux;
for(i=1;i<=8;i++)
do{
ok=0;
for(j=1;j<=n-1;j++)
if(a[i][j]<a[i][j+1])
aux=a[i][j];
a[i][j]=a[i][j+1];
a[i][j+1]=aux;
ok=1;
}while(ok == 1);
int i,j;
for(i=1;i<8;i++)
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}cout<<endl;
int main()
{
int i,j,k,l,vi,c,n=8;
float a[20][20],cod[20],e;
for(i=1;i<=n;i++)
for(j=0;j<=n;j++)
vi=n;
for(i=2;i<=n;i++)
for(j=1;j<vi-1;j++)
afisare(a,n);
k=n;i=1;
for(j=1;j<=n;j++)
cout<<a[1][j]<<"->";
i=1;
while(k>=0)
cod[l]=1; //se va introduce in vectorul cod[] valoarea 1, daca se afla in ultima coloana
k--;i++;l++;
k--;i++;l++;
{k--;i=i+1;}
}
for(c=l-2;c>=1;c--)
cout<<endl;
return 0;
}
Codurile Hamming
Codul sursa :
#include <iostream>
int main()
int a[10],i;
cout<<"Codificare sistematica"<<endl;
cout<<"Biti informationali"<<endl;
cout<<" "<<endl;
cout<<"Cuvant de cod"<<endl;
for(i=1;i<=7;i++)
for(i=1;i<=7;i++)
{a[i]=0;} //toate elementele vectorului iau valoarea 0
cout<<" "<<endl<<endl;
cout<<"Codificare ponderata"<<endl;
cout<<"Biti informationali"<<endl;
cout<<" "<<endl;
cout<<"Cuvant de cod"<<endl;
for(i=1;i<=7;i++)
}
Codul ciclic
Codul sursa :
#include <iostream>
int main()
int a[10],i;
cout<<"Biti informationali"<<endl;
//partea semnificativa
cout<<"Biti de test"<<endl;
//partea de test
for(i=5;i<=7;i++)
cout<<" "<<endl;
cout<<"Cuvant de cod"<<endl;
for(i=1;i<=7;i++)
return 0;
}
Cifrul lui Caesar
Codul sursa:
#include <iostream>
#include <bits/stdc++.h>
int main()
int o;
char s[200];
cin.getline(s,200);
int i=0,k;
cout<<"k=";
cin>>k;
while(s[i]!='\0')//cat timp s[i] este diferit de caracterul cu codul 0, numit și caracter nul,
notat în C++ cu '\0'
if(s[i]>='A' && s[i]<= 'Z') // daca s[i] are valori intre A si Z, in cod ASCII: A=65,Z=90
else
}
else
if(s[i]>='a' && s[i]<= 'z')// daca s[i] are valori intre a si z, in cod ASCII: a=97,z=122
else
else
i++;
return 0;
}
Criptarea prin substituţie monoalfabetică
Cod Sursa:
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
int i,j,lungimep,lungimec;
char pt[53] = {
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' ',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};//valorile pe
care le poate lua p
char ct[53] = {
'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M',' ',
'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'};//valorile
criptate ale lui p
char p[200] = { '\0' }, c[200] = { '\0' }, r[200] = { '\0' };//toti vectori iau valoarea nula
cout<<endl;
//Criptare
for (i = 0; i < lungimep; i++)//se parcurge sirul caracterelor
//Decriptare
cout << "Mesajul decriptat este: " << r << endl;//afisare mesaj decriptat
return 0;
}
Algoritmul R.S.A.
Codul sursa:
#include <iostream>
#include <math.h>
{ int ok=1,i;
if (p<2)
ok=0;
ok=0;//ok ia valoarea 0
while(1)//se cauta valori ale lui k pana cand restu impartiri lui k la e este 0,adica pana se
satisface conditia la if
int main()
{ int q,e,z,n,p,c,d,m,a,l,flag,i,j,adevarat;
bool prim=true;
char msgclar[100],msgcodat[100],msgdecodat[100];
cout<<"p=";
cin>>p;
cout<<"q=";
cin>>q;
return 0;
cout<<"n="<<n<<endl;//afisare n
cout<<"z="<<z<<endl;//afisare z
continue;
prim=numarprim(j);//verifica daca j este prim
e=j;//e ia valoarea j
cout<<"e="<<e<<endl;
cout<<"d="<<d<<endl;
cout<<"cheie publica("<<n<<","<<e<<")"<<endl;
cout<<"cheie privata("<<n<<","<<d<<")"<<endl;
cout<<"Tip mesaj:"<<endl;
cout<<"1.INT"<<endl;
cout<<"2.CHAR"<<endl;
cin>>adevarat;
if(adevarat==2)
{cout<<"Introduceti mesajul:";
cin>>msgclar;
for(a=0;msgclar[a]!='\0';a++)
{//algoritm de criptare
l=l*m;
l=l%n;
c=l;
//algoritm de decriptare
l=1;
l=l*c;
l=l%n;
m=l;
msgcodat[a]=-1;
msgdecodat[a]=-1;
for(i=0;msgcodat[i]!=-1;i++)
cout<<endl;
cout<<"Mesajul decriptat este :";
for(i=0;msgdecodat[i]!=-1;i++)
return 0;
else if(adevarat==1)
cout<<"Introduceti mesajul:";
cin>>m;
l=1;
l=l*m;
l=l%n;
c=l;
l=1;
l=l*c;
l=l%n;
m=l;
cout<<"Mesajul decriptat este :"<<m<<endl;//afisare mesaj decriptat
return 0;
else
cout<<"Tasta invalida"<<endl;
return 0;
}
INT:
CHAR: