Ir ao conteúdo

Posts recomendados

Postado

To nessa prova infeliz n consigo responder vou repetir

 

Desenvolva um algoritmo que leia N valores inteiros (0- finaliza) que apresente: 

  • quantidade de valores acima de 50
  • soma e a media dos valores pares
  • soma e a media dos valores impares
  • diferença entre a soma dos valores pares e impares.
     

Programa: 
 

algoritmo "semnome"
// Disciplina  : [Linguagem e Lógica de Programação]
// Professor  : Antonio Carlos Nicolodi
// Descrição  : Aqui você descreve o que o programa faz! (função)
// Autor(a)  : Nome do(a) aluno(a)
// Data atual : 16/12/2020
Var
   // Seção de Declarações das variáveis
   num: vetor [0..100] de inteiro
   aux,i,p,q : inteiro
   par, impar: inteiro

Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   q<-1
   para i de 0 ate 100 faca
      escreva("Informe o",i+1,"º número : ")
      leia(aux)
      se aux % 2 <> 0 entao
         se p < 100 entao
            num[p]<-aux
            p<-p+2
         fimse
      senao
         se q < 100 entao
            num[q]<-aux
            q<-q+2
         fimse
      fimse
   fimpara
   limpatela

   se (aux>=50) entao
      escreval("Os numeros maiores que 50 são", p)
   fimse
   se
      escreval
      para i de 0 ate 100 faca
         escreva(i," Posição Do Vetor Tem O Número ",num[i])
         se num[i]%2=0 entao
            par<- num[i]%2=0
            escreval("Par")
         senao
            escreval("ímpar")
         fimse
      fimpara
      se aux=0 entao
Fimalgoritmo

 

  • Membro VIP
Postado

@MidoraQuebraTudo, simplesmente pare para prestar mais atenção naquilo que está sendo pedido.

 

Veja o enunciado:

 

7 horas atrás, MidoraQuebraTudo disse:

Desenvolva um algoritmo que leia N valores inteiros (0- finaliza) que apresente: 

  • quantidade de valores acima de 50
  • soma e a media dos valores pares
  • soma e a media dos valores impares
  • diferença entre a soma dos valores pares e impares.

 

A primeira linha tem:

7 horas atrás, MidoraQuebraTudo disse:

Desenvolva um algoritmo que leia N valores inteiros (0- finaliza) que apresente: 

 

Você entendeu o que foi solicitado? Em qual parte do teu código você está fazendo isso?

  • Membro VIP
Postado

@MidoraQuebraTudo, simplesmente pare para prestar mais atenção naquilo que está sendo pedido e no que está sendo orientado.

 

 

11 horas atrás, MidoraQuebraTudo disse:

Desenvolva um algoritmo que leia N valores inteiros (0- finaliza) [...]

 

Ele está solicitando que fique lendo valores até que seja inserido o 0. Algo como:

 

algoritmo "semnome"
var
   num: inteiro

inicio
   repita
      escreva ("Numero: ")
      leia(num)


   ate num = 0
fimAlgoritmo

 

Aí, implementa só mais uma coisa, exemplo: 

 

11 horas atrás, MidoraQuebraTudo disse:

Desenvolva um algoritmo que leia N valores inteiros (0- finaliza) que apresente: 

  • quantidade de valores acima de 50

 

 

Poderia fazer algo como:

 

algoritmo "semnome"
var
   num: inteiro
   qtdMaior50: inteiro

inicio
   qtdMaior50 <- 0
   repita
      escreva ("Numero: ")
      leia(num)
      se num > 50 entao
         qtdMaior50 <- qtdMaior50 + 1
      fimSe
   ate num = 0
   escreval("Quantidade de valores acima de 50: ", qtdMaior50:1)
fimAlgoritmo

 

 

Pronto.

 

@MidoraQuebraTudo, pegue esse código acima. Já adianto que ele não está funcionando corretamente. Faça testes e ajuste o que tem que ajustar. Se tiver dúvidas, pare para entender o que está acontecendo e se vire para corrigir... caso não consiga, pode ficar a vontade para tirar dúvidas aqui... mas não tente fazer outra coisa antes de corrigir esse trecho.

 

