EXERCÍCIO 043 -módulo-03- Repetições

Home Fóruns Programação Básica EXERCÍCIO 043 -módulo-03- Repetições

Visualizando 11 respostas da discussão
  • Autor
    Posts
    • #74480
      Rui Aparecido Braz
      Participante

      especificar o nome de quem ganha mais.

    • #74504
      IcaroFilho
      Moderador

      Bom dia Rui.
      Não entendi muito bem a sua postagem. Vc gostaria de saber se seria possível adicionar o nome junto ao maior valor ?
      caso seja isso, basta que adicione uma variavel, nome e sempre que tiver o maiorValor sendo atribuído, atribuir junto o nome.

    • #78579
      Arthur Martins Alves
      Participante

      Olá! Estava fazendo o exercício 43 proposto do M03A11, quando fiz algo que me pareceu correto, apesar de diferente do que o professor Guanabara fez na aula 10: Fazendo o “enquanto” do “faça enquanto”, em vez de colocar “r == ‘S’ ou r == ‘s'”, fiz “r != ‘N’ ou r != ‘n'”, o que me parece correto, mas o laço não é interrompido. O mais estranho é que quando coloco só o “r != n” ou somente “r != N”, o laço é interrompido. O problema e quando coloco tanto o “n” minúsculo, como o “N” maiúsculo. Minha lógica está certa? Estou errando em alguma coisa ou será um problema do portugol Studio?

      Segue o código completo:

      
      programa
      {
      	
      	funcao inicio()
      	{
      		inteiro n, c = 1
      		caracter r
      		escreva("{ EXERCÍCIO 043 - Analisador de Números }\n")
      		faca {
      			
      escreva("Digite o ", c, "o valor: ")
      			leia(n)
      
      			escreva("Quer continuar? [S/N] ")
      			leia(r)
      			c++
      		} enquanto (r != 'N' ou r != 'n')
      		escreva("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=")
      		escreva("\nVocê digitou ", " valores PARES")
      	}
      }
      
      • #79042
        Michel Souza
        Participante

        Arthur, particularmente prefiro afirmar do que negar assim:
        } enquanto (r == 'S' ou r == 's')
        mas se preferir pode fazer assim também:
        } enquanto (nao(r == 'N' ou r == 'n'))
        Faz um teste ai. Valeu

    • #78712
      Tutora Mayla
      Mestre

      Arthur, o correto nesse caso, para inverter a lógica seria por (r!=N e r!=n). Nos casos onde a resposta for sim, significa que a resposta não será não. Ou seja : (S ou s) = (não N e não n).
      Se quiser entender um pouco mais do porque ao inverter vira e procure sobre a lei de equivalência lógica de De Morgan, pois aqui ela é aplicada.
      Espero ter ajudado, bons estudos!
      Quaisquer dúvidas estamos a disposição.

    • #78788
      Arthur Martins Alves
      Participante

      Muito obrigado, Mayla, pela resposta! Vou pesquisar sobre a lei de equivalência

    • #80992
      Eduardo Feltrin
      Participante

      Olá! Estou com um problema já a um tempo com meu código, não sei onde estou errando, mas minha estrutura de controle nao funciona. Poderiam me dizer onde está o erro ?
      Segue o código:

      programa
      {
      /* Ex043- Analisador de números que mostra:
      * Quantos valores ímpares e pares foram digitados (separadamente)
      * Quantos números, no total, foram digitados;
      * Qual foi o menor valor ímpar inserido;
      * Data: 22/11/2021. */
      inclua biblioteca Matematica –> m
      funcao inicio()
      {
      inteiro x = 1, pares = 0, impares = 0, menor_impar = 0, valor = 0
      caracter continuar

      escreva(“\n\n”)
      faca{
      escreva(“Digite o “, x, “º valor: “)
      leia(valor)

      se (valor % 2 == 0) {
      pares++
      } senao se (valor % 2 != 0) {
      impares++
      se (x == 1) {
      menor_impar = valor
      } senao se (valor < menor_impar) {
      menor_impar = valor
      }
      }
      x++
      escreva(“Quer continuar[S/N]? “)
      leia(continuar)
      } enquanto(continuar != ‘N’ ou continuar != ‘n’)

      escreva(“\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n”)
      escreva(“Ao todo, você digitou “, x, ” valores.\n”)
      escreva(“Você digitou “, pares, ” valores PARES.\n”)
      escreva(“O valor “, menor_impar, ” foi o menor valor ÍMPAR digitado\n”)
      }
      }

    • #80993
      Eduardo Feltrin
      Participante

      Lendo o post do Arthur eu entendi, mil perdões por nao ter prestado a atenção. Não consigo apagar a mensagem anterior. 🙁

    • #81006
      Tutora Vera
      Mestre

      Eduardo, O importante foi que você conseguiu compreender agora. Não precisa se desculpar por isso, afinal o fórum é voltado para tirar dúvidas e você conseguiu compreender através da dúvida de outro aluno, na próxima faz uma busca antes que pode te ajudar de forma mais rápida. 👏🖖🤓

    • #104492
      Neander Fontes
      Participante

      Olá, Tudo bem pessoal? Gostaria de uma ajuda para saber a respeito do meu código, se está correto ou se precisa completar alguma coisa?
      pois a depender da ordem dos valores fica certo e as vezes errado, Obrigado!

      programa
      {
      /* 	Módulo03 Aula10 + 11 - 'faca enquanto' Faça Enquanto
      *	Portugol Exercício 043
      *   	Autor: Neander
      *	Data: 07/11/2022
      *	Local: Portugal-Braga
      *	Empresa: Estudonauta
       */
      	
      inclua biblioteca Texto --> txt
      	funcao inicio()
      	{
      //Exercício 043: - Analisador de Números
      		escreva("{ EXERCÍCIO 43 - Analisador de Números }")
      		//Obs.:
      		//Declarações de Variáveis:
      		inteiro contador, numero, qtNumeros, qtPar, qtImpar
      		inteiro numImparMenor, numMaior, numMenor
      		cadeia resposta
      		//Entrada de Dados:
      		escreva("\n\n=======================================")
      		escreva("\n\tAnalisador de Números")
      		escreva("\n=======================================")		
      		//Declarações Fixas:
      		contador = 1
      		qtNumeros = 0
      		qtPar = 0
      		qtImpar = 0
      		numImparMenor = 0
      		numMaior = 0
      		numMenor = 0
      		//Declarações do Escopo Principal:
      		faca {
      			escreva("\nDigite o " + contador + "º Valor: ")
      			leia(numero)
      			escreva("Quer continuar? [S/N]: ")
      			leia(resposta)
      			qtNumeros++
      			se (numero % 2 == 0) {
      				qtPar++
      			}
      			se (contador == 1) {
      				numMaior = numero
      				numMenor = numero
      				se (numero % 2 != 0) {
      						numImparMenor = numMenor						
      					}
      			} senao {
      				se (numero < numMenor) {
      					numMenor = numero
      					se (numMenor % 2 != 0) {
      						numImparMenor = numMenor						
      					}
      				}
      				se (numero > numMaior) {
      					numMaior = numero
      					se (numMaior % 2 != 0) {
      						numImparMenor = numMaior					
      					}
      				}
      			}			
      			contador++
      		} enquanto (txt.caixa_alta(resposta) == "S")
      		escreva("\n\n########## RESULTADOS FINAIS ##########")
      		//Cálculos se Necessário:
      		//Declarações Finais:
      		escreva("\nAo todo, você digitou " + qtNumeros + " Valores.")
      		escreva("\nVocê digitou " + qtPar + " PARES.")
      		escreva("\nO valor de " + numImparMenor + " o menor númer ÍMPAR digitado.")
      		escreva("\n============================================")	
      		escreva("\n\n------------------------ Fim ------------------------")
      	}
      }
    • #104501
      Tutora Jessica
      Moderador

      Ola Neander, então, seu código não esta funcionando, ele esta faltando organização, tem muita coisa fora do lugar..
      Eu te indicaria assistir essa aula novamente e ir fazendo passo a passo junto ao professor Guanabara.
      O importante é você prestar bastante a atenção no que o exercício pede e a partir dai montar seu código..
      Caso não consiga só retornar ao fórum.
      Bons estudos 🖖

    • #104536
      Neander Fontes
      Participante

      Sim Jessica, Muito Obrigado pelas informações.
      Eu Havia notado que não estava funcionando, talvez eu tenha me expressado mal…
      Porém dentro da lógica que eu criei nesse exercício, Existe como solucionar o meu programa?
      talvez como você mesma disse, organizando melhor, pois dentro de outros exercícios do mesmo assunto eu acertei tranquilo as questões.
      E Quero aprender a desenvolver melhor o meu próprio raciocínio, me ajuda nisso nesse programa?

      Obrigado 😀

    • #104538
      Tutora Jessica
      Moderador

      Olá Neander, então.. tem sim!!
      Eu mexi no seu código mas precisei mexer bastante para ele funcionar conforme é pedido no exercício.
      Você está certíssimo de criar sua própria lógica, por isso pedi para que olhasse novamente essa aula , para compreender cada passo do que é pedido.
      Seu código não está 100% sem funcionar, ele funciona em partes mas não faz o que o exercício manda, você pode procurar novas formas de código.. aqui seguimos o passo a passo do professor Guanabara nas aulas.
      Muito boa sua iniciativa , te sugiro realmente assistir mais uma vez essa aula .
      Bons estudos 🖖🏼

Visualizando 11 respostas da discussão
  • Você deve fazer login para responder a este tópico.