Ir ao conteúdo
  • Cadastre-se
Starkky

VisualG Sintaxe incorreta em uma equação

Posts recomendados

Olá pessoal, estou aprendendo a programar e para me ajudar a treinar fiz um algoritmo que calcula a resultante entre duas forças, porém estou a uns dois dias empacado em duas linhas que apresentam erro de sintaxe incorreta, no algoritmo abaixo as duas linhas com erros estão marcadas com comentários, se alguém puder me esclarecer o que estou fazendo de errado eu ficaria muito grato:

 

Algoritmo "Cálculo da resultante entre duas forças"
// Criado por : Matheus Borges
// Data atual : 12/04/2019


Var
   forca1: real
   forca2: real
   resultante: real
   anguloG: real  //ângulo em graus
   anguloR: real  //ângulo em radianos

Inicio
      ESCREVA ("Informe o valor da Força 1: ")
      LEIA (forca1)
      ESCREVA ("Informe o valor da Força 2: ")
      LEIA (forca2)
      ESCREVA ("Informe o ângulo entre as duas forças: ")
      LEIA (anguloG)
      
      anguloR := anguloG*3.14/180
      
      ESCOLHA anguloG
              CASO = 0
                   resultante := forca1 + forca2
              CASO = 90
                   resultante^2 := forca1^2 + forca2^2 //Essa linha apresenta sintaxe incorreta
              CASO = 180
                   resultante := forca1 - forca2
              OUTROCASO
                   resultante^2 := forca1^2 + forca2^2 + 2 * forca1 * forca2 * Cos(anguloR) //Essa linha apresenta sintaxe incorreta
      fimescolha

      
      ESCREVA ("A resultante é: ", resultante)

fimalgoritmo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Starkky.

 

Sobre:

1 hora atrás, Starkky disse:

[...] estou a uns dois empacado em duas linhas que apresentam erro de sintaxe incorreta, no algoritmo abaixo as duas linhas com erros estão marcadas com comentários [...]

 

Temos:

1 hora atrás, Starkky disse:

resultante^2 := forca1^2 + forca2^2

 

Traduzindo temos: "o quadrado da resultante é igual a soma dos quadrados das forças" (acertei? rs).

 

Então, a ideia da expressão em si está correta, apenas que o VisuAlg não entende essa estrutura (não foi desenvolvida para entender assim)... O operador ":=", resumidamente falando, "pega o resultado da expressão que está no lado direito e joga na variável que está no lado esquerdo".

 

Basta simplificar:

Fr² = F1² + F2²

Fr = ± raiz(F1² + F2²)

Creio eu que as forças são em módulo, certo? mas, independentemente, elas estão sendo elevadas ao quadrado, logo, sempre vai ser positivo. Resultando em:

Fr = raiz(F1² + F2²)

 

O mesmo vale para a "fórmula geral".

 

 

RESUMIDAMENTE:

algoritmo "Cálculo da resultante entre duas forças"
// Criado por : Matheus Borges
// Data atual : 12/04/2019
var
   forca1  :real
   forca2  :real
   forcaR  :real
   anguloG :real //ângulo em graus
   anguloR :real //ângulo em radianos

inicio
   escreva("Informe o valor da Força 1 (em N): ")
   leia(forca1)
   escreva("Informe o valor da Força 2 (em N): ")
   leia(forca2)
   escreva("Informe o ângulo entre as duas forças (em º): ")
   leia(anguloG)

   //anguloR := anguloG*3.14/180
   anguloR := anguloG * PI / 180

   escolha anguloG
      caso = 0
         forcaR := forca1 + forca2
      caso = 90
         forcaR := RaizQ(forca1^2 + forca2^2)
      caso = 180
         forcaR := Abs(forca1 - forca2)
      outroCaso
         forcaR := RaizQ(forca1^2 + forca2^2 + 2 * forca1 * forca2 * Cos(anguloR))
   fimEscolha

   //escreval("A resultante é: ", forcaR)
   escreval("O módolo da força resultante é: ", forcaR)

fimAlgoritmo

 

Como a fórmula geral vale para qualquer ângulo, poderia ficar assim:

algoritmo "Cálculo da resultante entre duas forças"
// Criado por : Matheus Borges
// Data atual : 12/04/2019
var
   forca1  :real
   forca2  :real
   forcaR  :real
   anguloG :real //ângulo em graus
   anguloR :real //ângulo em radianos

inicio
   escreva("Informe o valor da Força 1 (em N): ")
   leia(forca1)
   escreva("Informe o valor da Força 2 (em N): ")
   leia(forca2)
   escreva("Informe o ângulo entre as duas forças (em º): ")
   leia(anguloG)

   anguloR := anguloG * PI / 180

   forcaR := RaizQ(forca1^2 + forca2^2 + 2 * forca1 * forca2 * Cos(anguloR))

   escreval("O módolo da força resultante é: ", forcaR)
     
fimAlgoritmo

 

Para efeito de demonstração, dá para simplificar os passos:

algoritmo "Cálculo da resultante entre duas forças"
// Criado por : Matheus Borges
// Data atual : 12/04/2019
var
   forca1  :real //força em Newton
   forca2  :real //força em Newton
   anguloG :real //ângulo em graus

inicio
   escreva("Informe o valor da Força 1: ")
   leia(forca1)
   escreva("Informe o valor da Força 2: ")
   leia(forca2)
   escreva("Informe o ângulo entre as duas forças (em º): ")
   leia(anguloG)
   escreval("A resultante é: ", RaizQ(forca1^2 + forca2^2 + 2 * forca1 * forca2 * Cos(anguloG * PI / 180)))
fimAlgoritmo

 

Obs. 1: julgo que a primeira forma fica mais interessante.

 

Sugiro dar uma revisada nos princípios da "Força Resultante"... não sei exatamente como ficaria essa questão do módulo do valor, por exemplo.

 

Qualquer dúvida ou comentário é só postar.

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas Obrigado pela ajuda, esclareceu todas as dúvidas que eu tinha. A respeito das forças, elas não precisam estar em módulo, pois estão relacionadas à massa e aceleração de um corpo, logo sempre serão positivas

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 horas atrás, Starkky disse:

@Simon Viegas Obrigado pela ajuda, esclareceu todas as dúvidas que eu tinha. A respeito das forças, elas não precisam estar em módulo, pois estão relacionadas à massa e aceleração de um corpo, logo sempre serão positivas

 

Consideramos que não existe massa negativa, OK. Mas a aceleração pode ser negativa! não?

 

A fórmula geral usa MÓDULOS. Tem que analisar também como fica a questão da mudança de sentido...

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!