Ir ao conteúdo
  • Cadastre-se

Eizy

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

Reputação

5
  1. Entendido! Agradeço por sua ajuda. @Mauro Britivaldo
  2. @Mauro Britivaldo Sim, mas a questao é que eu gostaria que eu seleciona-se por meio de uma variavel o tamanho do meu vetor, em c# este jeito da certo, mas em c/c++ é diferente.... Então não é possível desta forma?
  3. Fala galera, preciso de uma ajuda.... Gostaria de saber se é possível criar uma variável para que ela ou o usuário definir o tamanho do meu vetor sendo de strings/caracter ou inteiros. No caso se for no main é fácil fazer aquela "gambiarra" mas quando for passar em modulo é possível? FUNCIONA #include <iostream> using namespace std; int main(int argc, char *argv[]) { int var = 10; // ou colocar posteriormente uma entrada para o usuario digitar int vetor[var]; for(int i = 0;i < var; i++){ vetor[i] = i+1; cout << vetor[i] << endl; } return 0; } NÃO FUNCIONA #include <iostream> using namespace std; void vetori(int var,int vetor[var]){ for(int i = 0;i < var; i++){ cout << vetor[i] << endl; } } int main(int argc, char *argv[]) { int var = 10; // ou colocar posteriormente uma entrada para o usuario digitar int vetor[var]; for(int i = 0;i < var; i++){ vetor[i] = i+1; } vetori(var,vetor); return 0; } Me ajudem aii guys
  4. Eizy

    C++ C++ Validar inteiro digitado

    Agradeço a ajuda de ambos @Mauro Britivaldo e @cyer me ajudaram muito agora deu certo! Obrigado. Vou criar um post sobre vetores pra tirar uma outra dúvida, ficarei feliz se me ajudarem também. valeu
  5. Eizy

    C++ C++ Validar inteiro digitado

    @Mauro Britivaldo Então continuo na mesma questão ainda não limpando, talvez eu tenha que recorrer ao atoi porém ainda quero uma solução para validar o inteiro sem que aja looping, talvez isso ocasione por estar num modulo?
  6. Eizy

    C++ C++ Validar inteiro digitado

    @cyer @Mauro Britivaldo valeu galera, porém fazer com que diga que esta errado seguiu meu raciocínio deste o principio maaas o maior problema e que mesmo que volte e eu ate tente colocar cod = 0 ele ainda ira retornar com a entrada antiga apontando que digitei errado e voltando ao looping. Existe alguma maneira de limpar esta variável da memoria zerar ou algo similar para que ele deixei de entrar no IF apos retornar?
  7. Fala galera, preciso de uma ajuda ai de vocês pra tirar essa dúvida Quero saber de um jeito para que quando o usuário digitar algo diferente de inteiros ou seja caracteres ele retorne para o menu... Ja tentei algumas formas porém a variável continua com o loop. Se tiver alguma opção para limpar a variável.. NO CASO QUERO VALIDAR O MENU #include <iostream> #include<stdlib.h> #include<stdio.h> #include<windows.h> #include<locale.h> using namespace std; int validar(int cod){ if(isalnum(cod)) { return 0; } else { return 1; } } /*<-----------TELA DE CARREGAMENTO----------->*/ void carregando(int *cr = new int[101]){ for(int i = 0; i < 101; i++) { system("cls"); *(cr + i) = i; cout << "Voltando ao menu principal\n"<< "Aguarde....."<<*(cr+i)<<"%"; int randow = rand() % 10; Sleep(randow); } } /*<------ENTRADA DE ERROS-------->*/ void error(){ system("cls"); cout <<"Ops... Acho que você esqueceu de alguma coisa! Volte ao menu\n\n"; system("pause"); carregando(); } /*<---------CADASTRO DE PRODUTOS--------->*/ void cadastro(char itens[3][50],int qtd[3],int &valido) { for(int i = 0; i < 3; i++) { cout << "\nProduto: "; cin >> itens[i]; cout <<"Estoque: "; cin >> qtd[i]; } valido = 1; cout << "\nProdutos incluidos com sucesso! Volte ao menu.\n\n"; system("pause"); carregando(); } /* <------EXIBIR PRODUTOS INCLUIDOS-------->*/ void exibir(char itens[3][50], int qtd[3],char &resposta) { cout << "\n***ESTOQUE***\n\n"; for(int i = 0;i < 3;i++){ cout <<itens[i] << ": " << qtd[i] << endl; } resposta = 's'; cout << "\nPressione para voltar ao menu\n\n"; system("pause"); carregando(); } /*<----------REMOVER ESTOQUE--------->*/ void excluir(char itens[3][50],int qtd[3], char &resposta){ int cod; cout << "\n***MENU REMOVER***\n"; for(int i = 0; i < 3; i++) { cout << endl << i+1 << " - " << itens[i] <<"\n"; } cout << "\n\nDigite: "; cin >> cod; qtd[cod-1]--; system("cls"); cout <<"\nEXCLUIDO COM SUCESSO\n"; cout << itens[cod-1] << " Total: " << qtd[cod-1] << endl; cout <<"\nVoltando ao menu\n"; system("pause"); resposta = 's'; carregando(); } /*<----------INCLUIR ESTOQUE--------->*/ void incluir(char itens[3][50],int qtd[3], char &resposta){ int cod; cout << "\n***MENU INCLUIR***\n"; for(int i = 0; i < 3 ; i++) { cout << endl << i+1 << " - " << itens[i] <<"\n"; } cout << "\n\nDigite: "; cin >> cod; qtd[cod-1]++; system("cls"); cout <<"\nINCLUIDO COM SUCESSO\n"; cout << itens[cod-1] << " Total: " << qtd[cod-1] << endl; cout <<"\nVoltando ao menu\n"; system("pause"); resposta = 's'; carregando(); } /* <---------MENU DE ESCOLHA--------> */ void menu(int cod, char itens[3][50],int qtd[3],char &resposta, int &valido) { cout << "***MENU***\n1 - INCLUIR ESTOQUE\n2 - EXIBIR ESTOQUE\n3 - REMOVER ESTOQUE\n4 - INCLUIR ESTOQUE\n5 - SAIR\n\nDigite: "; cin >> cod; switch(cod) { case 1: cadastro(itens,qtd,valido); break; case 2: if(valido == 1) exibir(itens,qtd,resposta); else error(); break; case 3: if(valido == 1) excluir(itens,qtd,resposta); else error(); break; case 4: if(valido == 1) incluir(itens,qtd,resposta); else error(); break; case 5: resposta = 'n'; break; default: error(); resposta = 's'; break; } } /* <---------PROGRAMA PRINCIPAL--------> */ int main(int argc, char *argv[]) { setlocale(LC_ALL,"Portuguese"); int cod=NULL,estoque[3], valido = 0; char resposta = 's',itens[3][50]; do{ system("cls"); menu(cod,itens,estoque,resposta,valido); if(resposta !='s'){ do{ system("cls"); cout << "FIQUE MAIS UM POUCO! S/N: "; cin >> resposta; }while(resposta != 's' && resposta !='S' && resposta !='n' && resposta !='N'); } else continue; }while(resposta == 's' || resposta == 'S'); return 0; }
  8. Obrigado pela ajuda pessoal agora consegui entender, não sabia sobre o método atoi... Mas tenho só mais uma dúvida no caso que coloquei como string ele se limita apenas a um valor de 1 milhão, existe a possibilidade de ultrapassar ? Ficou assim o código com 100% das validações certinha... Falta apenas saber se posso colocar 1bilhão ou algo em torno. #include<stdio.h> #include<stdlib.h> #include<locale.h> // P = Preço -- CP = Código país -- S = Seguro -- IM = Imposto -- VT = Valor transporte -- i = contator. // CPE = Carga perigosa -- VIA = Meio de transporte. int main(){ setlocale(LC_ALL,"Portuguese"); int P,CP,S,IM,VT,i; char CPE = 'C',VIA = 'P'; P = CP = S = IM = VT = 0; for(i=1;i<=5;i++){ printf("Digite o preço da mercadoria %d: ",i); scanf("%d",&P); while(P < 1){ printf("Digite novamente!\n"); printf("Preço da mercadoria %d: ",i); scanf("%d",&P); } if(P <= 100){ IM = P*0.05; } else{ IM = P*0.1; } fflush(stdin); printf("Digite meio de transporte:\nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); while(VIA != 'T' && VIA != 't' && VIA != 'F' && VIA !='f' && VIA != 'A' && VIA !='a'){ printf("Via incorreta!\n"); printf("Digite meio de transporte: \nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); } printf("Digite origem do transporte - \n1 - EUA \n2 - México \n3 - outros\n Código: "); scanf("%d",&CP); while(CP < 1 || CP > 3){ printf("Código errado!\n"); printf("Digite o código novamente: "); scanf("%d",&CP); } if(CP == 2 || VIA == 'A' || VIA =='a'){ S = P/2; } else{ S = 0; } printf("Carga é perigosa? S/N: "); fflush(stdin); CPE = getche(); getche(); printf("\n\n"); while(CPE != 'S' && CPE !='s' && CPE != 'N' && CPE != 'n'){ printf("Digitação inválida!\n"); printf("Carga é perigosa? S/N: "); CPE = getche(); getche(); printf("\n\n"); } if(CPE == 'S' || CPE == 's'){ switch(CP){ case 1: VT = 50; break; case 2: VT = 35; break; default: VT = 24; break; } } else switch(CP){ case 1: VT = 12; break; case 2: VT = 35; break; default: VT = 60; break; } printf("Detalhes produto %d\n\n",i); printf("Origem: %d\n",CP); printf("Carga perigosa: %c\n",CPE); printf("Tipo de envio: %c\n\n",VIA); printf("Valor do produto original: ...............%d\n",P); printf("Imposto sobre o produto:..................%d\n",IM); printf("Seguro do produto.........................%d\n",S); printf("Valor do transporte.......................%d\n",VT); P = P+IM+S+VT; printf("Total.....................................%d\n\n",P); } system("pause"); return 0; }
  9. Galera por favor é o seguinte, nesse exercício proposto tive apenas um problema que no caso é a continuação do programa na leitura do código do pais (CP) e preço(P) após eu colocar letra ele entra em um loop infinito! Deem uma força ai pro novato. #include<stdio.h> #include<stdlib.h> #include<locale.h> // P = Preço -- CP = Código país -- S = Seguro -- IM = Imposto -- VT = Valor transporte -- i = contator. // CPE = Carga perigosa -- VIA = Meio de transporte. int main(){ setlocale(LC_ALL,"Portuguese"); int P,CP,S,IM,VT,i; char CPE = 'C',VIA = 'P'; P = CP = S = IM = VT = 0; for(i=1;i<=5;i++){ printf("Digite o preço da mercadoria %d: ",i); scanf("%d",&P); while(P < 1){ printf("Digite novamente!\n"); printf("Preço da mercadoria %d: ",i); scanf("%d",&P); } if(P <= 100){ IM = P*0.05; } else{ IM = P*0.1; } fflush(stdin); printf("Digite meio de transporte:\nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); while(VIA != 'T' && VIA != 't' && VIA != 'F' && VIA !='f' && VIA != 'A' && VIA !='a'){ printf("Via incorreta!\n"); printf("Digite meio de transporte: \nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); } printf("Digite origem do transporte - \n1 - EUA \n2 - México \n3 - outros\n Código: "); scanf("%d",&CP); while(CP < 1 || CP > 3){ printf("Código errado!\n"); printf("Digite o código novamente: "); scanf("%d",&CP); } if(CP == 2 || VIA == 'A' || VIA =='a'){ S = P/2; } else{ S = 0; } printf("Carga é perigosa? S/N: "); fflush(stdin); CPE = getche(); getche(); printf("\n\n"); while(CPE != 'S' && CPE !='s' && CPE != 'N' && CPE != 'n'){ printf("Digitação inválida!\n"); printf("Carga é perigosa? S/N: "); CPE = getche(); getche(); printf("\n\n"); } if(CPE == 'S' || CPE == 's'){ switch(CP){ case 1: VT = 50; break; case 2: VT = 35; break; default: VT = 24; break; } } else switch(CP){ case 1: VT = 12; break; case 2: VT = 35; break; default: VT = 60; break; } printf("Detalhes produto %d\n\n",i); printf("Origem: %d\n",CP); printf("Carga perigosa: %c\n",CPE); printf("Tipo de envio: %c\n\n",VIA); printf("Valor do produto original: ...............%d\n",P); printf("Imposto sobre o produto:..................%d\n",IM); printf("Seguro do produto.........................%d\n",S); printf("Valor do transporte.......................%d\n",VT); P = P+IM+S+VT; printf("Total.....................................%d\n\n",P); } system("pause"); return 0; } Se puder detalhar o motivo agradeço!
  10. Só para estudos mesmo. Estou começando a programar e qualquer desafio é bem vindo e achei interessante como funciona essa forma de validação de CPF.
  11. Obrigado em, não sabia sobre esse long long. #include <stdio.h> int main ( ) { int cpf2,x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9, D1 , D2; long long CPF,cpfval,cpfvali; printf("\nDigite o CPF: "); scanf("%lld",&cpfvali); printf("\nDigite o CPF: "); scanf("%9lld",&CPF); 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; } printf("x1: %d\n",x1); printf("x2: %d\n",x2); printf("x3: %d\n",x3); printf("x4: %d\n",x4); printf("x5: %d\n",x5); printf("x6: %d\n",x6); printf("x7: %d\n",x7); printf("x8: %d\n",x8); printf("x9: %d\n",x9); printf("D1: %d\n",D1); printf("D2: %d\n",D2); cpf2 = D1*10+D2; cpfval = CPF*100+cpf2; if(cpfval == cpfvali) printf("CPF Valido: %lld%d \n",CPF,cpf2); else printf("\tINVALIDO\n Digite CPF Novamente\n\n"); system("pause"); return 0; } Está work aqui, pra galera que quiser. Sem estrutura de repetição.
  12. Sou iniciante ai na área de programação e principalmente na linguagem C. Fiz um validador de CPF e estou querendo checar o numero se é valido ou não, porém quando coloco ele não faz o calculo de CPF*10, ele dá um numero diferente assim fazendo com que eu não consiga concatenar. Tentei até por no short e mesmo assim nada! #include <stdio.h> int main ( ) { int x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9, D1 , D2; short cpfval, CPF, cpf2; printf("\nDigite o CPF: "); scanf("%9d",&CPF); 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; printf("x1: %d\n",x1); printf("x2: %d\n",x2); printf("x3: %d\n",x3); printf("x4: %d\n",x4); printf("x5: %d\n",x5); printf("x6: %d\n",x6); printf("x7: %d\n",x7); printf("x8: %d\n",x8); printf("x9: %d\n",x9); printf("D1: %d\n",D1); printf("D2: %d\n",D2); cpf2 = D1*10+D2; cpfval = CPF*100+cpf2; if(cpfval == cpf2) printf("CPF Valido: %d%d\n",CPF,cpf2); else printf("Invalido\n %d\n",cpfval); return 0; } Por favor me ajudem! Se possível sem usar estrutura de repetição... Caso não dê me avisem!

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...