• Sábado 21 de Diciembre de 2024, 10:59

Autor Tema:  Codificación Hamming  (Leído 6918 veces)

DIDA

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Codificación Hamming
« en: Jueves 17 de Julio de 2008, 02:53 »
0
Necesito realizar un programa que me codifique Hamming  y la respuesta me lo envia a un pc y también que me reciba la codificación
El programa lo necesito en Visual Basic
Agrazdeco a quien me pueda ayudar, lo necesito con urgencia[/size]

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Codificación Hamming
« Respuesta #1 en: Jueves 17 de Julio de 2008, 18:29 »
0
Código Hamming
Acá puedes averiguar sobre código hamming.
El pasado son solo recuerdos, el futuro son solo sueños

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Codificación Hamming
« Respuesta #2 en: Viernes 18 de Julio de 2008, 02:53 »
0

DIDA

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Codificación Hamming
« Respuesta #3 en: Viernes 18 de Julio de 2008, 03:05 »
0
señores muchas gracias por sus recomendaciones las revisare, pero igual sigo recibiendo sus recomendaciones.
nuevamente muchas gracias

tito_rocabado

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Codificación Hamming emulador RAID 2
« Respuesta #4 en: Lunes 19 de Octubre de 2009, 15:05 »
0
Proyecto Base de Datos
Emulación del nivel RAID2

#include <stdlib.h>
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <string.h>
#include <fstream.h>

using namespace std;

int num_bytes;
int bytes_malos;

int error_disco1;
int error_disco2;
int error_disco3;

void fragmentar(string archorigen, string archdestino1 ,string archdestino2 ,string archdestino3 ,string archdestino4)

{
    ifstream origen(archorigen.c_str(), ios::binary);
    char linea[1];
   
    if(origen.fail())
    cerr << "Error al abrir el archivo "<<archorigen << endl;
    else
    {
        ofstream destino1(archdestino1.c_str(), ios::binary|ios::trunc);
        ofstream destino2(archdestino2.c_str(), ios::binary|ios::trunc);
        ofstream destino3(archdestino3.c_str(), ios::binary|ios::trunc);
        ofstream destino4(archdestino4.c_str(), ios::trunc);
       
        if(destino1.fail())
        cerr << "Error al crear el archivo destino1"<< endl;
        else
        {
            while(!origen.eof()&&!origen.fail())
            {
                //escritura en primer disco
                origen.read(linea, sizeof(linea));
                if(origen.good())
                {
               
                    cout<<"-";
                    destino4.put('-');    
                    num_bytes++;
                   
                    destino1.write(linea, sizeof(linea));
                    if(destino1.fail())
                    {
                        //cerr << "Error en el archivo destino1"<< endl;
                        cout<<"X";  
                        destino4.put('x');  
                        bytes_malos++;
                        error_disco1++;
                    }
                }
                else if(!origen.eof())
                {
                    cerr << "Error en el archivo origen"<< endl;
                }
                //scritura en segundo disco
                origen.read(linea, sizeof(linea));
               
                if(origen.good())
                {
                    cout<<"-";
                    destino4.put('-');
                    num_bytes++;
                    destino2.write(linea, sizeof(linea));
                    if(destino2.fail())
                    {
                        //cerr << "Error en el archivo destino1"<< endl;
                        cout<<"x";
                        destino4.put('x');
                        bytes_malos++;
                        error_disco2++;
                    }
                }
                else if(!origen.eof())
                {
                    cerr << "Error en el archivo origen"<< endl;
           
                }
                //escritura en tercer disco
                origen.read(linea, sizeof(linea));
                if(origen.good())
                {
                    cout<<"-";
                    destino4.put('-');
                    num_bytes++;
                    destino3.write(linea, sizeof(linea));
                    if(destino3.fail())
                    {
                        //cerr << "Error en el archivo destino1"<< endl;
                        cout<<"x";
                        destino4.put('x');
                        bytes_malos++;
                        error_disco3++;
                    }
                }
                else if(!origen.eof())
                {
                    cerr << "Error en el archivo origen"
                      << endl;
                }                  
            }
        }
        destino1.close();
        destino2.close();
        destino3.close();
        destino4.close();
    }
    origen.close();

    getch();
}