Após conseguir deixar esse trecho funcionando, ou seja: contanto corretamente a quantidade de maiores que 50, faça um próximo: você vai fazer apenas a soma valores pares e exibir o resultado na tela. Só isso. Se tiver dúvidas, se vire para tentar corrigir, caso tenha dúvidas sobre alguma parte, é só postar.

 

Poste o código aqui.

 

No aguardo.

  • 2 semanas depois...
Postado

Acredito que você não leu direito o que foi proposto. Não entendi quase nada do que mostrou, mas de forma bem simplificada, segue o que fiz.

 

PS: Gostei do desafio (foi ao menos pra mim, mero iniciante)

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 25/12/2020
// Seção de Declarações 
var
      valor_par, valor_impar, qtd_valor_par, qtd_valor_impar, media_par, media_impar, diferenca: real
      valor, acima50: inteiro
inicio
      repita
      
            escreva( "Informe um valor inteiro: " )
            leia( valor )

            se ( valor > 50 ) entao
               acima50 <- acima50 + 1
            fimse

            se ( ( valor % 2 ) = 0 ) entao
               //Então o valor é par
               valor_par <- valor_par + valor //Realiza a soma
               qtd_valor_par <- qtd_valor_par + 1 //Conta quantos valores pares existem
            senao
                 //Então o valor é ímpar
                 valor_impar <- valor_impar + valor //Realiza a soma
                 qtd_valor_impar <- qtd_valor_impar + 1 //Conta quantos valores ímpares existem
            fimse

      ate ( valor = 0 )
      
          media_par <- valor_par / qtd_valor_par
          media_impar <- valor_impar / qtd_valor_impar
          
          diferenca <- valor_par - valor_impar

      limpatela

      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS ACIMA DE 50: ", acima50 )
      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS PARES" )
      escreval( "SOMA: ", valor_par )
      escreval( "QUANTIDADE: ", qtd_valor_par )//Não entendi porque ele está pegando o zero pra quantidade, mas em geral, funciona. =]
      escreval( "MÉDIA: ", media_par )
      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS ÍMPARES" )
      escreval( "SOMA: ", valor_impar )
      escreval( "QUANTIDADE: ", qtd_valor_impar )
      escreval( "MÉDIA: ", media_impar )
      escreval( "---------------------------------------" )
      escreval( "> DIFERENÇA ENTRE PARES E ÍMPARES: ", diferenca )
      escreval( "---------------------------------------" )


fimalgoritmo

 

Postado

Vi o perrengue de um colega no fórum, aceitei o desafio, e me prontifiquei a resolver o problema (detalhe, sou iniciante em programação). A atividade pede:

Citação

 

Desenvolva um algoritmo que leia N valores inteiros (0- finaliza) que apresente: 

- quantidade de valores acima de 50

- soma e a media dos valores pares

- soma e a media dos valores impares

- diferença entre a soma dos valores pares e impares.

 

 

Consegui construir e deixá-lo funcional...

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 25/12/2020
// Seção de Declarações 
var
      valor_par, valor_impar, qtd_valor_par, qtd_valor_impar, media_par, media_impar, diferenca: real
      valor, acima50: inteiro
inicio
      repita
      
            escreva( "Informe um valor inteiro: " )
            leia( valor )

            se ( valor > 50 ) entao
               acima50 <- acima50 + 1
            fimse

            se ( ( valor % 2 ) = 0 ) entao
               //Então o valor é par
               valor_par <- valor_par + valor //Realiza a soma
               qtd_valor_par <- qtd_valor_par + 1 //Conta quantos valores pares existem
            senao
                 //Então o valor é ímpar
                 valor_impar <- valor_impar + valor //Realiza a soma
                 qtd_valor_impar <- qtd_valor_impar + 1 //Conta quantos valores ímpares existem
            fimse

      ate ( valor = 0 )
      
          media_par <- valor_par / qtd_valor_par
          media_impar <- valor_impar / qtd_valor_impar
          
          diferenca <- valor_par - valor_impar

      limpatela

      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS ACIMA DE 50: ", acima50 )
      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS PARES" )
      escreval( "SOMA: ", valor_par )
      escreval( "QUANTIDADE: ", qtd_valor_par )
      escreval( "MÉDIA: ", media_par )
      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS ÍMPARES" )
      escreval( "SOMA: ", valor_impar )
      escreval( "QUANTIDADE: ", qtd_valor_impar )
      escreval( "MÉDIA: ", media_impar )
      escreval( "---------------------------------------" )
      escreval( "> DIFERENÇA ENTRE PARES E ÍMPARES: ", diferenca )
      escreval( "---------------------------------------" )


