Ir ao conteúdo
  • Cadastre-se

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


Visitante
Ir à solução Resolvido por devair1010,

Posts recomendados

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.

 

 

Link para o comentário
Compartilhar em outros sites

  • Solução

@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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

@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?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...

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
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@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
Link para o comentário
Compartilhar em outros sites

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 ,

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois...
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

 

Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!