You are on page 1of 3

#include <cstdlib> #include <iostream> using namespace std; int numerodeunos1=0; int numerodeunos2=0; int paroimpar1, paroimpar2; class

paridad { private: int v[33]; int w[33]; int longitud; public: void CapturarPrimerDato(); int NumeroDeUnosEmisor(); void AgregarBit(); void ImprimirPrimerVectorEnviado(); void CapturarSegundoDato(); int NumeroDeUnosReceptor(); void ImprimirResultado(); }; int main() { system("color f5"); paridad hacer; hacer.CapturarPrimerDato(); hacer.NumeroDeUnosEmisor(); hacer.AgregarBit(); hacer.ImprimirPrimerVectorEnviado(); hacer.CapturarSegundoDato(); hacer. NumeroDeUnosReceptor(); hacer.ImprimirResultado(); system("PAUSE"); return EXIT_SUCCESS; return 0; } void paridad::CapturarPrimerDato() { cout<<"\t\t\t\t PARIDAD SIMPLE"; cout<<"\n\nPrimero, coloca la longitud que tendran los vectores de datos: "; cin>>longitud; cout<<"\n\n\tPor favor, teclea el primer vector de datos: \n\t\t\t"; for(int i=0; i<longitud; i++) { cin>>v[i]; while(v[i]!=0&&v[i]!=1) { cout<<"\n Todos los bits deben ser cero o uno, intente de nuevo: \n \t\t\t"; cin>>v[i]; } }

} void paridad::CapturarSegundoDato() { cout<<"\n\n\tAhora teclea el vector de datos de la linea anterior: \n\t\t\t" ; for(int i=0; i<=longitud; i++) { cin>>w[i]; while(w[i]!=0&&w[i]!=1) { cout<<"\n Todos los bits deben ser cero o uno, intente de nuevo: \n\ t\t\t"; cin>>w[i]; } } } int paridad::NumeroDeUnosEmisor() { int operacionaux1=0; for(int i=0; i<longitud; i++) { operacionaux1=v[i]+1; switch (operacionaux1) { case 1:numerodeunos1=numerodeunos1+0; break; case 2:numerodeunos1=numerodeunos1+1; break; } } if(numerodeunos1%2==0) paroimpar1=0; else paroimpar1=1; return paroimpar1; } void paridad::AgregarBit() { if(paroimpar1==0) { for(int i=0; i<=longitud; i++) { if(i==longitud) v[i]=paroimpar1; } } else if (paroimpar1==1) { for(int i=0; i<=longitud; i++) { if(i==longitud) v[i]=paroimpar1; } } } void paridad::ImprimirPrimerVectorEnviado() { cout<<"\nEl vector de datos con el bit adicional es:\n";

for(int i=0; i<=longitud; i++) cout<<" "<<v[i]; } int paridad::NumeroDeUnosReceptor() { int operacionaux2=0; //ImprimirPrimerVectorEnviado(); for(int i=0; i<=longitud; i++) { operacionaux2=w[i]+1; switch (operacionaux2) { case 1:numerodeunos2=numerodeunos2+0; break; case 2:numerodeunos2=numerodeunos2+1; break; } } if(numerodeunos2%2==0) paroimpar2=0; else paroimpar2=1; return paroimpar2; } void paridad::ImprimirResultado() { if(paroimpar2==0) { system("color ac"); cout<<"\n\tMensaje Correcto!!!\n\n\t\t\t"; } else if(paroimpar2==1) { cout<<"\n\tError en el mensaje :(\n\n\t\t\t"; system("color bc"); } }

You might also like