fimalgoritmo

 

O que me incomoda é que no momento em que executa a primeira vez a estrutura de repetição o bloco de código que verifica se é número par, ele conta o 'zero', que é utilizado para sair do loop, como item par, logo, em quantidade apresenta 2 valores ao invés de apenas 1.

 

Há possibilidade de ajuda? 🙁

 

  • Amei 1
Postado

@Hatchiko   para ele não usar o zero do final , coloque um se logo depois de leia , e se for igual a zero não faz nenhum calculo e sai , e seu código está bom , mas tem esses parênteses desnecessários ,  e seu código poderia ser assim  :

algoritmo "soma pares e impares"
// Data : 25/12/2020
var
  valor_par, valor_impar     : real
  qtd_valor_impar, media_par : real
  qtd_valor_par              : real
  media_impar ,diferenca     : real
  valor, acima50             : inteiro
inicio
  repita
    escreva( "Informe um valor inteiro: " )
    leia( valor )
    se valor <> 0 entao                        //  se for zero não faz nenhum calcuLo e sai
      se valor > 50 entao
        acima50 <- acima50 + 1
      fimse
      se valor % 2 = 0 entao                   //  Então o valor é par
        valor_par <- valor_par + valor         //  Realiza a soma
        qtd_valor_par <- qtd_valor_par + 1     //  Conta quantos valores pares existem
      senao                                    //  senao Então o valor é ímpar
        valor_impar <- valor_impar + valor     //  Realiza a soma
        qtd_valor_impar <- qtd_valor_impar + 1 //  Conta quantos valores ímpares existem
      fimse
    fimse
  ate valor = 0
  media_par <- valor_par / qtd_valor_par
  media_impar <- valor_impar / qtd_valor_impar
  diferenca <- valor_par - valor_impar
  limpatela
  escreval( "-----------------------------------------"             )
  escreval( "> NÚMEROS ACIMA DE 50 -------------: ", acima50        )
  escreval( "-----------------------------------------"             )
  escreval( "> NÚMEROS PARES"                                       )
  escreval( "SOMA ------------------------------: ", valor_par      )
  escreval( "QUANTIDADE ------------------------: ", qtd_valor_par  )
  escreval( "MÉDIA -----------------------------: ", media_par      )
  escreval( "-----------------------------------------"             )
  escreval( "> NÚMEROS ÍMPARES"                                     )
  escreval( "SOMA ------------------------------: ", valor_impar    )
  escreval( "QUANTIDADE ------------------------: ", qtd_valor_impar)
  escreval( "MÉDIA -----------------------------: ", media_impar    )
  escreval( "-----------------------------------------"             )
  escreval( "> DIFERENÇA ENTRE PARES E ÍMPARES -: ", diferenca      )
  escreval( "-----------------------------------------"             )
fimalgoritmo

 

  • Obrigado 1
Postado

@devair1010

Ah sim, entendi. Agradecido pela ajuda. 😃

Quanto aos parênteses desnecessários é mais para organização minha mesmo. 😅

 @devair1010  Utilizando conforme orientou, se eu informar zero como primeiro valor ele não executa mais nada, em contrapartida o programa trava apresentando a mensagem:

Citação

Invalid floating point operation.

e para sair, de fato, apenas utilizando o comando de Parar localizado no Menu ou por meio das teclas CTRL + F2. Porquê isso acontece?

  • Obrigado 1
Postado

