Ir ao conteúdo

João Vitor Sacramento Rocha

Membro Pleno
  • Posts

    114
  • Cadastrado em

  • Última visita

Tudo que João Vitor Sacramento Rocha postou

  1. o codigo nao entra nas condicionais por favor se alguem poder me ajuda! #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> int cont=0; struct cadastro { char cpf[11][50]; char nome[50][50]; char rg[10][50]; char conta[15][50]; float saldo[50]; float pagamento[50][50]; float saquef[50][50]; float transf[50][50]; float depositof[50][50]; int barra[50][50]; int conts[50]; int contt[50]; int contd[50]; int contp[50]; }pessoa; void menu() { setlocale(LC_ALL,"portuguese"); printf("\n0. sair"); printf("\n1. cadastrar nova conta"); printf("\n2. depositar um valor na conta"); printf("\n3. tranferenca de conta "); printf("\n4. saque valor da conta"); printf("\n5. extrato bancario"); printf("\n escolha sua opção:"); } int banco(int opt) { setlocale(LC_ALL,"portuguese"); char conta[50],ctrans[50]; int i,j; float valor; if(cont==0) { printf("\nSeja Bem vindo ao banco do ifba!"); printf("\ndigite as informações abaixo para fazer o cadastro\n"); printf("\nqual o seu cpf:"); scanf("%s",pessoa.cpf[0]); fflush(stdin); printf("\nqual o seu nome:"); scanf("%s",pessoa.nome[0]); fflush(stdin); printf("\nqual o seu rg:"); scanf("%s",pessoa.rg[0]); fflush(stdin); strncat(pessoa.conta[0],pessoa.nome[0],3); strncat(pessoa.conta[0],pessoa.cpf[0],11); printf("\n o numero da sua conta é: %s\n",pessoa.conta[0]); cont++; system("pause"); system("cls"); } switch(opt) { case 1: printf("\nSeja Bem vindo ao banco do ifba!"); printf("\ndigite as informações abaixo para fazer o cadastro\n"); printf("\nqual o seu cpf:"); scanf("%s",pessoa.cpf[cont]); fflush(stdin); printf("\nqual o seu nome:"); scanf("%s",pessoa.nome[cont]); fflush(stdin); printf("\nqual o seu rg:"); scanf("%s",pessoa.rg[cont]); fflush(stdin); for(i=0;i<cont;i++) { if(pessoa.cpf[cont]==pessoa.cpf[i]) { printf("cpf invalido!"); exit(0); } } strncat(pessoa.conta[cont],pessoa.nome[cont],3); strncat(pessoa.conta[cont],pessoa.cpf[cont],11); printf("\no numero da sua conta é:%s\n",pessoa.conta[cont]); cont++; break; case 2: printf("\n qual o numero da conta:"); scanf("%s",conta); printf("\n%s",conta); printf("\n%s",pessoa.conta[0]); for(i=0;i<=cont;i++) { if(pessoa.conta[i]==conta) { printf("Seja Bem Vindo %s",pessoa.nome[i]); printf("\nquanto deseja deposita: "); scanf("%f",&valor); pessoa.saldo[i]+=valor; pessoa.depositof[pessoa.contd[i]][i]=valor; pessoa.contd[i]++; break; } } if(pessoa.conta[i]!=conta) { printf("conta invalida!"); } break; case 3: printf("\n qual o numero da conta: "); scanf("%s",conta); for(i=0;i<cont;i++) { if(conta==pessoa.conta[i]) { printf("\n qual o numero da conta que você ira transferir: "); scanf("%s",ctrans); for(j=0;j<cont;j++) { if(ctrans==pessoa.conta[j]) { printf("\nqual o valor que deseja transferir: "); scanf("%d",valor); if(valor<=pessoa.saldo[i]) { printf("\nvalor transferido com sucesso!"); pessoa.saldo[i]-=valor; pessoa.saldo[j]+=valor; pessoa.transf[pessoa.contt[i]][i]=valor; pessoa.contt[i]++; } else { printf("saldo insuficiente!"); } } } } cont=i; } if(i==cont) { printf("conta não cadastrada"); } break; case 4: printf("\n qual o numero da conta: "); scanf("%s",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.conta[i]) { printf("\ndigite o valor da retirada: \n"); scanf("%d",&valor); if(valor<=pessoa.saldo[i]) { printf("saque realizado com sucesso\n"); pessoa.saldo[i]-=valor; pessoa.saquef[pessoa.conts[i]][i]=valor; pessoa.conts[i]++; } else { printf("valor insuficiente!"); } } cont=i; } if(i==cont) { printf("conta não cadastrada"); } break; case 5: printf("\n qual o numero da conta: "); scanf("%s",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.conta[i]) { for(j=0;j<=pessoa.conts[i];j++) { printf("\nsaques: %f",pessoa.saquef[j][i]); } for(j=0;j<pessoa.contt[i];j++) { printf("\ntransferencias: %f",pessoa.transf[j][i]); } for(j=0;j<pessoa.contd[i];j++) { printf("\ndepositos: %f",pessoa.depositof[j][i]); } for(j=0;j<pessoa.contp[i];j++) { printf("pagamento de boleto: %f",pessoa.pagamento[j][i]); } cont=i; break; } } if(i==cont) { printf("conta não cadastrada"); } break; case 6: printf("\n qual o numero da conta: "); scanf("%s",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.conta[i]) { printf("digite o codigo de barra: "); scanf("%d",&pessoa.barra[pessoa.contp[i]][i]); printf("digite o valor da conta: "); scanf("%f",&valor); pessoa.saldo[i]-=valor; pessoa.pagamento[pessoa.contp[i]][i]=valor; pessoa.contp[i]++; break; } } } } int main() { setlocale(LC_ALL,"portuguese"); int opcao; float valor; banco(opcao); do { menu(); scanf("%d",&opcao); banco(opcao); system("pause"); system("cls"); }while(opcao!=0); }
  2. Um dos sistemas de encriptação mais antigos é atribuído a Júlio César: se uma letra a ser encriptada é a letra de número N do alfabeto, substitua-a com a letra (N + K), onde K é um número inteiro constante (César utilizava K = 3). Usualmente consideramos o espaço como deslocamento zero e todos os cálculos são realizados com módulo-27. Dessa forma, para K = 1 a mensagem Ataque ao amanhecer se torna bubrfabpabnboifdfs. a) Faça uma função que receba como parâmetros uma mensagem e um valor de K e retorne a mensagem criptografada pelo código de César. Fraquezas do algoritmo: apenas 26 chaves possíveis. b) Faça uma função que receba como parâmetros uma mensagem e um valor de K e retorne a mensagem descriptografada pelo código de César. Fraquezas do algoritmo: apenas 26 chaves possíveis. < #include <stdio.h> #include <ctype.h> int main() { char acao, mens_orig[51], mens_cifrada[51]; int i=0, k; printf("Informe a opção desejada: C- cifrar / D - decifrar: "); scanf("%c", &acao); fflush(stdin); printf("Informe o deslocamento: "); scanf("%d", &k); if(acao=='c') { printf("Informe a mensagem a cifrar: "); scanf("% [^\n]",mens_orig); while (mens_orig != '\0') { if (mens_cifrada >= 'A' && mens_cifrada <= 'Z') { mens_cifrada = toupper(mens_orig) + k; mens_cifrada -= (mens_cifrada > 'Z') ? 26 : 0; } else { mens_cifrada = mens_orig; } i++; } mens_cifrada = '\0'; printf("\nMensagem cifrada: %s\n", mens_cifrada); } else if (toupper(acao) == 'D') { printf("Informe a mensagem a decifrar: "); scanf("% [^\n]",mens_cifrada); while (mens_cifrada != '\0') { if (mens_cifrada >= 'A' && mens_cifrada <= 'Z') { mens_orig = toupper(mens_cifrada) - k; mens_orig += (mens_orig < 'A')? 26 : 0; } else { mens_orig = mens_cifrada; } i++; } mens_orig = '\0'; printf("\nMensagem decifrada: %s\n", mens_orig); } else { printf("Opção inválida\n"); } system("pause"); } >
  3. não consigo fazer com que se o cpf for igual ele entre no if < #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> struct cadastro { char cpf[50][50]; char nome[50][50]; char rg[50][50]; long int num[50]; float saldo[50]; float saquef[50]; float transf[50]; float depositof[50]; }pessoa; int menu() { setlocale(LC_ALL,"portuguese"); printf("\n0. sair"); printf("\n1. cadastrar nova conta"); printf("\n2. depositar um valor na conta"); printf("\n3. tranferenca de conta "); printf("\n4. saque valor da conta"); printf("\n5. extrato bancario"); printf("\n escolha sua opção:"); } int main() { setlocale(LC_ALL,"portuguese"); char conta; int cont=1,opcao,ctrans,i,j; float valor; short CPF; printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[0]); fflush(stdin); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[0]); fflush(stdin); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[0]); fflush(stdin); pessoa.num[0]=rand()%10000; printf("\n o numero da sua conta é: %d\n",pessoa.num[0]); system("pause"); system("cls"); do { menu(); scanf("%d",&opcao); switch(opcao) { case 1: printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[cont]); fflush(stdin); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[cont]); fflush(stdin); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[cont]); fflush(stdin); for(i=0;i<cont;i++) { if(pessoa.cpf[i]==pessoa.cpf[cont]) { printf("cpf invalido!"); break; } } pessoa.num[cont]=(rand()%10000)+cont; printf("\no numero da sua conta é: %d\n",pessoa.num[cont]); cont++; break; case 2: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<=cont;i++) { if(conta==pessoa.num[i]) { printf("Seja Bem Vindo %s",pessoa.nome[i]); printf("\nquanto deseja deposita: "); scanf("%f",&valor); pessoa.saldo[i]+=valor; pessoa.depositof[i]+=valor; break; } } if(pessoa.num[i]!=conta) { printf("conta invalida!"); } break; case 3: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.num[i]) { printf("\n qual o numero da conta que você ira transferir: "); scanf("%d",&ctrans); for(j=0;j<cont;j++) { if(ctrans==pessoa.num[j]) { printf("\nqual o valor que deseja transferir: "); scanf("%d",valor); if(valor<=pessoa.saldo[i]) { printf("\nvalor transferido com sucesso!"); pessoa.saldo[i]-=valor; pessoa.saldo[j]+=valor; pessoa.transf[i]+=valor; } else { printf("saldo insuficiente!"); } } } } } if(i==cont) { printf("conta não cadastrada"); } break; case 4: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.num[i]) { printf("\ndigite o valor da retirada: \n"); scanf("%d",&valor); if(valor<=pessoa.saldo[i]) { printf("saque realizado com sucesso\n"); pessoa.saldo[i]-=valor; pessoa.saquef[i]+=valor; } else { printf("valor insuficiente!"); } } } if(i==cont) { printf("conta não cadastrada"); } break; case 5: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.num[i]) { printf("\nsaques: %f",pessoa.saquef[i]); printf("\ntransferencias: %f",pessoa.transf[i]); printf("\ndepositos: %f",pessoa.depositof[i]); } } if(i==cont) { printf("conta não cadastrada"); } } system("pause"); system("cls"); }while(opcao!=0); } > adicionado 0 minutos depois não consigo fazer com que se o cpf for igual ele entre no if < #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> struct cadastro { char cpf[50][50]; char nome[50][50]; char rg[50][50]; long int num[50]; float saldo[50]; float saquef[50]; float transf[50]; float depositof[50]; }pessoa; int menu() { setlocale(LC_ALL,"portuguese"); printf("\n0. sair"); printf("\n1. cadastrar nova conta"); printf("\n2. depositar um valor na conta"); printf("\n3. tranferenca de conta "); printf("\n4. saque valor da conta"); printf("\n5. extrato bancario"); printf("\n escolha sua opção:"); } int main() { setlocale(LC_ALL,"portuguese"); char conta; int cont=1,opcao,ctrans,i,j; float valor; short CPF; printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[0]); fflush(stdin); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[0]); fflush(stdin); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[0]); fflush(stdin); pessoa.num[0]=rand()%10000; printf("\n o numero da sua conta é: %d\n",pessoa.num[0]); system("pause"); system("cls"); do { menu(); scanf("%d",&opcao); switch(opcao) { case 1: printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[cont]); fflush(stdin); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[cont]); fflush(stdin); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[cont]); fflush(stdin); for(i=0;i<cont;i++) { if(pessoa.cpf[i]==pessoa.cpf[cont]) { printf("cpf invalido!"); break; } } pessoa.num[cont]=(rand()%10000)+cont; printf("\no numero da sua conta é: %d\n",pessoa.num[cont]); cont++; break; case 2: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<=cont;i++) { if(conta==pessoa.num[i]) { printf("Seja Bem Vindo %s",pessoa.nome[i]); printf("\nquanto deseja deposita: "); scanf("%f",&valor); pessoa.saldo[i]+=valor; pessoa.depositof[i]+=valor; break; } } if(pessoa.num[i]!=conta) { printf("conta invalida!"); } break; case 3: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.num[i]) { printf("\n qual o numero da conta que você ira transferir: "); scanf("%d",&ctrans); for(j=0;j<cont;j++) { if(ctrans==pessoa.num[j]) { printf("\nqual o valor que deseja transferir: "); scanf("%d",valor); if(valor<=pessoa.saldo[i]) { printf("\nvalor transferido com sucesso!"); pessoa.saldo[i]-=valor; pessoa.saldo[j]+=valor; pessoa.transf[i]+=valor; } else { printf("saldo insuficiente!"); } } } } } if(i==cont) { printf("conta não cadastrada"); } break; case 4: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.num[i]) { printf("\ndigite o valor da retirada: \n"); scanf("%d",&valor); if(valor<=pessoa.saldo[i]) { printf("saque realizado com sucesso\n"); pessoa.saldo[i]-=valor; pessoa.saquef[i]+=valor; } else { printf("valor insuficiente!"); } } } if(i==cont) { printf("conta não cadastrada"); } break; case 5: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==pessoa.num[i]) { printf("\nsaques: %f",pessoa.saquef[i]); printf("\ntransferencias: %f",pessoa.transf[i]); printf("\ndepositos: %f",pessoa.depositof[i]); } } if(i==cont) { printf("conta não cadastrada"); } } system("pause"); system("cls"); }while(opcao!=0); } >
  4. conseguir resolver ja obrigado a todos apos o dia 10 publico o codigo
  5. estou tentando cria um programa parecido com o banco so pra entender como ele funciona, porém esta dando erro
  6. < #include<stdio.h> #include<stdlib.h> struct cadastro { char cpf[50][50]; char nome[50][50]; char rg[50][50]; }pessoa; struct banco { int ndc[50]; int saldo[50]; int saquef[50]; int transf[50]; int depositof[50]; }conta; int menu() { printf("\n0. sair"); printf("\n1. cadastrar nova conta"); printf("\n2. depositar um valor na conta"); printf("\n3. tranferenca de conta "); printf("\n4. saque valor da conta"); printf("\n5. extrato bancario"); printf("\n escolha sua opção:"); } int main() { int cont=1,opcao,conta,valor,ctrans,i,j; char x1[50],x2[50],x3[50],x4[50],x5[50],x6[50],x7[50],x8[50],x9[50],D1[50],D2[50]; short cpfval, CPF, cpf2; printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[0]); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[0]); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[0]); printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[0]); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[0]); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[0]); CPF=(int)pessoa.cpf[0]/100; strcpy(x1,(char)CPF /100000000); strcpy(x2,(char)(CPF/10000000)%10); strcpy(x3,(char)(CPF/1000000)%10); strcpy(x4,(char)(CPF/100000)%10); strcpy(x5,(char)(CPF/10000)%10); strcpy(x6,(char)(CPF/1000)%10); strcpy(x7,(char)(CPF/100)%10); strcpy(x8,(char)(CPF/10)%10); strcpy(x9,(char)CPF%10); strcpy(D1,((atoi(x1)*10)+(atoi(x2)*9)+(atoi(x3)*8)+(atoi(x4)*7)+ (atoi(x5)* 6)+(atoi(x6)*5)+(atoi(x7)*4)+(atoi(x8)*3)+ (atoi(x9)* 2))%11); if(atoi(D1)<2) strcpy(D1,"0"); else { strcpy(D1,((char)11-D1);/* fazer com na linha de cima e os outros também */ } D2 = ((x1*11)+(x2*10)+(x3*9)+(x4*8)+(x5*7)+(x6*6)+(x7*5)+(x8*4)+(x9*3)+(D1*2))%11; if(D2<2) { D2=0; } else { D2=11 - D2; } cpf2 = D1*10+D2; cpfval = CPF*100+cpf2; if(cpfval != cpfvali) { printf("numero invalido o programa sera encerrado!"); system("pause"); exit(0); } conta.ndc[0]=cpf2; printf("\n o numero da sua conta é: %d",conta.ndc[0]); system("pause"); system("cls"); menu(); printf("escolha sua opção: "); scanf("%d",&opcao); do { menu(); scanf("%d",opcao); switch(opcao) { case 1: printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[cont]); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[cont]); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[cont]); CPF=(int)pessoa.cpf[cont]/100; strcpy(x1,(char)CPF /100000000); strcpy(x2,(char)(CPF/10000000)%10); strcpy(x3,(char)(CPF/1000000)%10); strcpy(x4,(char)(CPF/100000)%10); strcpy(x5,(char)(CPF/10000)%10); strcpy(x6,(char)(CPF/1000)%10); strcpy(x7,(char)(CPF/100)%10); strcpy(x8,(char)(CPF/10)%10); strcpy(x9,(char)CPF%10); strcpy(D1,((atoi(x1)*10)+(atoi(x2)*9)+(atoi(x3)*8)+(atoi(x4)*7)+ (atoi(x5)* 6)+(atoi(x6)*5)+(atoi(x7)*4)+(atoi(x8)*3)+ (atoi(x9)* 2))%11); if(atoi(D1)<2) strcpy(D1,"0"); else { D1 = 11 - D1;/* fazer com na linha de cima e os outros também */ } D2 = ((x1*11)+(x2*10)+(x3*9)+(x4*8)+(x5*7)+(x6*6)+(x7*5)+(x8*4)+(x9*3)+(D1*2))%11; if(D2<2) { D2=0; } else { D2=11 - D2; } cpf2 = D1*10+D2; cpfval = CPF*100+cpf2; if(cpfval != cpfvali) { printf("numero invalido o programa sera encerrado!"); exit(0); } conta.ndc[0]=cpf2; printf("\n o numero da sua conta é: %d",conta.ndc[0]); system("pause"); cont++; break; case 2: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\nquanto deseja deposita: "); scanf("%d",&valor); if(valor<=conta.saldo) { conta.saldo+=saldo; conta.depositof+=saldo; } break; } } break; case 3: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\n qual o numero da conta que você ira transferir: "); scanf("%d",&ctrans); for(j=0;j<cont;j++) { if(ctrans==conta.ndc[j]) { printf("\nqual o valor que deseja transferir: "); scanf("%d",valor); if(valor<=conta.saldo) { printf("\nvalor transferido com sucesso!"); conta.saldo-=valor; conta.saldo[j]+=valor; conta.transf+=valor; } else { printf("saldo insuficiente!"); } } } } } if(i==cont) { printf("conta não cadastrada"); } break; case 4: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\ndigite o valor da retirada: "); scanf("%d",&valor); if(valor==conta.saldo) { Printf("\nsaque realizado com sucesso!"); conta.saldo-=valor; conta.saquef+=valor; } else { printf("valor insuficiente!"); } } } if(i==cont) { printf("conta não cadastrada"); } break; case 5: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\nsaques: %d",conta.saquesf); printf("\ntransferencias: %d",conta.trnsf); printf("\ndepositos: %d",conta.depositof); } } if(i==cont) { printf("conta não cadastrada"); } system("pause"); system("cls"); menu(); printf("escolha sua opção: "); scanf("%d",&opcao); } }while(opcao==0); } >
  7. esse código cadastra a pessoa e faz a ligação dela como se fosse um banco porém esta dando erro pois não consigo pega a parte da strucks < #include<stdio.h> #include<stdlib.h> struct cadastro { char cpf[50][50]; char nome[50][50]; char rg[50][50]; }pessoa; struct banco { int ndc[50]; int saldo[50]; int saquef[50]; int transf[50]; int depositof[50]; }conta; int menu() { printf("\n0. sair"); printf("\n1. cadastrar nova conta"); printf("\n2. depositar um valor na conta"); printf("\n3. tranferenca de conta "); printf("\n4. saque valor da conta"); printf("\n5. extrato bancario"); printf("\n escolha sua opção:"); } int main() { int cont=1,opcao,conta,valor,ctrans,i,j; char x1[50] , x2[50] , x3[50] , x4[50] , x5[50] , x6[50] , x7[50] , x8[50] , x9[50], D1[50] , D2[50]; short cpfval, CPF, cpf2; printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[0]); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[0]); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[0]); CPF=pessoa.cpf[0]/100; x1 = CPF /100000000; x2 = (CPF/10000000)%10; x3 = (CPF/1000000)%10; x4 = (CPF/100000)%10; x5 = (CPF/10000)%10; x6 = (CPF/1000)%10; x7 = (CPF/100)%10; x8 = (CPF/10)%10; x9 = CPF%10; D1 = ((x1*10)+(x2*9)+(x3*8)+(x4*7)+(x5*6)+(x6*5)+(x7*4)+(x8*3)+(x9*2))%11; if(D1<2) D1 = 0; else { D1 = 11 - D1; } D2 = ((x1*11)+(x2*10)+(x3*9)+(x4*8)+(x5*7)+(x6*6)+(x7*5)+(x8*4)+(x9*3)+(D1*2))%11; if(D2<2) { D2=0; } else { D2=11 - D2; } if(D1<0||D2<0) { printf("numero invalido o programa sera encerrado!"); exit(0); } conta.ndc[0]=rand()%5000000; printf("\n o numero da sua conta é: %d",conta.ndc[0]); system("pause"); system("cls"); menu(); printf("escolha sua opção: "); scanf("%d",&opcao); do { menu(); scanf("%d",opcao); switch(opcao) { case 1: printf("\nqual o seu cpf: "); scanf("%s",pessoa.cpf[cont]); printf("\nqual o seu nome: "); scanf("%s",pessoa.nome[cont]); printf("\nqual o seu rg: "); scanf("%s",pessoa.rg[cont]); x1 = CPF /100000000; x2 = (CPF/10000000)%10; x3 = (CPF/1000000)%10; x4 = (CPF/100000)%10; x5 = (CPF/10000)%10; x6 = (CPF/1000)%10; x7 = (CPF/100)%10; x8 = (CPF/10)%10; x9 = CPF%10; D1 = ((x1*10)+(x2*9)+(x3*8)+(x4*7)+(x5*6)+(x6*5)+(x7*4)+(x8*3)+(x9*2))%11; if(D1<2) { D1 = 0; } else { D1 = 11 - D1; } D2 = ((x1*11)+(x2*10)+(x3*9)+(x4*8)+(x5*7)+(x6*6)+(x7*5)+(x8*4)+(x9*3)+(D1*2))%11; if(D2<2) { D2=0; } else { D2=11 - D2; } if(D1<0||D2<0) { printf("numero invalido o programa sera encerrado!"); exit(0); } cont++; break; case 2: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\nquanto deseja deposita: "); scanf("%d",&valor); if(valor<=conta.saldo) { conta.saldo+=saldo; conta.depositof+=saldo; } break; } } break; case 3: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\n qual o numero da conta que você ira transferir: "); scanf("%d",&ctrans); for(j=0;j<cont;j++) { if(ctrans==conta.ndc[j]) { printf("\nqual o valor que deseja transferir: "); scanf("%d",valor); if(valor<=conta.saldo) { printf("\nvalor transferido com sucesso!"); conta.saldo-=valor; conta.saldo[j]+=valor; conta.transf+=valor; } else { printf("saldo insuficiente!"); } } } } } if(i==cont) { printf("conta não cadastrada"); } break; case 4: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\ndigite o valor da retirada: "); scanf("%d",&valor); if(valor==conta.saldo) { Printf("\nsaque realizado com sucesso!"); conta.saldo-=valor; conta.saquef+=valor; } else { printf("valor insuficiente!"); } } } if(i==cont) { printf("conta não cadastrada"); } break; case 5: printf("\n qual o numero da conta: "); scanf("%d",&conta); for(i=0;i<cont;i++) { if(conta==conta.ndc) { printf("\nsaques: %d",conta.saquesf); printf("\ntransferencias: %d",conta.trnsf); printf("\ndepositos: %d",conta.depositof); } } if(i==cont) { printf("conta não cadastrada"); } system("pause"); system("cls"); menu(); printf("escolha sua opção: "); scanf("%d",&opcao); } }while(opcao==0); } >
  8. code<' #include <stdio.h> #include <stdlib.h> #include<math.h> #include<locale.h> #define SIZE 255 #define ALG 17 int number,opcao=6; // Esta função converte um número decimal para a base 2, 8 ou 16. // Recebe como parâmetro um número decimal (num_dec), e a base (base) cujo número será convertido. void decToBase(int num_dec, int base) { setlocale(LC_ALL,"Portuguese"); char resto[ALG] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}, num_conv[SIZE]; int indx = 0; // Este loop realiza as operações de divisão. Os restos são guardados no vetor 'num_conv' while(num_dec > 0) { num_conv[indx] = resto[num_dec % base]; num_dec /= base; indx++; } // Exclui o caractere especial '\0' do final da string indx -= 1; // Utilizado para identificar a saída do programa switch(base) { case 2 : printf("BINARIO: "); break; case 8 : printf("OCTAL: "); break; case 16 : printf("HEXADECIMAL: "); break; } // Inverte a string contida no vetor num_conv for(indx; indx >= 0; indx--) printf("%c", num_conv[indx]); printf("\n"); } // Esta função permite converter um número na base 2, 8 ou 16 para a base decimal. // Recebe como parâmetro uma string (representação do número), e um número inteiro que // determina em qual base está o número do primeiro parâmetro. void baseToDec(char* num_base, int base) //parti para copiar para case { setlocale(LC_ALL, "Portuguese"); int indx = 0, exp = 0, cont = 0, dec = 0, num = 0; // Este loop determina o tamanho da string while(num_base[cont] != '\0') { cont++; } // Neste loop, a string é percorrida de trás para frente. Cada caractere é convertido // em um número inteiro, multiplicado pela base elevada ao expoente (0..Comprimento da string) // e somado ao valor da variável 'dec', que recebe as somas sucessivas. for(exp, indx=(cont-1); exp < cont; exp++, indx--) { if(base == 16) { switch(num_base[indx]) { case 'A' : case 'a' : num = 10; break; case 'B' : case 'b' : num = 11; break; case 'C' : case 'c' : num = 12; break; case 'D' : case 'd' : num = 13; break; case 'E' : case 'e' : num = 14; break; case 'F' : case 'f' : num = 15; break; default : num = (int)num_base[indx] - (int)'0'; } } else num = (int)num_base[indx] - (int)'0'; // Aqui avalia se o usuário digitou um número válido ou não! if(num > (base-1) || num < 0) { printf("Você informou um número inválido!\n"); exit(0); } dec += num * pow(base, exp); } // O número convertido para decimal é exibido printf("DECIMAL: %d\n", dec); number=dec; } // Função que imprime o menu da calculadora void menu(void) { setlocale(LC_ALL, "Portuguese"); printf("\nBEM-VINDO AO CONVERSOR DE BASES NUMERICAS\n"); printf("=========================================================\n\n"); printf("******* ******** * *\n"); printf("* * * *\n"); printf("****** ****** * *\n"); printf("* * * *\n"); printf("******* * *\n"); printf("=========================================================\n\n"); printf("[ 1 ] DECIMAL -> BINARIO, OCTAL e HEXADECIMAL\n"); printf("[ 2 ] BINARIO -> DECIMAL, OCTAL e HEXADECIMAL\n"); printf("[ 3 ] OCTAL -> DECIMAL, BINARIO e HEXADECIMAL\n"); printf("[ 4 ] HEXADECIMAL -> DECIMAL, BINARIO, OCTAL\n"); printf("[ 0 ] SAIR\n"); printf("*********************************************************\n\n"); } // Função que chama as funções correspondentes à opção escolhida void process_calc(int opt) { setlocale(LC_ALL, "Portuguese"); char str[SIZE]; char calc[SIZE]; char* num_base; int base; int indx = 0, exp = 0, cont = 0, dec = 0, num = 0; switch(opt) { case 0 : printf("CALCULADORA ENCERRADA!\n"); exit(0); case 1 : printf("DECIMAL: "); scanf("%d", &number); decToBase(number, 2); decToBase(number, 8); decToBase(number, 16); break; case 2 : printf("BINARIO: "); scanf("%s", str); num_base= str; base=2; // Este loop determina o tamanho da string while(num_base[cont] != '\0') { cont++; } // Neste loop, a string é percorrida de trás para frente. Cada caractere é convertido // em um número inteiro, multiplicado pela base elevada ao expoente (0..Comprimento da string) // e somado ao valor da variável 'dec', que recebe as somas sucessivas. for(exp, indx=(cont-1); exp < cont; exp++, indx--) { num = (int)num_base[indx] - (int)'0'; // Aqui avalia se o usuário digitou um número válido ou não! if(num > (base-1) || num < 0) { printf("Você informou um número inválido!\n"); exit(0); } dec += num * pow(base, exp); } // O número convertido para decimal é exibido printf("DECIMAL: %d\n", dec); number=dec; decToBase(number, 8); decToBase(number, 16); break; case 3 : printf("OCTAL = "); scanf("%s", str); num_base= str; base=8; // Este loop determina o tamanho da string while(num_base[cont] != '\0') { cont++; } // Neste loop, a string é percorrida de trás para frente. Cada caractere é convertido // em um número inteiro, multiplicado pela base elevada ao expoente (0..Comprimento da string) // e somado ao valor da variável 'dec', que recebe as somas sucessivas. for(exp, indx=(cont-1); exp < cont; exp++, indx--) { num = (int)num_base[indx] - (int)'0'; // Aqui avalia se o usuário digitou um número válido ou não! if(num > (base-1) || num < 0) { printf("Você informou um número inválido!\n"); exit(0); } dec += num * pow(base, exp); } // O número convertido para decimal é exibido printf("DECIMAL: %d\n", dec); number=dec; decToBase(number, 2); decToBase(number, 16); break; case 4 : printf("HEXADECIMAL = "); scanf("%s", str); num_base= str; base=16; // Este loop determina o tamanho da string while(num_base[cont] != '\0') { cont++; } // Neste loop, a string é percorrida de trás para frente. Cada caractere é convertido // em um número inteiro, multiplicado pela base elevada ao expoente (0..Comprimento da string) // e somado ao valor da variável 'dec', que recebe as somas sucessivas. for(exp, indx=(cont-1); exp < cont; exp++, indx--) { if(base == 16) { switch(num_base[indx]) { case 'A' : case 'a' : num = 10; break; case 'B' : case 'b' : num = 11; break; case 'C' : case 'c' : num = 12; break; case 'D' : case 'd' : num = 13; break; case 'E' : case 'e' : num = 14; break; case 'F' : case 'f' : num = 15; break; default : num = (int)num_base[indx] - (int)'0'; } } else { num = (int)num_base[indx] - (int)'0'; } // Aqui avalia se o usuário digitou um número válido ou não! if(num > (base-1) || num < 0) { printf("Você informou um número inválido!\n"); exit(0); } dec += num * pow(base, exp); } // O número convertido para decimal é exibido printf("DECIMAL: %d\n", dec); number=dec; decToBase(number, 2); decToBase(number, 8); break; default : printf("OPÇÃO NÃO PERMITIDA!\nTENTE NOVAMENTE\n"); break; } } int main(void) { while(opcao!=0) { setlocale(LC_ALL, "Portuguese"); menu(); printf("QUAL OPERACAO DESEJA REALIZAR? "); scanf("%d", &opcao); process_calc(opcao); system("pause"); system("cls"); } return 0; } '>
  9. @Flávio Pedroza resolvi este problema porém falto outro problema que ele nao converte de binario para hexa e octal e nem de hexa para octal e binario e nem de octal para hexa e binario pois nao consigo pega a variavel de la de dentro adicionado 7 minutos depois #include <stdio.h> #include <stdlib.h> #include <math.h> #define SIZE 255 #define ALG 17 int number,opcao; // Esta função converte um número decimal para a base 2, 8 ou 16. // Recebe como parâmetro um número decimal (num_dec), e a base (base) cujo número será convertido. void decToBase(int num_dec, int base) { char resto[ALG] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}, num_conv[SIZE]; int indx = 0; // Este loop realiza as operações de divisão. Os restos são guardados no vetor 'num_conv' while(num_dec > 0) { num_conv[indx] = resto[num_dec % base]; num_dec /= base; indx++; } // Exclui o caractere especial '\0' do final da string indx -= 1; // Utilizado para identificar a saída do programa switch(base) { case 2 : printf("BINÁŔIO: "); break; case 8 : printf("OCTAL: "); break; case 16 : printf("HEXADECIMAL: "); break; } // Inverte a string contida no vetor num_conv for(indx; indx >= 0; indx--) printf("%c", num_conv[indx]); printf("\n"); switch(base) { int num_salva; case 2: if(base=2) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; case 8: if(base=8) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; case 16: if(base=16) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; } } // Esta função permite converter um número na base 2, 8 ou 16 para a base decimal. // Recebe como parâmetro uma string (representação do número), e um número inteiro que // determina em qual base está o número do primeiro parâmetro. void baseToDec(char* num_base, int base) { int indx = 0, exp = 0, cont = 0, dec = 0, num = 0; // Este loop determina o tamanho da string while(num_base[cont] != '\0') { cont++; } // Neste loop, a string é percorrida de trás para frente. Cada caractere é convertido // em um número inteiro, multiplicado pela base elevada ao expoente (0..Comprimento da string) // e somado ao valor da variável 'dec', que recebe as somas sucessivas. for(exp, indx=(cont-1); exp < cont; exp++, indx--) { if(base == 16) { switch(num_base[indx]) { case 'A' : case 'a' : num = 10; break; case 'B' : case 'b' : num = 11; break; case 'C' : case 'c' : num = 12; break; case 'D' : case 'd' : num = 13; break; case 'E' : case 'e' : num = 14; break; case 'F' : case 'f' : num = 15; break; default : num = (int)num_base[indx] - (int)'0'; } } else num = (int)num_base[indx] - (int)'0'; // Aqui avalia se o usuário digitou um número válido ou não! if(num > (base-1) || num < 0) { printf("Você informou um número inválido!\n"); exit(0); } dec += num * pow(base, exp); } // O número convertido para decimal é exibido printf("DECIMAL: %d\n", dec); } // Função que imprime o menu da calculadora void menu(void) { printf("\nBEM-VINDO AO CONVERSOR DE BASES NUMÉRICAS\n"); printf("QUAL OPERAÇÃO DESEJA REALIZAR? \n"); printf("[ 1 ] DECIMAL -> BINARIO, OCTAL e HEXADECIMAL\n"); printf("[ 2 ] BINARIO -> DECIMAL, OCTAL e HEXADECIMAL\n"); printf("[ 3 ] OCTAL -> DECIMAL, BINARIO e HEXADECIMAL\n"); printf("[ 4 ] HEXADECIMAL -> DECIMAL, BINARIO, OCTAL\n"); printf("[ 0 ] SAIR\n"); } // Função que chama as funções correspondentes à opção escolhida void process_calc(int opt) { char str[SIZE]; char calc[SIZE]; int cont=0,cont1; switch(opt) { case 0 : printf("CALCULADORA ENCERRADA!\n"); exit(0); case 1 : printf("DECIMAL: "); scanf("%d", &number); decToBase(number, 2); decToBase(number, 8); decToBase(number, 16); break; case 2 : printf("BINÁRIO: "); scanf("%s", str); baseToDec(str, 2); decToBase(number, 8); decToBase(number, 16); break; case 3 : printf("OCTAL = "); scanf("%s", str); baseToDec(str, 8); decToBase(number, 2); decToBase(number, 16); break; case 4 : printf("HEXADECIMAL = "); scanf("%s", str); baseToDec(str, 16); decToBase(number, 2); decToBase(number, 8); break; default : printf("OPÇÃO NÃO PERMITIDA!\nTENTE NOVAMENTE\n"); break; } } int main(void) { menu(); printf("QUAL OPERAÇÃO DESEJA REALIZAR? "); scanf("%d", &opcao); process_calc(opcao); return 0; }
  10. alguem pode me ajuda a resolver o problema de conversão ? <#include <stdio.h> #include <stdlib.h> #define SIZE 255 #define ALG 17 int number,opcao; // Esta função converte um número decimal para a base 2, 8 ou 16. // Recebe como parâmetro um número decimal (num_dec), e a base (base) cujo número será convertido. void decToBase(int num_dec, int base) { char resto[ALG] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}, num_conv[SIZE]; int indx = 0; // Este loop realiza as operações de divisão. Os restos são guardados no vetor 'num_conv' while(num_dec > 0) { num_conv[indx] = resto[num_dec % base]; num_dec /= base; indx++; } // Exclui o caractere especial '\0' do final da string indx -= 1; // Utilizado para identificar a saída do programa switch(base) { case 2 : printf("BINÁŔIO: "); break; case 8 : printf("OCTAL: "); break; case 16 : printf("HEXADECIMAL: "); break; } // Inverte a string contida no vetor num_conv for(indx; indx >= 0; indx--) printf("%c", num_conv[indx]); printf("\n"); switch(base) { int num_salva; case 2: if(base=2) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; case 8: if(base=8) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; case 16: if(base=16) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; } } // Esta função permite converter um número na base 2, 8 ou 16 para a base decimal. // Recebe como parâmetro uma string (representação do número), e um número inteiro que // determina em qual base está o número do primeiro parâmetro. void baseToDec(char* num_base, int base) { int indx = 0, exp = 0, cont = 0, dec = 0, num = 0; // Este loop determina o tamanho da string while(num_base[cont] != '\0') { cont++; } // Neste loop, a string é percorrida de trás para frente. Cada caractere é convertido // em um número inteiro, multiplicado pela base elevada ao expoente (0..Comprimento da string) // e somado ao valor da variável 'dec', que recebe as somas sucessivas. for(exp, indx=(cont-1); exp < cont; exp++, indx--) { if(base == 16) { switch(num_base[indx]) { case 'A' : case 'a' : num = 10; break; case 'B' : case 'b' : num = 11; break; case 'C' : case 'c' : num = 12; break; case 'D' : case 'd' : num = 13; break; case 'E' : case 'e' : num = 14; break; case 'F' : case 'f' : num = 15; break; default : num = (int)num_base[indx] - (int)'0'; } } else num = (int)num_base[indx] - (int)'0'; // Aqui avalia se o usuário digitou um número válido ou não! if(num > (base-1) || num < 0) { printf("Você informou um número inválido!\n"); exit(0); } dec += num * pow(base, exp); } // O número convertido para decimal é exibido printf("DECIMAL: %d\n", dec); } // Função que imprime o menu da calculadora void menu(void) { printf("\nBEM-VINDO AO CONVERSOR DE BASES NUMÉRICAS\n"); printf("QUAL OPERAÇÃO DESEJA REALIZAR? \n"); printf("[ 1 ] DECIMAL -> BINARIO, OCTAL e HEXADECIMAL\n"); printf("[ 2 ] BINARIO -> DECIMAL, OCTAL e HEXADECIMAL\n"); printf("[ 3 ] OCTAL -> DECIMAL, BINARIO e HEXADECIMAL\n"); printf("[ 4 ] HEXADECIMAL -> DECIMAL, BINARIO, OCTAL\n"); printf("[ 0 ] SAIR\n"); } // Função que chama as funções correspondentes à opção escolhida void process_calc(int opt) { char str[SIZE]; char calc[SIZE]; int cont=0,cont1; switch(opt) { case 0 : printf("CALCULADORA ENCERRADA!\n"); exit(0); case 1 : printf("DECIMAL: "); scanf("%d", &number); decToBase(number, 2); decToBase(number, 8); decToBase(number, 16); break; case 2 : printf("BINÁRIO: "); scanf("%s", str); baseToDec(str, 2); decToBase(number, 8); decToBase(number, 16); break; case 3 : printf("OCTAL = "); scanf("%s", str,3); baseToDec(str, 8); decToBase(number, 2); decToBase(number, 16); break; case 4 : printf("HEXADECIMAL = "); scanf("%s", str); baseToDec(str, 16); decToBase(number, 2); decToBase(number, 8); break; default : printf("OPÇÃO NÃO PERMITIDA!\nTENTE NOVAMENTE\n"); break; } } int main(void) { menu(); printf("QUAL OPERAÇÃO DESEJA REALIZAR? "); scanf("%d", &opcao); process_calc(opcao); return 0; } >

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...