Jump to content

Maroto

Members
  • Content count

    5
  • Joined

  • Last visited

Posts posted by Maroto


  1. Ok, consegui resolver. O problema situava-se na minha lógica mesmo. Poderia ser feito de forma bem mais simples e sem necessidade de tantos if(s).

     

    Cheguei no seguinte código.

     

    <script>
    
      //Vetor que guarda os itens.
      var ingredientes = [];
    
      //Variável que guarda quantos itens serão adicionados no vetor ingredientes.
      var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));
    
      //Laço para guardar os itens s no vetor.
      for (var contador1 = 1; contador1 <= quantidade; contador1++){
        var item = prompt("Informe o "+contador1+"º item: ");
    
        //Variável de verificação.
        var verifica = true;
    
        /*Laço que verifica se o item digitado já existe ou não no vetor ingredientes. Caso exista, exibe alerta e muda o valor da variável  	 verifica para false.*/
        for (var contador2 = 0; contador2 < ingredientes.length; contador2++){
          if (item == ingredientes[contador2]) {
            alert("Item já adicionado!");
            verifica = false;
            contador1--;
            break;
          }
        }
    
        if (verifica == true){
          ingredientes.push(item);
        }
      }
    
      console.log(ingredientes);
     
    </script>

     


  2. Olá, pessoas.

     

    To com um problema nesse exercício. Esse programa deve receber os itens de uma receita digitados por usuário e salvá-los dentro de um vetor, sempre verificando se o item digitado já não consta. Caso conste, deve exibir um alert( ) informando ao usuário que dado item já foi computado anteriormente, senão, deve gravar o item no vetor e repetir esse ciclo até a condição do primeiro for ser saciada.

     

    O problema é que quando o usuário digitar um valor que já existe no vetor ingredientes [ ] e o alert( ) do segundo for é exibido, após fechá-lo, o programa não dá continuidade, ou seja, no meu entender, deveria atribuir o valor false para variável verifica, com isso sair do segundo for, em seguida, ler a terceira condição:

     

    //Condicional decrementa a variável contador1, caso o item digitado seja repetido e após a primeira iteração. 
    if (contador1 != 1 && verifica == false) {
      contador1--;
      verifica = true;
    }

     

    Abaixo deixo o código completo.

     

    <script>
    
    	//Vetor que guarda os itens.
        var ingredientes = [];
    
        //Variável que guarda quantos itens serão adicionados no vetor ingredientes.
        var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));
    
        //Variável de verificação.
        var verifica = true;
    
        //Laço para guardar os itens s no vetor.
        for (var contador1 = 1; contador1 <= quantidade; contador1++){
            var item = prompt("Informe o "+contador1+"º item: ");
    
            /*Laço que verifica se o item digitado já existe ou não no vetor ingredientes. Caso exista, exibe alerta e muda o valor da variável de verificação para false.*/
    
            for (var contador2 = 0; contador2 < ingredientes.length || verifica != true; contador2++){
    	        if (item == ingredientes[contador2]) {
    	        	alert("Item já adicionado!");
    	        	verifica = false;
    	        }
    	    }
    
    	    //Condicional que quarda o item digitado na primeira iteração.
    	    if (contador1 == 1 && verifica == true){
    	    	ingredientes.push(item);
    	    }
    
    	    //Condicional que guarda o item após a primeira iteração e caso ele não seja repetido.
    	    if (contador1 != 1 && verifica == true){
    	    	ingredientes.push(item);
    	    }
    
    	    //Condicional decrementa a variável contador1, caso o item digitado seja repetido e após a primeira iteração. 
    	    if (contador1 != 1 && verifica == false) {
    	    	contador1--;
    	    	verifica = true;
    	    }
     	}
    
       console.log(ingredientes);
       
    </script>

     

     


  3. Olá, pessoas.

     

    Criei um programa com fins de estudo no visualg, cuja finalidade é preencher uma matriz com valores aleatórios e, em seguida, conferir e armazenar numa segunda atriz se o valores gerados são pares ou ímpares. Todavia o programa fica dando um erro ("Access violation at address xxxx in module" visualg30.exe). Não sei se eu que estou errando na lógica, se meu pc está quebrado ou se é um bug do visualg. 

    Abaixo deixo meu código para quem puder me ajudar. Obrigado :)

     

    Var
       // Seção de Declarações das variáveis
       matriz1: vetor [0..2, 0..2] de inteiro
       matriz2: vetor [0..2, 0..2] de caractere
    
      // Procedimento que gera valores inteiros aleatorios para preencher a matriz1.
      procedimento preencheMatriz
      var
         // Variaveis contadoras
         i1, i2: inteiro
      inicio
         para i1 de 0 ate 1 passo 1 faca
            para i2 de 0 ate 2 passo 1 faca
               aleatorio on
               leia (matriz1[i1,i2])
               limpatela
               aleatorio off
            fimpara
         fimpara
         // Imprimindo a matriz na tela
         para i1 de 0 ate 1 passo 1 faca
            para i2 de 0 ate 2 passo 1 faca
               escreva (matriz1[i1,i2])
            fimpara
            escreval ("")
         fimpara
      fimprocedimento
    
      // Procedimento que verifica se os valores das posições da matriz1 são pares
      // ou ímpares.
      procedimento verificaParImpar
      var
         i1, i2: inteiro
      inicio
         para i1 de 0 ate 1 passo 1 faca
            para i2 de 0 ate 2 passo 1 faca
               se (matriz1[i1, i2] MOD 2=0) entao
                  matriz2[i1,i2] <- "par"
                  escreva(matriz2[i1,i2], " ")
               senao
                  matriz2[i1,i2] <- "ímpar"
                  escreva(matriz2[i1,i2], " ")
               fimse
            fimpara
            escreval(" ")
         fimpara
      fimprocedimento
    
    Inicio
       // Seção de Comandos, procedimento, funções, operadores, etc...
       preencheMatriz
       verificaParImpar
    Fimalgoritmo

     

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.