@Hatchiko     você pode colocar o comando ate valor = 0  três linhas para baixo  e resolverá bem , 

      senao                                    //  senao Então o valor é ímpar
        valor_impar <- valor_impar + valor     //  Realiza a soma
        qtd_valor_impar <- qtd_valor_impar + 1 //  Conta quantos valores ímpares existem
      fimse
      //fimse
      //ate valor = 0
      media_par <- valor_par / qtd_valor_par
      media_impar <- valor_impar / qtd_valor_impar
      diferenca <- valor_par - valor_impar
    fimse               
  ate valor = 0               
  limpatela

 

Postado

Hey colega, segue abaixo o código atualizado e funcionando perfeitamente. Espero que entenda e supra seu problema a fim de entender o exercício proposto.

algoritmo "semnome"
// Função :
// Autor :
// Data : 25/12/2020
// Seção de Declarações
var
      valor_par, valor_impar, qtd_valor_par, qtd_valor_impar, media_par, media_impar, diferenca: real
      valor, acima50, contador: inteiro
inicio
      contador <- 1 //O contador é apenas deixar a solicitação do valor mais convidativo
      repita

            escreva( "Informe ", contador, "º valor inteiro: " )
            leia( valor )

            contador <- contador + 1

            se ( valor = 0 ) entao
                 escreva( "Programa encerrado!" )
            senao
                  se ( valor > 50 ) entao
                     acima50 <- acima50 + 1
                  fimse

                  se ( ( valor % 2 ) = 0 ) entao
                     //Então o valor é par
                     valor_par <- valor_par + valor //Realiza a soma
                     qtd_valor_par <- qtd_valor_par + 1 //Conta quantos valores pares existem
                  senao
                       //Então o valor é ímpar
                       valor_impar <- valor_impar + valor //Realiza a soma
                       qtd_valor_impar <- qtd_valor_impar + 1 //Conta quantos valores ímpares existem
                  fimse
            fimse

      ate ( valor = 0 )

          media_par <- valor_par / qtd_valor_par
          media_impar <- valor_impar / qtd_valor_impar

          diferenca <- valor_par - valor_impar

      limpatela

      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS ACIMA DE 50: ", acima50 )
      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS PARES" )
      escreval( "SOMA: ", valor_par )
      escreval( "QUANTIDADE: ", qtd_valor_par )
      escreval( "MÉDIA: ", media_par )
      escreval( "---------------------------------------" )
      escreval( "> NÚMEROS ÍMPARES" )
      escreval( "SOMA: ", valor_impar )
      escreval( "QUANTIDADE: ", qtd_valor_impar )
      escreval( "MÉDIA: ", media_impar )
      escreval( "---------------------------------------" )
      escreval( "> DIFERENÇA ENTRE PARES E ÍMPARES: ", diferenca )
      escreval( "---------------------------------------" )


fimalgoritmo

 

Resultado na imagem em anexo.

 

Sem título 2.png

  • Curtir 2
  • Membro VIP
Postado
Em 25/12/2020 às 23:25, devair1010 disse:

@Hatchiko     você pode colocar o comando ate valor = 0  três linhas para baixo  e resolverá bem , 

 

 

Creio que não... e de um modo geral, os cálculos deveriam fica após o ate mesmo... já que precisam ser feito apenas uma única vez.

 

 

Em 25/12/2020 às 22:09, Hatchiko disse:

@devair1010  Utilizando conforme orientou, se eu informar zero como primeiro valor ele não executa mais nada, em contrapartida o programa trava apresentando a mensagem:

Citação

Invalid floating point operation.

e para sair, de fato, apenas utilizando o comando de Parar localizado no Menu ou por meio das teclas CTRL + F2. Porquê isso acontece?

@Hatchiko, tente entender o que o erro significa... No VisualG, nem sempre a mensagem ajuda, mas já é um pontapé inicial. Uma forma interessante de ver onde está dando esse erro é pressionando F8 (em vez de F9) e ir seguindo passo a posso o fluxo do programa. Veja onde está o erro, entenda o erro e daí busque uma solução.

 

Adendo: esse problema já existia antes das novas alterações... ou seja: é bom ter a noção que não necessariamente "um problema detectado após uma alteração é fruto da alteração em si". É preciso exercitar e praticar a abstração.

  • Curtir 1
  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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