Ir ao conteúdo

VisualG Não consigo calcular a diferença de gols entre os times !


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado
algoritmo "semnome"

var
GB, GM, D: REAL
inicio
      Escreval("BANGU  X  MADUREIRA ")
      Escreval("------------------- ")
      Escreva("Quantos gols BANGU fez? ")
      Leia(GB)
      Escreva("Quantos gols MADUREIRA fez? ")
      Leia(GM)
      D <- (GB - GM)
      Escreval("------------------ ")
      Escreval("DIFERENCA:  ", D)
fimalgoritmo

Ola sou iniciante e estou tentando calcular a diferença de gols de uma partida de futebol, porém o valor me retorna negativo e eu não sei o q estou fazendo errado 😞

 Ja fiz ate coisas mas difíceis porém estou travada nisso sem saber onde estou errando, a cabeça ja não esta funcionando dps de tanta pratica, o mais simples esta se tonando difícil rsrs !!  Ex.: o valor esta voltando - 3,  -2.

 

 

  • Solução
Postado

@mylla1206    você pode usar a Função ABS que mostrar o valor absoluto e sem o sinal de menos 

algoritmo "calcular"
var
  GB, GM, D : real
inicio
  escreval("BANGU  X  MADUREIRA ")
  escreval("------------------- ")
  escreva("Quantos gols BANGU fez? ")
  leia(GB)
  escreva("Quantos gols MADUREIRA fez? ")
  leia(GM)
  D <- GB - GM
  escreval
  escreval("------------------ ")
  escreval("DIFERENCA:  ",abs( D ) )
  escreval
fimalgoritmo

 

  • Curtir 1
  • Membro VIP
Postado

Complementando a sugestão do @devair1010, poderia ajustar diretamente na variável que tem a diferença:

 

Ex.:

   D <- Abs(GB - GM)
   escreval()
   escreval("------------------ ")
   escreval("DIFERENÇA: ", D:1)

 

Teria o mesmo resultado. A diferença é que a varável em si ficaria com o valor da diferença (que é não negativa). Entendo que ficaria mais semântico.

 

 

 

Ou seja: a diferença de placar seria o "módulo da subtração dos dois placares entre si".

 

Outra forma, mais trabalhosa, seria verificar qual dos dois valores é o maior, e daí efetuar a conta de modo que o maior não ficasse no subtraendo. Exemplo:

 

   se (GB > GM) então
      D <-(GB - GM)
   senao
      se (GB < GM) então
         D <-(GM - GB)
      fimSe
   senao
      D = 0
   fimSe
   
   escreval
   escreval("------------------ ")
   escreval("DIFERENÇA: ", D:1)

 

Ou também:

 

   se (GB > GM) então
      D <-(GB - GM)
   senao
      D <-(GM - GB)
   fimSe


Já que se forem iguais, vai dar zero do mesmo jeito

  • Curtir 1
Postado

@Simon Viegas

Em 26/09/2022 às 14:14, Simon Viegas disse:

Complementando a sugestão do @devair1010, poderia ajustar diretamente na variável que tem a diferença:

 

Ex.:

   D <- Abs(GB - GM)
   escreval()
   escreval("------------------ ")
   escreval("DIFERENÇA: ", D:1)

 

Teria o mesmo resultado. A diferença é que a varável em si ficaria com o valor da diferença (que é não negativa). Entendo que ficaria mais semântico.

 

 

 

Ou seja: a diferença de placar seria o "módulo da subtração dos dois placares entre si".

 

Outra forma, mais trabalhosa, seria verificar qual dos dois valores é o maior, e daí efetuar a conta de modo que o maior não ficasse no subtraendo. Exemplo:

 

   se (GB > GM) então
      D <-(GB - GM)
   senao
      se (GB < GM) então
         D <-(GM - GB)
      fimSe
   senao
      D = 0
   fimSe
   
   escreval
   escreval("------------------ ")
   escreval("DIFERENÇA: ", D:1)

 

Ou também:

 

   se (GB > GM) então
      D <-(GB - GM)
   senao
      D <-(GM - GB)
   fimSe


Já que se forem iguais, vai dar zero do mesmo jeito

 

 

@Simon Viegas e @devair1010, mas eu ainda preciso colocar o escolha caso ai dentre, pois preciso que ele escolha entre as diferenças de gols pra dizer se foi: goleada, empate, ou normal . Será que colocando o abs daria pra colocar o escolha caso?

  • Membro VIP
Postado
17 horas atrás, mylla1206 disse:

@Simon Viegas e @devair1010, mas eu ainda preciso colocar o escolha caso ai dentre, pois preciso que ele escolha entre as diferenças de gols pra dizer se foi: goleada, empate, ou normal . Será que colocando o abs daria pra colocar o escolha caso?

 

 

@mylla1206, por enquanto esqueça o escolha/caso. Foque apenas no se e no se/senao. Primeiro precisa ir se aperfeiçoando na lógica... O escolha/caso seria uma estrutura mais específica, ou seja, ela é mais limitada... por sinal, provavelmente não vai dar para fazer fazer esse programa com ele. Deixa ele para depois!

 

 

Resumindo:
Termine de implementar o algoritmo utilizando se ou se/senao e poste o código aqui.

 

Caso tenha dúvidas, dá uma parada... para para entender e resolver, se persistir, posta onde está com problemas.

 

No aguardo.

  • Curtir 1
Postado

@Simon Viegas, deu super certo muito obrigada. Eu estava achando que deveria usar o escolha caso, mas me enganei. Muito obrigada pelas dicas e disponibilidade para responder.

 

algoritmo "PartidaDeFutebol"
altor "Kamila"
var
   GB, GM, D: Real
