Ir ao conteúdo
  • Cadastre-se

Eizy

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

posts postados por Eizy

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

  2. @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?

  3. 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;
    }

     

  4. 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;
    }

     

     

     

    • Curtir 1
  5. 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!

    • Curtir 1
  6. 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.

    • Curtir 1
  7. 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!