Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Wellington Renan Gonçalves RA148232 Resumo_6 Código #include <stdio.h> #include <stdlib.h> int mrg, reg, mrg1, reg1, int i=0, sum=0, a=0, tam=0, int out; int rdt_send(int mrg){ printf("Informe uma sequencia de 3 bits:\n"); scanf("%d",&mrg); return (mrg);} int udt_send(int reg){ int cent, dez, unid, sum, check, auxcent, auxdez, auxunid; cent= eg/100; dez=((reg/10)%10); unid=reg%10; // Complemento de 2. if (cent == 0) {auxcent = 1;} else auxcent = 0; if (dez == 0) auxdez = 1; else auxdez = 0; if (unid == 0){ auxunid = 0; if(auxdez == 0) auxdez = 1; else{ auxdez = 0; if(auxcent == 1) auxcent = 0; else auxcent = 1;}} else auxunid = 1; // FIM complemento de 2 reg = cent * 100000 + dez * 10000 + unid * 1000 + auxcent * 100 + auxdez * 10 + auxunid; return(reg);} int deliver_data(int mrg1){ return(mrg1);} int rdt_rcv(int reg1){ int cent, dez, unid, sum, check, auxcent, auxdez, auxunid; int auxsum=0; int resunid, resdez, rescent; int a=0, b=0, c=0; cent = reg1/100000; dez = (reg1/10000)%10; unid = (reg1/1000)%10; auxcent = (reg1/100)%10; auxdez = (reg1/10)%10; auxunid = (reg1%100000)%10; //Soma da informacao com checksum para verificar se houve erro na transmissao auxsum = unid + auxunid; if (auxsum == 2) {resunid = 0; a ++;} if (auxsum == 1) resunid = 1; if (auxsum == 0) resunid = 0; auxsum = 0; auxsum = dez + auxdez; if (a == 1) auxsum ++; if(auxsum == 3){ resdez = 1; b ++;} if(auxsum == 2){ resde z = 0; b ++;} if(auxsum == 1) resdez = 1; if(auxsum == 0) resdez = 0; auxsum = 0; auxsum = cent + auxcent; if (b == 1) auxsum ++; if(auxsum == 3) rescent = 1; if(auxsum == 2) rescent = 0; if(auxsum == 1) rescent = 1; if(auxsum == 0) rescent = 0; auxsum = 0; auxsum = rescent + resdez + resunid; return (auxsum);} int main(){ reg = rdt_send(mrg); mrg1 = udt_send(reg); reg1 = deliver_data(mrg1); out = rdt_rcv(reg1); if (out == 0) printf("\n - Nao houve erro durante a transmissao! -\n"); return(0);}
Compartilhar