Programação Básica – Módulo 03: Repetições Portugol ex034

Home Fóruns Programação Básica Programação Básica – Módulo 03: Repetições Portugol ex034

Marcado: 

Visualizando 8 respostas da discussão
  • Autor
    Posts
    • #85630

      No exercício pede para o programa ler 5(cinco) números e dentre esses números somar os pares, os ímpares e dar a média de cada um deles. Porém, quando lemos somente números pares ou somente ímpares, o programa dá erro na hora de tirar a média de 0(zero). Eu tentei criar uma solução com a estrutura condicional SE, mas não consegui informar ao usuário que se caso não digitasse nenhum número par ou ímpar, não seria possível tirar sua média.
      Alguém pode me ajudar com essa solução?

      programa
      {

      inclua biblioteca Tipos –> t
      funcao inicio()
      {
      inteiro cont = 1, num, p = 0, i = 0, sp = 0, si =0

      enquanto ( cont <= 5) {
      escreva(“Digite o ” + cont + “º valor: “)
      leia(num)
      se (num % 2 == 0) {
      p ++
      sp += num
      se(sp == 0) {
      escreva(“Não podemos tirar a média dos números pares”)
      }
      } senao {
      i ++
      si += num
      }
      cont ++
      }
      real mp = t.inteiro_para_real(sp) / p
      real mi = t.inteiro_para_real(si) / i
      escreva(“\n——————————“)
      escreva(“\nVocê digitou ” + p + ” números pares.”)
      escreva(” E a média entre eles é ” + mp)
      escreva(“\nVocê digitou ” + i + ” números ímpares.”)
      escreva(” E a média entre eles é ” + mi)
      }
      }

    • #85631

      Eu acho que consegui uma solução aqui, tive que colocar a condição SE fora do laço de repetição:

      programa
      {

      inclua biblioteca Tipos –> t
      inclua biblioteca Matematica –> m
      funcao inicio()
      {
      inteiro cont = 1, num, p = 0, i = 0, sp = 0, si =0

      enquanto ( cont <= 5) {
      escreva(“Digite o ” + cont + “º valor: “)
      leia(num)
      se (num % 2 == 0) {
      p ++
      sp += num
      } senao {
      i ++
      si += num
      }
      cont ++
      }

      real mp = t.inteiro_para_real(sp) / p
      real mi = t.inteiro_para_real(si) / i

      escreva(“\n——————————“)
      se(sp == 0) {
      escreva(“\nNão foi informado nenhum número par”)
      escreva(” e não há como tirar a média.”)
      } senao{
      escreva(“\nVocê digitou ” + p + ” números pares.”)
      escreva(” E a média entre eles é ” + m.arredondar(mp, 2))
      }
      se(si == 0) {
      escreva(“\nNão foi informado nenhum número par”)
      escreva(” e não há como tirar a média.”)
      } senao {
      escreva(“\nVocê digitou ” + i + ” números ímpares.”)
      escreva(” E a média entre eles é ” + m.arredondar(mi, 2))
      }
      escreva(“\n\n”)
      }
      }

    • #85632

      Corrigindo o código anterior:

      programa
      {

      inclua biblioteca Tipos –> t
      inclua biblioteca Matematica –> m
      funcao inicio()
      {
      inteiro cont = 1, num, p = 0, i = 0, sp = 0, si =0

      enquanto ( cont <= 5) {
      escreva(“Digite o ” + cont + “º valor: “)
      leia(num)
      se (num % 2 == 0) {
      p ++
      sp += num
      } senao {
      i ++
      si += num
      }
      cont ++
      }

      real mp = t.inteiro_para_real(sp) / p
      real mi = t.inteiro_para_real(si) / i

      escreva(“\n——————————“)
      se(sp == 0 e si != 0) {
      escreva(“\nVocê digitou ” + i + ” números ímpares.”)
      escreva(” E a média entre eles é ” + m.arredondar(mi, 2))
      escreva(“\nNão foi informado nenhum número par”)
      escreva(” e não há como tirar a média.”)
      } senao se(si == 0 e sp != 0){
      escreva(“\nVocê digitou ” + p + ” números pares.”)
      escreva(” E a média entre eles é ” + m.arredondar(mp, 2))
      escreva(“\nNão foi informado nenhum número ímpar”)
      escreva(” e não há como tirar a média.”)
      }
      escreva(“\n\n”)
      }
      }

    • #98236
      MARCIO PAIVA
      Participante

      Oi Jéssica tudo bem!
      Eu tenha uma dúvida em relação ao exercício 034 pares ou impares
      eu fiz o exercício porém o resultado da média saí diferente a do professor.

      Eis aqui o código para analise:

      programa
      {
      inclua biblioteca Tipos–>t

      funcao inicio()
      {
      escreva(“{EXERCÍCIO 034-Pares ou impares}”)
      inteiro v,cont,somap,somaip,par,impar
      real mp,mip
      par = 0
      impar = 0
      somap = 0
      somaip = 0
      mp = 0
      mip = 0
      cont = 1
      enquanto(cont<=5){
      escreva(“\nDigite o “+cont+”º valor “)
      leia(v)
      se(v % 2 == 0){
      par++
      somap = par + v
      }
      se(v % 2!=0){
      impar++
      somaip = impar + v
      }
      cont++
      }
      mp = t.inteiro_para_real(somap)/par
      mip = t.inteiro_para_real(somaip)/impar
      escreva(“\nVocê digitou “+par+” números pares”)
      escreva(” A média foi de “+mp)
      escreva(“\nvocê digitou “+impar+” números impares”)
      escreva(” A média foi de “+mip)
      }
      }

    • #98262
      Tutora Jessica
      Moderador

      Ola Marcio, novamente peço para que se atente ao colocar uma pergunta referente ao exercício específico, trouxe sua dúvida para o tópico do exercício 34, veja se na resolução do Francisney você consegue identificar o que precisa no seu código, senão conseguir só retornar que lhe ajudo. 🖖

    • #102558
      Marcos Missone
      Participante

      Boa Noite

      Peco analise do Exercicios 034 – Ele funciona ao contrario nos resultados

      Cpts

      programa
      {
      	
      /*
      	EXERCICOS 032 - PARES E IMPARES
      	*/
      	//inclua biblioteca Tipos --> t
      	funcao inicio()
      	{
      
      	//VAR
      	
      	inteiro soma1, soma2
      	inteiro c, m1, m2
      	inteiro n1
      	inteiro num1, num2
      	
      	//ATRIBUICAO
      	
      	c = 1
      	soma1 = 0
      	soma2 = 0
      	m1 = 0
      	m2 = 0
      	
      	num1 = 0
      	num2 = 0
      	
      	//ITERACAO
      	
      	enquanto(c <= 5){
      	escreva("Digite o " , c , " valor: ")
      	leia(n1)
      
      	se(n1 % 2 == 0){
      		soma1 += n1
      		num1++
      	}senao{
      		soma2 += n1
      		num2++
      	}
      			
      	c++
      	}
      	m1 = soma1 / num1
      	m2 = soma1 / num2
      	escreva("\n-------------------------------------------------")
      	escreva("\nVoce digitou " , num1 , " numeros pares. A media e: " , m1)
      	escreva("\nVoce digitou " , num2 , " numeros impares. A media e: " , m2)
      	escreva("\n")
      	}
      }
      • #102607
        IcaroFilho
        Moderador

        Bom dia Marcos,

        O código esta muito bem estruturado, parabéns.
        Houve apenas uma falta de atenção ao atribuir o valor a m2. Nele você esta atribuindo o valor de soma1 que se refere aos números pares, quando deveria estar atribuindo o valor de soma2.
        m2 = soma1 / num2 ==> m2 = soma2 / num2

        • Esta resposta foi modificada 2 anos, 1 mês atrás por IcaroFilho.
        • Esta resposta foi modificada 2 anos, 1 mês atrás por IcaroFilho.
    • #102682
      Marcos Missone
      Participante

      Boa Noite

      Fiz de novo o exercicos 034 – Peco o vosso analise:

      programa
      {
      	
      inclua biblioteca Tipos --> t
      	inclua biblioteca Matematica --> m
      	funcao inicio()
      	{
      
      	//VAR
      	
      	inteiro c = 1, num, num1 = 0, num2 = 0
      	inteiro soma1 = 0, soma2 = 0
      	real m1 = 0
      	real m2 = 0
      	
      	//ITERACAO
      	
      	enquanto(c <= 5) {
      		escreva("Digite o " , c , "º valor: ")
      		leia(num)
      
      		se(num % 2 ==0) {
      			soma1 += num
      			num1 ++           //Anotacoes: a variavel num1 e num2 identificam os numeros
      		}senao{               //pares e impares
      			soma2 += num
      			num2 ++
      		}
      	c++	
      	} 
      	//Calculo de mdeias
      	m1 = t.inteiro_para_real(soma1)/num1          
      	m2 = t.inteiro_para_real(soma2)/num2
      	//Resulados
      	escreva("---------------------------------------------")
      	escreva("\nVoce digitou " , num1 , " numeros pares. A media e " ,m.arredondar(m1, 2))
      	escreva("\nVoce digitou " , num2 , " numeros impares. A media e " , m2)
      	escreva("\n")
      	}
      	
      }
    • #102683
      Marcos Missone
      Participante

      Neste primeiro código mesmo que coloquei a soma no lugar certo
      a soma esta estava dando errado, entao comecei novamente o
      o exercício.

      Cpts

      • #102699
        Tutora Jessica
        Moderador

        Ola Marcos,
        Muito bom o código esta correto, parabéns 🖖

    • #106000

      programa
      {
      inclua biblioteca Matematica –> m
      funcao inicio()
      {
      inteiro num
      real c = 1.0, s = 0.0, vp, vi, cp, ci
      cp = 0.0
      ci = 0.0
      vp = 0.0
      vi = 0.0
      enquanto(c<=5){
      escreva(“Digite o “,c,”º valor:”)
      leia(num)
      se(num%2==0){
      cp++
      vp+=num
      }
      se(num%2!=0){
      ci++
      vi+=num
      }
      c++
      }
      escreva(“\nVocê digitou “,cp,” números pares. A média é “,m.arredondar(vp/cp, 2))
      escreva(“\nVocê digitou “,ci,” números pares. A média é “,(vi/ci))
      }
      }`

      • #106040
        Tutora Jessica
        Moderador

        Ola Matheus, alguma dúvida?

      • #106653

        nÃO, SÓ POSTO PARA VER SE TEM ALGUM ERRO, AI FICO ESPERANDO FEEDBACK DE VOCES KK

      • #106817
        Tutora Jessica
        Moderador

        Ola Matheus, o fórum serve mais para tirar as dúvidas, você precisa testar seu código para ver se está funcionando conforme pedido pelo professor, caso esteja com erro e não consiga resolver, venha ao fórum para tentar mos lhe ajudar 🖖🏼

    • #85723
      IcaroFilho
      Moderador

      Parabens Francisney, ótimo código.
      ainda tem duvida a respeito desta questão ?

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