void desfragmentar(string archorigen1, string archorigen2 ,string archorigen3, string archorigen4, string archdestino)
{
    ifstream origen1(archorigen1.c_str(), ios::binary);
    ifstream origen2(archorigen2.c_str(), ios::binary);
    ifstream origen3(archorigen3.c_str(), ios::binary);
    ifstream origen4(archorigen4.c_str(), ios::binary);
   
    char linea[1];
   
    if(origen1.fail())
    //cerr << "Error al abrir el archivo "<<archorigen1 << endl;
    cout<<"X";
    else
    {
        ofstream destino(archdestino.c_str(), ios::binary|ios::trunc);
       
        if(destino.fail())
        cerr << "Error al crear el archivo destino1"<< endl;
        else
        {
            while(!origen1.eof()&&!origen2.eof()&&!origen3.eof())
            {
                //lectura del primer disco
                origen1.read(linea, sizeof(linea));
                cout<<"-";
                if(origen1.good())
                {
                    destino.write(linea, sizeof(linea));
                    if(destino.fail())
                    {
                        //cerr << "Error en el archivo destino1"<< endl;
                        cout<<"X";
                    }
                }
                else if(!origen1.eof())
                {
                    cerr << "Error en el archivo origen"<< endl;
                }
                //lectura del segundo disco
                origen2.read(linea, sizeof(linea));
                cout<<"-";
                if(origen2.good())
                {
                    destino.write(linea, sizeof(linea));
                    if(destino.fail())
                    {
                        cerr << "Error en el archivo destino"<< endl;
                        cout<<"X";
                    }
                }
                else if(!origen2.eof())
                {
                    cerr << "Error en el archivo origen 2"<< endl;
                }
                //escritura en tercer disco
                origen3.read(linea, sizeof(linea));
                cout<<"-";
                if(origen3.good())
                {
                    destino.write(linea, sizeof(linea));
                    if(destino.fail())
                    {
                        //cerr << "Error en el archivo destino"<< endl;
                        cout<<"X";
                    }
                }
                else if(!origen3.eof())
                {
                    cerr << "Error en el archivo origen" << endl;
                }
            }
        }
        destino.close();      
    }
     origen1.close();
     origen2.close();
     origen3.close();
     origen4.close();

    getch();
}

int main()
{
    string archivo;
    cout<<"introduzca nombre de un archivo con su extension"<<endl;
    cin>>archivo;
    string disco1="disco1.txt";
    string disco2="disco2.txt";
    string disco3="disco3.txt";
    string disco4="control.txt";
   
    string recuperado="recuperado.txt";
   
    num_bytes=0;
    cout<<"presione una tecla para desfragmentar"<<endl;
    getch();
    fragmentar(archivo,disco1,disco2,disco3,disco4);
    cout<<endl<<"Se fragmento el archivo con los siguientes resultados:"<<endl;
    cout<<"numero de bytes copiados: "<<num_bytes<<endl;
    cout<<"numero de bytes malos: "<<bytes_malos<<endl;
    cout<<"numero errores en disco1 : "<<error_disco1<<endl;
    cout<<"numero errores en disco2 : "<<error_disco2<<endl;
    cout<<"numero errores en disco3 : "<<error_disco3<<endl;    
    cout<<"se crearon las copias de seguridad"<<endl<<endl;
    cout<<"presione una tecla para recuperar la informacion"<<endl;
    getch();
    cout<<"desfragmentando"<<endl;
    desfragmentar(disco1,disco2,disco3,disco4,recuperado);
    cout<<endl<<"desfragmentando terminado"<<endl;
    getch();
    return 0;
}

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Codificación Hamming
« Respuesta #5 en: Martes 20 de Octubre de 2009, 18:48 »
0
Bienvenido al foro a pesar de tu mala entrada...

1 - Has resucitado un post de hace 15 meses. Los post antiguos sólo deben ser resucitados por quienes hacen preguntas sobre el mismo no alguien que va a responder a alguien que no está  a la escucha.

2 - El foro es de Visual Basic, no de C, es imperativo si se pone código que éste sea en VB, preciamente existen foros de diferentes lengujaes para que esto sea así.
«Ma non troppo»
----> ModoVacaciones = False<----