Ir ao conteúdo
  • Cadastre-se

vitor de jesus

Membro Pleno
  • Posts

    49
  • Cadastrado em

  • Última visita

posts postados por vitor de jesus

  1. Quando vou executar qualquer programa apresenta esse erro:

     

    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.

     

    parte do programa e executado ate da esse erro, os programas não tem nenhum erro de sintaxe... ate testei alguns nesse site: https://repl.it/

    e la funciona normal.

     

    esse erro começou acontecer depois que tive que baixar a biblioteca > Visual C++ Redistributable for Visual Studio 2012

    para usar o wapserver...

     

    alguem sabe como posso resolver isso?

     

  2. 4 horas atrás, Simon Viegas disse:

    Por quê só alguns valores ficam corrompidos (ou que os outros não são) eu não dizer... apesar de curioso, acho que não é tão importante, apenas que após "deletar" você não poderia mais tentar imprimir (usar aquela variável de qualquer forma), pois ele foi "desalocado"... é como tentar usar um ponteiro que ainda não sofreu um new(), a diferença, suponho eu, é que aquela região ("lixo") de memória já está com a mesma estrutura de quando foi alocada (não deu tempo de ser utilizada por outro recurso do programa ou Sistema Operacional), daí ainda consegue exibir dados sem "dar pau".

     

    Deixa eu ver se entendi:

     

    O espaço que foi "reservado" na memoria para o ponteiro (Parray) já foi desalocado "Liberado", e na verdade não esta sendo exibido os valores para que (Parray)  "aponta", pois não tenho mais acesso a ele?

     

    Apesar da memoria alocada já ter sido liberada, a "estrutura" do (Parray) ainda não foi modificada sendo possível exibir parte de seus valores originais? pois aquele espaço ainda não foi utilizado?

     

    @Simon Viegas  --> após "deletar" você não poderia mais tentar imprimir (usar aquela variável de qualquer forma), pois ele foi "desalocado"

     

    @Simon Viegas suponho eu, é que aquela região ("lixo") de memória...

     

    mas aí que surgiu outra duvida... ao  tentar acessar (Parray) não deveria dar algum tipo de error no programa, pois se o espaço reservado a (Parray) já foi liberado, não deveria conseguir acessa-la e nem os endereços de memoria para que ela apontava?

     

    ou essa região "lixo" continua sendo a mesma reservada a (Parray) e ela foi apenas "classificada"  como disponivel para uso...

     

    por isso estou conseguindo acessar o "lixo" através do (Parray) que no caso já foi desalocado?

     

    e como você disse:  está com a mesma estrutura de quando foi alocada (não deu tempo de ser utilizada por outro recurso do programa ou Sistema Operacional)

     

    Enfim.. então quer dizer que não tem nenhum "error" do modo que estou alocando e desalocando a memoria, só não deu tempo do "Lixo" ser utilizado?

     

     

    adicionado 5 minutos depois
    15 horas atrás, devair1010 disse:

    @vitor de jesus    esse comando delete é complicado,  experimente usar esse código no lugar de delete :

    
    for(int i=0;i<10;i++){
        Parray[i]=NULL;
    }

     

     

    Mas ai não estaria liberando memoria né?, só fazendo com que o ponteiro não "aponte para nada", o espaço reservado a (Parray) não seria  "liberado" ou seria?

    • Curtir 1
  3. #include <iostream>
    
    using namespace std;
    
    int main(void){
    	
    	int * Parray = new int[10];
    	
    	for(int i = 0; i < 10; i++){
    		
    		Parray[i] = i;
    		
    		cout << "Posicao: " << i << " = " << *(Parray + i) << endl;
    	}
    	
    
    	cout << endl << endl;
    	
    	delete[] Parray;
    	
    	for(int i = 0; i < 10; i++){
    		
    		cout << "Posicao: " << i << " = " << *(Parray + i) << endl;
    	}
    		
    	return 0;
    }

    Porque só os dois primeiros valores estão sendo deletados? 

    Como Deletar Todos?

    • Curtir 1
  4. #include <iostream>
    #include <string.h>
    #include <stdlib.h>
    #include <vector>
    
    using namespace std;
    
    struct ProdutoInfo1 {
    
            string Produto_Tipo; // Ex : Creme Dental
            string MarcaProduto; // Ex : Colgate ****
            string CodigoBarras; // Ex : 01010100101101010
            string Fornecedores; // Ex : Contato
    
            string DataFabricou; // Ex : 20/11/2017
            string DataValidade; // Ex : 20/11/2020
    
            float ValorPorLote; // Ex : 40,50
            float VendaPorLote; // Ex : 50,50
            float ValorPorUnid; // Ex : 5 ,00
            float VendaPorUnid; // Ex : 5 ,50
    
    		int ProdutosLote; // 13 Produtos
            int EstoqueAtual; // 99 Caixas
            int EstoqueMinim; // 30 Caixas
    
    };
    
    class  ProdutoInfo2 {
    
    	private:
    
    		vector <ProdutoInfo1> Produto;
    		string temp;
    
    	public :
    
    		void AddProduto(){
    
    			Produto.push_back(ProdutoInfo1());
    
    			int tam = Produto.size();
    
    			cout << " Tipo do Produto: ";
                getline(cin,temp);
    
                Produto[tam-1].Produto_Tipo = temp;
    
                system("cls");
    
                cout << " Marca do Produto: ";
                getline(cin,temp);
    
                Produto[tam-1].MarcaProduto = temp;
    
                system("cls");
    
                cout << " Codigo de Barras: ";
                getline(cin,temp);
    
                Produto[tam-1].CodigoBarras = temp;
    
                system("cls");
    
                cout << " Contato do Fornecedor: ";
                getline(cin,temp);
    
                Produto[tam-1].Fornecedores = temp;
    
                system("cls");
    
                cout << " Data de fabricação: ";
                getline(cin,temp);
    
                Produto[tam-1].DataFabricou = temp;
    
                system("cls");
    
                cout << " Data de Validade: ";
                getline(cin,temp);
    
                Produto[tam-1].DataValidade = temp;
    
                system("cls");
    
                cout << " Produtos por Lote: ";
                cin  >> Produto[tam-1].ProdutosLote;
    
                system("cls");
    
                cout << " Valor de Compra por Lote: ";
                cin  >> Produto[tam-1].ValorPorLote;
    
                Produto[tam-1].ValorPorUnid = Produto[tam-1].ValorPorLote / Produto[tam-1].ProdutosLote;
    
                system("cls");
    
                cout << " Valor de Venda por Lote: ";
                cin  >> Produto[tam-1].VendaPorLote;
    
                system("cls");
    
                cout << " Valor de Venda por Und: ";
                cin  >> Produto[tam-1].VendaPorUnid;
    
    			++Produto[tam-1].EstoqueAtual;
    
    			system("cls");
    
    			cout << " Estoque Minimo de Lotes: ";
                cin  >> Produto[tam-1].EstoqueMinim;
    
                system("cls");
    
                cout << " voce Cadastrou o Seguinte Produto : " << endl << endl;
    
    			UltimoProdutoCadastrado();
    
    			cout << endl;
    
    			cout << " Verifique Todas informações do Produto, Caso Haja Alguma";
    			cout << " Informacao Incorreta Siga Este Processo: " << endl << endl;
    			cout << " -> Menu Principal/Produtos/Alterar " << endl << endl;
    
    
    
    		}
    
    		void AllInfoProduto(int * posicao = NULL ){
    
    			int tam = Produto.size();
    			int Controle = 0;
    
    			do{
    
    			cout << "Codigo de Barras:";
                getline(cin,temp);
    
                for(int i = 0; i < tam; i++){
    
                    if(Produto[i].CodigoBarras==temp){
    
                        Controle++;
    
                        if(posicao != NULL){
                        *posicao = i;
                        }
    
                        cout << endl;
                        cout << " Tipo:  " << Produto[tam-1].Produto_Tipo << endl;
                        cout << " Marca: " << Produto[tam-1].MarcaProduto << endl;
    
                        cout << "____________________________________________________" << endl;
    
                        cout << endl;
    
                        cout << " Codigo de Barras: "   << Produto[tam-1].CodigoBarras << endl;
                        cout << " Contato Fornecedor: " << Produto[tam-1].Fornecedores << endl;
    
                        cout << "____________________________________________________" << endl;
    
                        cout << endl;
    
                        cout << " Data de fabricação "  << Produto[tam-1].DataFabricou << endl;
                        cout << " Data de Validade "    << Produto[tam-1].DataValidade << endl;
    
                        cout << "____________________________________________________" << endl;
    
                        cout << endl;
    
                        cout << " Compra Por Lote: "    << Produto[tam-1].ValorPorLote << endl;
                        cout << " Compra Por Unid: "    << Produto[tam-1].ValorPorUnid << endl;
    
                        cout << "____________________________________________________" << endl;
    
    		            cout << endl;
    
    		            cout << " Venda  Por Lote: "    << Produto[tam-1].VendaPorLote << endl;
                        cout << " Venda  Por Unid: "    << Produto[tam-1].VendaPorUnid << endl;
    
                        cout << "____________________________________________________" << endl;
    
    	            	cout << endl;
    
    		            cout << " Produtos Por Lote: "  << Produto[tam-1].ProdutosLote << endl;
                        cout << " Estoque Atual: "      << Produto[tam-1].EstoqueAtual << endl;
                        cout << " Estoque Minim: "      << Produto[tam-1].EstoqueMinim << endl;
    
                        cout << "____________________________________________________" << endl;
    
                        }
                        }
    
    
                        }while(Controle==0);
    
                    }
    
    		void UltimoProdutoCadastrado(){
    
    	    int tam = Produto.size();
    
    
    		cout << "____________________________________________________" << endl;
    
    		cout << endl;
    
    		cout << " Tipo:  " << Produto[tam-1].Produto_Tipo << endl;
            cout << " Marca: " << Produto[tam-1].MarcaProduto << endl;
    
            cout << "____________________________________________________" << endl;
    
            cout << endl;
    
            cout << " Codigo de Barras: "   << Produto[tam-1].CodigoBarras << endl;
            cout << " Contato Fornecedor: " << Produto[tam-1].Fornecedores << endl;
    
            cout << "____________________________________________________" << endl;
    
            cout << endl;
    
            cout << " Data de fabricação "  << Produto[tam-1].DataFabricou << endl;
            cout << " Data de Validade "    << Produto[tam-1].DataValidade << endl;
    
            cout << "____________________________________________________" << endl;
    
            cout << endl;
    
            cout << " Compra Por Lote: "    << Produto[tam-1].ValorPorLote << endl;
            cout << " Compra Por Unid: "    << Produto[tam-1].ValorPorUnid << endl;
    
            cout << "____________________________________________________" << endl;
    
    		cout << endl;
    
    		cout << " Venda  Por Lote: "    << Produto[tam-1].VendaPorLote << endl;
            cout << " Venda  Por Unid: "    << Produto[tam-1].VendaPorUnid << endl;
    
            cout << "____________________________________________________" << endl;
    
    		cout << endl;
    
    		cout << " Produtos Por Lote: "  << Produto[tam-1].ProdutosLote << endl;
    
            cout << "____________________________________________________" << endl;
    
    		cout << endl;
    
            cout << " Estoque Atual: "      << Produto[tam-1].EstoqueAtual << endl;
            cout << " Estoque Minim: "      << Produto[tam-1].EstoqueMinim << endl;
    
            cout << "____________________________________________________" << endl;
    
            cout << endl;
    
    		}
    
    };
    
    int main(){
    
    ProdutoInfo2 Produtos;
    
    Produtos.AddProduto();
    
    system("pause");
    system("cls");
    
    Produtos.AllInfoProduto();
    
    }

    Então E o seguinte.. quando Entra Na Função : Produtos.AllIfoProdutos();  e passa pro do wile o primeiro cout e impresso 2 vezes... 

    Como Posso corrigir isso?

    • Curtir 1
  5. Boa Noite, Então e o seguinte.. do modo como esta o IF você esta comparando a variável opção com a variável "A", e não com o caractere "A", ou seja como a variável "a" não foi iniciada ela não contem o caractere "A" , então a condição do if não e verdadeira, por isso não "entra" nele.

     

    para verificar se a variavel opção contem  a  letra "A" você deve fazer:

     

    if ( opcao == 'a' )

     

    o  ' ' vai ira indicar que você esta comparando opção com  o caractere "A" e não com a variavel "a".

     

    Codigo:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <conio.h>
    #include <locale.h>
    
    main ()
    {
        setlocale(LC_ALL, "Portuguese");
        
        printf("\n\t\t Cálculo da Área do Triângulo \n");
        printf("\nOBS: Os valores fornecidos deveram estar em centimetros. \n");
        
        printf("\n Escolha uma das opções abaixo:\n\n");
        printf("  Digite ( a ) para Calcular o trinagulo normal");
        printf("\n  Digite ( b ) para Calcular o trinagulo equilatero\n");
        
        int S, H, B;
        char a, b, opcao;
        float S2, l;
        
        printf("\n \t => ");
        scanf("%c", &opcao);
        
        system("cls");
        
        if ( opcao == 'a' )
        
        {
            
        printf("\n\t Digite o valor de ( b ) Base: ");
        scanf("%d", &B);
        
        printf("\n\t Digite o valor de ( h ) Altura: ");
        scanf("%d", &H);    
        
        S = ( B * H ) / 2;
        
        printf("\n\t O Valor da área é : %d cm² \n\n", S);
        
            
        }
        
        else
        
        {
                
        printf("\n Digite o valor do lado do triângulo: ");
        scanf("%f", &l);
            
        S2 = ( pow(l,2) /4 ) * sqrt ( 3 );    
        
        printf("\n\n A área deste triângulo equilátero é de aproximadamente : %.2f cm²\n\n\n",S2);
            
        }
        
        
    }

    Bom Espero que não tenha ficado confuso com tanto "a"

    mas posso estar errado, pois programo em c++...

    • Curtir 1
    • Obrigado 1
  6. Bom... Já estudei o básico de c++ Listas,Classes, Structs,Arquivos e etc.

     

    mas agora to precisando criar um programa que inicie junto com o windows..

    ou seja, preciso criar um novo valor na sub chave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\run,  correto?

    A Minha duvida é, o que preciso começar a estudar pra conseguir fazer isso? já procurei apostilas sobre o assunto, videos no youtube e nada...

    se alguém tiver um programa que possa me dar uma ideia de como fazer isso,ou alguma apostila sobre o assunto agradeço.

  7. Então.... Estou estudando arvores binarias em c++,  já entendi como funciona a implementação de valores nela, mas não estou entendendo como e feito para a função imprimir ela em  ordem...

     

    Código: 

    #include <iostream>
    using namespace std;
    
    class Obj{ 
    	
    private:   
    	
    	Obj * Esq;
    	Obj * Dir;
    	int   Num;     
    
    public:
    	
    	Obj (int Num){         
    		
    		this->Num = Num;
    		
    		Esq = NULL;         
    		Dir = NULL;
    	}
    	
    	int GetNum(){
    		
    		return Num;
    	}
    	
    	Obj * GetEsq(){
    		
    		return Esq;
    	}
    
    	Obj * GetDir(){
    		
    		return Dir;
    	}
    
    	void SetEsq(Obj * no){
    		
    		Esq = no;
    	}
    
    	void SetDir(Obj * no){
    		
    		Dir = no;
    	}
    	
    };
    
    class Arvore{
    	
    private:
    	
    	Obj * raiz;
    
    public:
    	
    	Arvore(){
    		
    		raiz = NULL;
    	}
    
    	void Push(int Valor){
    		
    		if(raiz == NULL){
    	
    			raiz = new Obj(Valor); 
    	
            }else{
    			
    			inserirAux(raiz,Valor);
            }
    	}
    	
    	void inserirAux(Obj * No, int Valor){
    		
    		if(Valor < No->GetNum()){
    			
    			if(No->GetEsq() == NULL){
    				
                Obj * Novo_No = new Obj(Valor);
                No->SetEsq(Novo_No); 
    				
    			}else{
    			
    			inserirAux(No = No->GetEsq(), Valor);
    			
    			}
    			
    			}else if(Valor > No->GetNum()){
                
    			if(No->GetDir() == NULL){
    				
                Obj * Novo_No = new Obj(Valor);
    			No->SetDir(Novo_No); 
    			
    			}else{
    			
    			inserirAux(No = No->GetDir(), Valor);
    		
    			}
                }	
    	}
    	
    	Obj * GetRaiz(){
    		
    		return raiz;
    	}
    	
    	void CoutArvore( Obj * No){
    		
    		if(No != NULL){
    			
    			CoutArvore(No->GetEsq());
    			cout << No->GetNum() << " ";
    			CoutArvore(No->GetDir());
    		}
    	}
    	
    };
    
    int main(){
    	
    	Arvore a;
    	
    	a.Push(20);
    	a.Push(22);
    	a.Push(48);
    	a.Push(16);
    	a.Push(15);
    	a.Push(19);
    	a.Push(32);
    	a.Push(26);
    	a.Push(12);
    	
    	a.CoutArvore(a.GetRaiz());
    	
    	return 0;
    }

    Não estou entendendo e a função "CoutArvore", 

    o que entendi foi:

     

    ela pega o ultimo elemento a esquerda "12" e imprimi

    ai ele aponta pra NULL E agora como ela continua ?

     

    se alguém puder me explicar como funciona essa função para imprimir uma arvore binaria em ordem agradeço...

    • Curtir 1
  8. @1freakday Entendi. Dei uma olhada aqui é não achei muito material em português sobre estes assuntos "na verdade quase nenhum", mas acho melhor adiar esta parte do programa um pouco, pois  parece se trata de um assunto mais avançado, e como comecei a programar a pouco tempo vou deixar para estudar sobre isso mais a frente...

     

    mesmo assim Obrigado! por Tirar minha duvida.

    • Curtir 1
  9. Estou Fazendo um Programa que armazena informações do cliente...

     

    uma das informações e o endereço. queria retorna esse endereço usando o 

    site dos correios ou seja o usuário digita "CEP" e uso o site dos correios para retorna o endereço -> rua,bairro,localidade.

    vi alguns tutoriais que mostra como fazer isto mas nenhum deles em c++, vi em c# php e ate em htm 

    tentei passa isso pro c++ mas nao consegui 

    em fim queria saber se e possivel fazer isto utilizando c++

     

    se for possivel peço que me falem com faria o codigo mais ou menos...

    • Curtir 1
  10. @CiroboyBR  Na Verdade ate já havia tentando usar um vetor mais não estava conseguindo fazer operações com ele  acho que estava acessando de forma errada....

     

    Olhando atentamente o site : http://www.dicasdeprogramacao.com.br/algoritmo-para-validar-cpf/

    percebi que o código estava com muitas Falhas..

     

    Então resolvi as falhas diminui a escrita do código usando o vetor de inteiros e com alguns for Amais.

     

    Ficou Assim :

    #include <iostream>                                 
    #include <stdlib.h>
    #include <string>
    #include <ctype.h>
    
    using namespace std;
    
    class ValidaCPF{
    	
    private:
    
    string cpf;
    		
    public:
    		
    void validaCpf(){
    			
    int teste = -1;
    
    
    do{
    		system("cls");                              
    		
    		cout << " Digite 1 CPF Valido : " << endl;   
    
    		cout << "---------------------  " << endl;   
    		cout << "| Apenas 11 Digitos |  " << endl;   
    		cout << "| Apenas -- Numeros |  " << endl;  
    		cout << "|___________________|  " << endl;  
    		
    		getline(cin, cpf);                           
    		
            int verifica;                              
            int tamDoCpf;                                        
            
            verifica = 0;                             
            tamDoCpf = cpf.size() - 1;                 
            
            if(tamDoCpf+1!=11)                     
    			continue;                         
    		
    		for(int i = 0; i <= tamDoCpf; i++){  
    
    			if(!isdigit(cpf.at(i))){           
                   ++verifica;}                  
    		}
    		
    		if(verifica>0){                       
    			continue;             
    		}                                    
    		
    		verifica = 0;
    		
    	         
            for(int i = 0; i < cpf.size() - 1; i++){  
    			if(cpf.at(i)==cpf.at(i+1)){          
                ++verifica;}}                      
            
    		if(verifica==10)                   
    			continue;                      
    		
    		
    		int digitosDoCpf[11];
    		
    		for(int i = 0; i < 11; i++){
    			digitosDoCpf[i]=cpf.at(i)-48;}
    			
            verifica = 0;
    		int numeros = 10;
    		
    		for(int i = 0; i < 9; i++){
    			verifica = verifica + digitosDoCpf[i] * numeros--;
    		}
    		
    		verifica = verifica * 10;
    		
    		verifica = verifica%11;
    		
    		if(verifica==10)
    			verifica = 0;
    		 
            if(verifica!=digitosDoCpf[9])
    			continue;
    		
    		verifica = 0;
    		numeros = 11;
    		
    		for(int i = 0; i < 10; i++){
    			verifica = verifica + digitosDoCpf[i] * numeros--;
    		}
    		
    		verifica = verifica * 10;
    		
    		verifica = verifica%11;
    		
    		if(verifica==10)
    			verifica = 0;
    		 
            if(verifica!=digitosDoCpf[10])
    			continue;
    		 
    		cout << " O CPF : " << cpf << " E Valido... " << endl;
    		
    		
    		teste = 0;
    		}while(teste!=0);
    		
    		
    		}
    	
    		};
    	
    int main(){
    
    ValidaCPF obj;
    obj.validaCpf();
    
    	return 0;
    }

     

  11. Bom...

     

    Estou Fazendo um Programa em c++ que pede o usuário um cpf valido  então fiz uma classe para validar o cpf queria saber se este codigo realmente esta funcionando... acho q e difícil verificar 100% se um cpf e valido mas queria saber se a classe serve para o gasto.

    #include <iostream>
    #include <string.h>
    #include <string>
    #include <ctype.h>
    #include <stdlib.h>
    
    using namespace std;
    
    class ValidaCPF{
    	
    private:
    
    string cpf;
    		
    public:
    		
    void validaCpf(){
    			
    int teste = -1;
    
    do{
    
    		system("cls");
    		
    		cout << " Digite 1 CPF Valido : " << endl;
    
    		cout << "---------------------  " << endl;
    		cout << "| Apenas 11 Digitos |  " << endl;
    		cout << "| Apenas -- Numeros |  " << endl;
    		cout << "|___________________|  " << endl;
    		
            string cpfTemp;
    		int QuantDigitos;
    		QuantDigitos = 0;
    
    		getline(cin, cpfTemp);
    		
    		if(cpfTemp.size()<11){
    			continue;
    		}
            
    		for(int i = 0; i <= cpfTemp.size() - 1; i++)
    		{
    
    			if(isdigit(cpfTemp.at(i)))
    			{
    				++QuantDigitos;
    			}
    		}
             
    		if(QuantDigitos == cpfTemp.size() && cpfTemp.size() == 11);
    		else
    			continue;
    
            	
        	int verificao2 = 0;
    		
    		for(int i = 0; i < 12; i++){
    	    
    		for(int j = 0; j < 12; j++){
    		
    		if(cpfTemp[0]==cpfTemp[1]){
    			++verificao2;
    		}}}
    		
    		if(verificao2>10){
    			continue;
    		}
    		
    		int digitoN1  = cpfTemp.at(0) - 48;
    		int digitoN2  = cpfTemp.at(1) - 48;
    		int digitoN3  = cpfTemp.at(2) - 48;
    		int digitoN4  = cpfTemp.at(3) - 48;
    		int digitoN5  = cpfTemp.at(4) - 48;
    		int digitoN6  = cpfTemp.at(5) - 48;
    		int digitoN7  = cpfTemp.at(6) - 48;
    		int digitoN8  = cpfTemp.at(7) - 48;
    		int digitoN9  = cpfTemp.at(8) - 48;
    		int digitoN10 = cpfTemp.at(9) - 48;
    		int digitoN11 = cpfTemp.at(10) - 48;
    		
    		int verificacaoN3 = 0;
    		
    		verificacaoN3 = digitoN1 * 10 + digitoN2 * 9 + digitoN3 * 8 +
    		                digitoN4 *  7 + digitoN5 * 6 + digitoN6 * 5 +
    					    digitoN7 *  4 + digitoN8 * 3 + digitoN9 * 2 ; 
    					   
            verificacaoN3 = verificacaoN3 * 10;
            
            if(verificacaoN3%11==digitoN10);
    		else
    			continue;
    		
    		
    		int verificacaoN4 = 0;
    		
    		verificacaoN4 = digitoN1 * 11 + digitoN1 * 10 + digitoN2 * 9 +
    		                digitoN3 * 8  + digitoN4 *  7 + digitoN5 * 6 +
    					    digitoN6 * 5  + digitoN7 *  4 + digitoN8 * 3 +  
                            digitoN9 * 2 ; 
    		
            verificacaoN4 = verificacaoN4 *	10;
    	
    		if(verificacaoN3%11==digitoN10);
            else
    			continue;
    		
    
            cout << " O Cpf Digitado e Valido..";
            
    		teste = 0;
    	
    	}while(teste!=0);
    	
    		
    		
    		}
    		};
    	
    
    	ValidaCPF obj;
    
    int main(){
    
    obj.validaCpf();
    
    	return 0;
    }

    caso alguém ache alguma falha peço que modifique a classe para resolver a falha, também queria saber se tem como minimizar a escrita do código tipo tem uma parte que tive que declarar 11 variáveis do tipo int 1 para cada digito... caso tenha como minimizar o código em algumas partes peço que me falem.

     

    usei como referencia para fazer a classe o site : http://www.dicasdeprogramacao.com.br/algoritmo-para-validar-cpf/ 

    que mostra como e feita a validação de um c++ em alguma linguagem que nao me lembro agora...

     

    Obrigado!!

  12. Vamos Supor que Tenho uma variável do Tipo String "Não Pode ser Char" queria saber se alguém poderia me ajudar com um trecho de um código qualquer que possa fazer duas verificações :

     

    1 verificação : Verificar se a string e composta apenas por Letras e Espaços Ex : Nome Completo

    preciso colocar esse trecho dentro de um "For" e colocar alguns if : caso o usuário digite uma string que contenha caracteres especiais ou números ele peça novamente : 1 Nome Invalido e mostre --> digite um nome que contenha apenas letras....  também preciso verificar se o usuário não  digitou nada só teclou enter para evitar que o programa continue sem ter pegado um nome valido do usuário....

     

    2ª Verificar se a String e Composta apenas por números Ex: telefone

    a mesma coisa colocar a verificaçao dentro de um loop pedir o telefone ate ser um telefone valido 

    caso digite enter pedir novamente...

     

    OBRIGADO!

    adicionado 37 minutos depois

    Também Estou precisando do seguinte em uma parte do programa preciso pegar a data de nascimento de uma pessoa qualquer depois armazeno a mesma em um veCtor 

     

    vector <string> DataNascimeno;

    vector <string> IdadeAtual;

    string wordTemp;

     

    Ex:

     

    string dataNascimento;

    cout << "Digite sua data de Nascimento : ";

    getline (cin , wordTemp);

    dataNascimento.push_back(wordTemp);

     

     

    Em outra Parte do Programa preciso pegar a idade atual da pessoa para isto esto fazendo isto

     

    string idadeAtual;

    cout << " Digite sua Idade : "

    getline (cin,wordTempl)

    idadeAtual.push_back(wordTempl);

     

    queria saber se tem como criar um vetor de VeCtor tipo : vector <string> dataNascimento[3];

    O 1 veCtor Armazenaria o dia O 2 veCtor Armazenaria o Mes O 3 veCtor Armazenaria o Ano de Nascimento...

    isto seria possivel?

     

    se sim como acessaria cada veCtor?

    isto seria bastante util na hora de imprimir as informaçoes da pessoa e tambem para fazer algumas verificaçoes que estou em mente..

     

    sei que seria mais fácil se criasse 3 vectores... 

    mas em fim isto e so uma curiosidade que estou tendo...

    • Curtir 1
  13. Bom Estudo c++ e Sempre usei a Ide Falcon c++ Para Fazer alguns programas Simples .

    Mas ha uma semana Começei a Fazer um Projeto Maior ate a linha 500 , 600 A Ide nao Apresentou nenhum pobrema mas ai foi

    ficando  Maior o Projeto ai quando Estava com mais de 800 linhas a ide começou a bugar : os meus comentarios mudarao de lugar...

     

    ai arrumei meus comentarios e salvei todo o codigo  em txt usando o bloco de notas pra caso acontecesse novamente não perdersse todo o projeto, ate ai tudo bem

     

    continuei escrevendo salvei e sai... quando abri o projeto nao tinha nada dentro dele agora nao sei se e a ide ou foi algum erro meu.

     

    E Mesmo que tivesse esquecido de salvar o programa antes de sair era pra ter algo dentro pois o falcon c++ salva automaticamente quando o programa e compilado e execultado.

     

    Perdi uma Parte do Codigo mas Ainda Bem Que Salvei parte dele em txt se não teria perdido tudo...

     

    Minha duvida e a seguinte --> tem algum limite de Linhas que posso escrever na ide? para fazer um projeto maior teria que usar outra ide?

     

    Obrigado

     

     

  14. @Gustavo Andretto Obrigado!

     

    O 1 código foi bem útil com ele não irei precisar de fazer as verificações da string...

    Ficou Assim :

    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char** argv)
    {
    	int numero;
      
    	while (true)
    	{
    		cin >> numero;
    
    		// cin recebeu uma entrada válida
    		if (!cin.fail())
    		{
    			
    			cin.ignore();
    			if (numero <=  2147483647){
    			break; // sai do laço
    			}
    		
    		}
    
    		cin.clear();
    		cin.ignore();
    	}
    	cout << numero << endl;
      
      	return 0;
    }

     

    • Curtir 1
  15. @devair1010

    Bom Fiz Algumas Alteraçoes Para Meu Programa E Ficou Assim :

    #include <iostream> 
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    using namespace std;
    string a;
    int b,c,d;
    
    int main()
    {
    
    	do{
    		
        d=0;
        cout << "Digite uma Senha Que Contenha Apenas Numeros : ";
        getline(cin,a);
        b=a.size();
      
        for(c=0;c<b;c++)
        {
        	system("cls");
            if(isdigit(a[c])){d++;}
        }
    
    
        }while(d<b);
        
     
    }

    O Código Iria Funcionar Perfeitamente No Meu Programa, Mas só tem um porém : quando digito enter sem colocar um numero ou um carácter o Programa continua...

     

    e preciso Obrigar o usuário a digitar um (numero) que tenha no máximo 9 dígitos, acho que teria como alterar o programa e limitar o usuário a digitar um numero que contenha no máximo 9 dígitos, mas não sei como poderia fazer para caso o usuário digitar espaço sem digitar mas alguma coisa o programa voltar para a condição 

     

     

    
        do{
    	                                           
        cout << " Digite um Login Para O Usuario : ";        // Pedindo Nome
        getline(cin,wordTemp);                            // Armazenando Nome
        int posicao = administrador.usuarioAdmin.size();  // Pegando Qtd de Admin
        int controle = 0;                                 // Ira Verficar
    	    
    		for(int i = 0; i < posicao; i++ ){                 // Verifica todos os 
    			if(wordTemp==administrador.usuarioAdmin[i]){   // Adiministradores
    				controle++;                                // Armazenados
    			}
    		}
    		
    		if(controle>0){                           // Se Condiçao Retorna 1 Faça
            cout << " Este Login Ja Esta em Uso ";    // Imprimi 
            cout << " \" Fechando Programa \"  ";     // Imprimi
            cout <<  endl << endl;                    // Pula 2 Linhas 
            exit(0);                                  // Fechando Programa
    		}else{                                    // Se nao retorna 1 Faça
            administrador.usuarioAdmin[tam-1]= wordTemp; // Armazenando Admin
            
            
            
            cout << " Digite uma Senha Para O Admin ";      // Imprimi
            cout << " \" Que So Contenha Numeros \" : ";    // Imprimi
    		 
            cin >> numbersTemp;                             // Armazenando Senha 
      	    pessoa.senhaUsuar.push_back(wordTemp);	        // Armazenando Senha
      	    retorno=1;
      	    system("cls");                                  // Limpando a Tela
      	    cout << endl << endl;
    		}
    		
    		
    		}while(retorno!=1)
    		

     A parte que Preciso verificar se o usuario digitou um numero que tenha no máximo 9 caracteres e a parte que pede o usuario uma senha e armazena o numero em numbersTemp

     

    então pensei no seguinte colocar o que o usuário digitar em uma string verficar se a string e numerica e tenha no  maximo 9 digitos  se for converte-la em int mantendo os numeros armazenados nela(Teria como?)  e por fim fazer numbersTem = a string convertida e depois armazenar numberstem no vector... 

     

    acho que ficou meio confuso mas acho que deu pra entender

     

    sei que seria mais fácil se a senha fosse uma string como o usuário mas para o programa que estou fazendo se torna funcional e preciso que a senha seja um int com no maximo 9 digitos

     

    e nao sei como fazer essa verificaçao pois como o programa pede um int se o usuario digitar um caracter acaba com o programa..

     

    Mas Estou Pensando aqui Agora --> tem como colocar um numero em uma string automaticamente sempre que a função for chamada 

    tipo:

     

    funçao (){

     

    static numero = 0;

    ++numero;

    string nome = "Vazio"; nessa parte  aqui teria como fazer algo que eu possa fazer  para colocar o numero

    dentro da string  ai ficar tipo : "Vazio1" 1 que e o valor de numero 

    }

     

    pois sempre que a função for chamada a string seria diferente : vazio1,vazio2,vazio3....

    essa seria uma solução também,na verdade acho que ainda mais funcional para o meu programa.

     

    se tiver como fazer isto me falem,,,

    Obrigado!!

     

    @isrnick @devair1010@Math.Pi

    • Curtir 1

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!