inicio
   Escreval("BANGU X MADUREIRA ")
   Escreval("----------------- ")
   Escreva("Quantos gols BANGU fez? ")
   Leia(GB)
   Escreva("Quantos gols MADUREIRA fez? ")
   Leia(GM)
   D <- Abs (GB - GM)
   Escreval("------------------ ")
   Escreval("DIFERENCA: ", D)
   Se (D <= 0) então
      Escreval("EMPATE ")
   Senao
      Se (D <= 2) então
         Escreval("NORMAL ")
      Senao
         Se (D <= 3) então
            Escreval ("GOLEADA ")
         FimSe
      FimSe
   FimSe
fimalgoritmo
Postado

@mylla1206 Você também poderia pegar o nome dos times dessa maneira

algoritmo "PartidaDeFutebol"
// autor "Kamila"
var
   gols1, gols2, diferenca: real
   time1, time2: caractere
inicio
   diferenca <- 0
   escreval("Digite o nome do 1 time")
   leia(time1)
   escreval("Digite o nome do 2 time")
   leia(time2)

   time1 <- Maiusc(time1)
   time2 <- Maiusc(time2)

   Escreval(time1 ," X " ,time2)
   Escreval("----------------- ")
   Escreva("Quantos gols ", time1, " fez? ")
   Leia(gols1)
   Escreva("Quantos gols ", time2, " fez? ")
   Leia(gols2)
   diferenca <- Abs (gols1-gols2)
   Escreval("------------------ ")
   Escreval("DIFERENCA: ", diferenca)
   se (diferenca > 0) então
      se (gols1 > gols2) então
         escreva("O ", time1," ganhou ")
      seNao
         escreva("O ", time2," ganhou ")
      fimSe
   seNao
      escreval("Deu EMPATE!")
   fimSe

   se (diferenca > 0) então
      Se (diferenca <= 2) então
         Escreval("NORMAL ")
      SeNao
         Escreval ("de GOLEADA ")
      FimSe
   fimSe
fimalgoritmo

 

  • Curtir 2
  • 4 meses depois...
Postado

Com Escolha Caso também da

algoritmo "futgols"
var
   bang, madur, dif : Inteiro
inicio
      Escreval("-----------------------")
      Escreval("   BANGU X MADUREIRA  ")
      Escreval("-----------------------")
      Escreva("Quantos Gols do BANGU? ")
      leia(bang)
      Escreva("Quantos Gols do MADUREIRA? ")
      leia(madur)
      dif <- Abs(bang - madur)
      Escreval("-----------------------")
      Escreval(" DIFERENCA:", dif)
      Escolha dif
              Caso 0
                   Escreval(" STATUS: EMPATE")
              Caso 1, 2 ,3 ,4
                   Escreval(" STATUS: PARTIDA NORMAL")
              OutroCaso
                   Escreval(" STATUS: GOLEADA")
      FimEscolha
      Escreval("-----------------------")
fimalgoritmo

 

  • Curtir 2
  • 2 semanas depois...
Postado

@Murilo Prestes

Em 28/02/2023 às 08:28, Murilo Prestes disse:

Com Escolha Caso também da

algoritmo "futgols"
var
   bang, madur, dif : Inteiro
inicio
      Escreval("-----------------------")
      Escreval("   BANGU X MADUREIRA  ")
      Escreval("-----------------------")
      Escreva("Quantos Gols do BANGU? ")
      leia(bang)
      Escreva("Quantos Gols do MADUREIRA? ")
      leia(madur)
      dif <- Abs(bang - madur)
      Escreval("-----------------------")
      Escreval(" DIFERENCA:", dif)
      Escolha dif
              Caso 0
                   Escreval(" STATUS: EMPATE")
              Caso 1, 2 ,3 ,4
                   Escreval(" STATUS: PARTIDA NORMAL")
              OutroCaso
                   Escreval(" STATUS: GOLEADA")
      FimEscolha
      Escreval("-----------------------")
fimalgoritmo

 

Só dá certo se o maior está em primeiro e o menor em segundo, como fazer o resultado independente de qual dos times ganhou? Se é que me fiz entender....

 

 

  • Curtir 1
Postado
1 hora atrás, Selma Takahashi disse:

como fazer o resultado independente de qual dos times ganhou

o resultado nesse caso seria a diferença de gols entre os times , e se o  @Murilo Prestes  , colocou o comando "abs" ,  então ele vai mostrar o resultado certo , não importando qual está em primeiro , o maior ou o menor ,

  • 6 meses depois...
Postado
Em 10/03/2023 às 19:11, Selma Takahashi disse:

@Murilo Prestes

 

Só dá certo se o maior está em primeiro e o menor em segundo, como fazer o resultado independente de qual dos times ganhou? Se é que me fiz entender....

 

O que pode se fazer é também adicionar um novo caso com os números negativos, ele usaria no "EscrevaL" a diferença como negativa ainda, porém o status da partida seria corrigido.

 

inicio
      Escreval("-----------------------")
      Escreval("   BANGU X MADUREIRA  ")
      Escreval("-----------------------")
      Escreva("Quantos Gols do BANGU? ")
      leia(bang)
      Escreva("Quantos Gols do MADUREIRA? ")
      leia(madur)
      placar <- (bang - madur)
      Escreval("-----------------------")
      Escreval(" DIFERENCA:", dif)
      Escolha dif
              Caso 0
                   Escreval(" STATUS: EMPATE")
              Caso 1, 2 ,3 ,4
                   Escreval(" STATUS: PARTIDA NORMAL")
              Caso -1, -2, -3, -4
                   Escreval(" STATUS: PARTIDA NORMAL")
              OutroCaso
                   Escreval(" STATUS: GOLEADA")
      FimEscolha
      Escreval("-----------------------")
fimalgoritmo

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!