Exercício 63 (Vetores)

Home Fóruns Programação Básica Exercício 63 (Vetores)

Marcado: 

Visualizando 7 respostas da discussão
  • Autor
    Posts
    • #81469
      João Victor
      Participante

      Meu programa ficou um pouco diferente do professor no final dos dois percursos, mas deu certo. Está correto?

      programa
      {
      inclua biblioteca Tipos –> tip

      inclua biblioteca Util –> u
      funcao inicio()
      {
      cadeia nome[6]
      inteiro idade[6], soma = 0
      real media

      para (inteiro p = 0; p < u.numero_elementos(nome); p++){
      escreva(“\nNome da pessoa [” + p + “]:”)
      leia(nome[p])
      escreva(“\nIdade da pessoa[“+ p + “]: “)
      leia(idade[p])
      soma = soma + idade[p]
      }
      escreva(“====== ANALISANDO AS PESSOAS CADASTRADAS ======”)
      media = tip.inteiro_para_real(soma) / u.numero_elementos(nome)
      escreva(“\nMédia de idade: ” + media + ” anos”)
      escreva(“\nPessoas acima da média: “)

      para (inteiro p = 0; p < u.numero_elementos(nome); p++){
      se (idade[p] >= media){
      escreva(“\n -> ” + nome[p] + “(” + idade[p] + “)”)
      }
      }
      escreva(“\n———————————————–“)
      escreva(“\nMaior idade do grupo: “)
      inteiro maiori = 0
      cadeia maiorn = ” ”
      para (inteiro p = 0; p < u.numero_elementos(nome); p++){
      maiori = idade[0]
      se (idade[p] >= maiori){
      maiori = idade[p]
      }
      }
      escreva(maiori)
      escreva(“\nPessoas com a maior idade: “)
      para (inteiro p = 0; p < u.numero_elementos(nome); p++){
      se (idade[p] >= maiori){
      maiorn = nome[p]
      escreva(“\n –> ” + maiorn)
      }
      }
      escreva(“\n————————————————–“)

      }
      }

    • #81718
      Tutora Mayla
      Mestre

      João, o seu código está quase todo certo, parabéns!
      O único problema aqui é que a seguinte atribuição maiori = idade[0] se encontra dentro do laço, dessa forma a cada iteração seu valor vai ser reescrito para idade[0] perdendo assim a informação que tinha sido conseguida. O erro aparece ao inserir a pessoa de maior idade no meio, caso seja a primeira ou a ultima funciona, mas caso seja alguma do meio não sairá com a resposta correta.
      Para solucionar isto basta colocar tal atribuição para antes do para.
      Quanto ao código estar diferente do do professor, há várias formas de solucionar o problema, a sua forma está correta também, após esse pequeno acerto.
      Parabéns e bons estudos, quaisquer dúvidas basta entrar em contato.

    • #109487
      Tatiana Azer Maluf
      Participante

      Boa noite
      Segue exercício para correção:

      programa
      {
      	
      inclua biblioteca Util
      	inclua biblioteca Tipos
      	funcao inicio()
      	{
      		cadeia nome [2]
      		inteiro idade [2], soma = 0, tot = 0, maior = 0
      		real media = 0
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (nome); pos++) {
      			escreva ("Nome: ")
      			leia (nome [pos])
      			escreva ("Idade de " + nome [pos] + ": ")
      			leia (idade [pos])
      		}
      
      		escreva ("\n===== ANALISANDO AS PESSOAS CADASTRADAS =====")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (idade); pos++) {
      			soma += idade [pos]
      			tot++
      		}
      		media = Tipos.inteiro_para_real (soma) / tot
      		escreva ("\n\nMédia de idade: " + media + " anos")
      		escreva ("\nPessoas acima da média: ")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (idade); pos++) {
      			se (idade [pos] > media) {
      				escreva ("\n\t-> " + nome [pos] + " (" + idade [pos] + " anos)")
      			}
      		}
      		escreva ("\n--------------------------------------")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (idade); pos++) {
      			se (pos == 0) {
      				maior = idade [0]
      			} senao {
      				se (idade [pos] > maior) {
      					maior = idade [pos]
      				}
      			}
      		}
      		escreva ("\nMaior idade do grupo: " + maior + " anos")
      		escreva ("\nPessoas com a maior idade: ")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (idade); pos++) {
      			se (idade [pos] == maior) {
      				escreva ("\n\t-> " + nome [pos])
      			}
      		}
      		
      		escreva ("\n\n")
      	}
      }
    • #109587
      Tutora Jessica
      Moderador

      Ola Tatiane, alguma dúvida?

    • #109592
      Tatiana Azer Maluf
      Participante

      Meu código ficou um pouco diferente do professor, está correto assim?

    • #109596
      Tutora Jessica
      Moderador

      Respondi na publicação anterior 🖖

    • #132924
      Filipe Mamud Oliveira
      Participante

      Ola Tutoria,

      Na resolução do meu exercicio tudo saiu correto mas na hora de mostrar mais de uma pessoa com a maior idade ela mostra somente uma das pessoas, vocês poderiam me ajudar a entender por favor?

      programa
      {
      inclua biblioteca Matematica –> mat

      inclua biblioteca Util –> u
      funcao inicio()
      {

      escreva(“———————————————-\n”)
      escreva(” { EXERCICIO 063 – Pessoas e Idades } “)
      escreva(“\n———————————————-\n”)

      cadeia nome[6], maiorn = “”
      inteiro idade[6], p, maior =0
      real midade = 0.0, s = 0.0

      para (p=0; p<u.numero_elementos(nome); p++) {
      faca {
      escreva(“Nome da pessoa [“, p, “]: “)
      leia(nome[p])
      } enquanto (nome[p] == “”)
      faca {
      escreva(“Idade de “, nome[p], “: “)
      leia(idade[p])
      s+=idade[p]
      se (p==0) {
      maior = idade[p]
      maiorn = nome[p]
      } senao {
      se (idade[p] > maior) {
      maior = idade[p]
      maiorn = nome[p]
      }
      }

      } enquanto (idade[p]>= 130 e idade[p] <=0)
      }
      escreva(“\n———————————————-\n”)
      escreva(“\tANALISANDO AS PESSOAS CADASTRADAS”)
      escreva(“\n———————————————-\n”)

      midade = s/ u.numero_elementos(idade)
      escreva(“A média de idade é: “, mat.arredondar(midade, 2))
      escreva(“\nPessoas acima da média: “)
      para (p=0; p<u.numero_elementos(nome); p++) {
      se (idade[p]>= midade) {
      escreva( “\n–> “, nome[p], ” (“, idade[p], ” anos).”)
      u.aguarde(300)
      }
      }
      escreva(“\n———————————————-\n”)
      escreva(“Maior idade do grupo: “, maior, ” anos.”)
      escreva(“\nPessoa(s) com maior idade no grupo: “)
      escreva(“\n–> “, maiorn)
      escreva(“\n———————————————-\n”)
      }
      }

    • #132936
      Tutora Jessica
      Moderador

      Ola Filipe, assim como você fez um PARA em média, você também precisa de um PARA em “Pessoas com maior idade no grupo”. Observe os exemplos e explicações acima.
      Caso continue om dúvidas só retornar ao fórum que vamos lhe ajudar.

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