Ir ao conteúdo

Posts recomendados

Postado
algoritmo "bhaskara"
var
   input, a, b, c: inteiro
   xUm, xDois, delta: real

inicio

   //INPUT
   para input de 1 ate 3 faca
      se (input=1) então
         escreval("Digite o valor de A: ")
         leia(a)
      fimse
      se (input=2) então
         escreval("Digite o valor de B: ")
         leia(b)
      fimse
      se (input=3) então
         escreval("Digite o valor de C: ")
         leia(c)
      fimse
   fimpara

   //DELTA
   delta <- b^2 - 4*a*c
   se (delta < 0) então
      escreva("Impossível prosseguir. O valor de delta não possui raiz real.")
   senao se (delta >= 0)
      //CALCULO DE X1 e X2
      xUm <- -b + (raizq(delta))
      xDois <- -b - (raizq(delta))
      //RESULTADO
      escreval()
      escreval("O valor da primeira raiz é de: ", xUm)
      escreval("O valor da segunda raiz é de: ", xDois)
      escrevaL("O valor de delta é: ", delta)
   fimse
fimalgoritmo

 

saudações

Sou novo na programação e fiz um algoritmo que calcula o bhaskara de acordo com os valores que o usuário disponibiliza. Queria saber se tem como eu melhorar esse código - se está limpo, sem tem falhas ou coisa do tipo.

 

  • Curtir 1
  • Amei 1
Postado

O código está bem limpo e legível. Um único ponto que falta é que a fórmula é 

 

X= (- b +-√delta)/(2*a)

 

(Faltou dividir por 2*a)

 

No mais, alguns se podem ser removidos (pense como não corresponder aos se anteriores implica no senão:

 

algoritmo "bhaskara"
var
   input, a, b, c: inteiro
   xUm, xDois, delta: real

inicio

   //INPUT
   para input de 1 ate 3 faca
      se (input=1) então
         escreval("Digite o valor de A: ")
         leia(a)
      fimse
      senao se(input=2) então
         escreval("Digite o valor de B: ")
         leia(b)
      fimse
      senao
         escreval("Digite o valor de C: ")
         leia(c)
      fimse
   fimpara

   //DELTA
   delta <- b^2 - 4*a*c
   se (delta < 0) então
      escreva("Impossível prosseguir. O valor de delta não possui raiz real.")
   senao
      //CALCULO DE X1 e X2
      xUm <- -b + (raizq(delta))
      xDois <- -b - (raizq(delta))
      //RESULTADO
      escreval()
      escreval("O valor da primeira raiz é de: ", xUm)
      escreval("O valor da segunda raiz é de: ", xDois)
      escrevaL("O valor de delta é: ", delta)
   fimse
fimalgoritmo

 

Talvez tenha um fim se a mais dentro do para. Visual g não é minha especialidade

 

  • Obrigado 1
Postado
2 horas atrás, Jão386 disse:

O código está bem limpo e legível. Um único ponto que falta é que a fórmula é 

 

X= (- b +-√delta)/(2*a)

 

(Faltou dividir por 2*a)

 

No mais, alguns se podem ser removidos (pense como não corresponder aos se anteriores implica no senão:

 

algoritmo "bhaskara"
var
   input, a, b, c: inteiro
   xUm, xDois, delta: real

inicio

   //INPUT
   para input de 1 ate 3 faca
      se (input=1) então
         escreval("Digite o valor de A: ")
         leia(a)
      fimse
      senao se(input=2) então
         escreval("Digite o valor de B: ")
         leia(b)
      fimse
      senao
         escreval("Digite o valor de C: ")
         leia(c)
      fimse
   fimpara

   //DELTA
   delta <- b^2 - 4*a*c
   se (delta < 0) então
      escreva("Impossível prosseguir. O valor de delta não possui raiz real.")
   senao
      //CALCULO DE X1 e X2
      xUm <- -b + (raizq(delta))
      xDois <- -b - (raizq(delta))
      //RESULTADO
      escreval()
      escreval("O valor da primeira raiz é de: ", xUm)
      escreval("O valor da segunda raiz é de: ", xDois)
      escrevaL("O valor de delta é: ", delta)
   fimse
fimalgoritmo

 

Talvez tenha um fim se a mais dentro do para. Visual g não é minha especialidade

 


meu deus eu nem percebi kkkk

Caramba, q tonto. Valeu pela ajuda.

na questão dos se, por algum motivo, meu visualg simplesmente não quer reconhecer a sintaxe. Eu rodo o código e esse erro parace: 


CÓDIGO:
image.png.00c3a2b5d466da73ac6d816444795e95.png

 

ERRO:

image.png.c2459ed92c91363881cd4558b70ec98c.png 

 

escrevi alguma coisa errado?

  • Curtir 1
Postado

Acho que assim deve funcionar:

 





algoritmo "bhaskara"
var
   input, a, b, c: inteiro
   xUm, xDois, delta: real

inicio

   //INPUT
   para input de 1 ate 3 faca
      se (input=1) então
         escreval("Digite o valor de A: ")
         leia(a)
      senao se(input=2) então
         escreval("Digite o valor de B: ")
         leia(b)
      senao
         escreval("Digite o valor de C: ")
         leia(c)
      fimse
   fimpara

   //DELTA
   delta <- b^2 - 4*a*c
   se (delta < 0) então
      escreva("Impossível prosseguir. O valor de delta não possui raiz real.")
   senao
      //CALCULO DE X1 e X2
      xUm <- (-b + raizq(delta))/(2*a)
      xDois <- (-b - raizq(delta))/(2*a)
      //RESULTADO
      escreval()
      escreval("O valor da primeira raiz é de: ", xUm)
      escreval("O valor da segunda raiz é de: ", xDois)
      escrevaL("O valor de delta é: ", delta)
   fimse
fimalgoritmo

 

  • Obrigado 1
Postado

@pedroherobrine    seu código está bom para quem é iniciantes ,  e ele funciona com erros ,  como o que você se referiu no #3 , sim você escreveu o "se"  e o "então"  e também o "fimse" dele , e assim o senao ficou isolado ali no meio não servindo para nada ,  pois você finalizou o comando "se" quando colocou o "fimse" , e para que o VisualG reconheça esse senao , precisa remover o "fimse" que está antes dele , e outras coisa é que não precisa desse Loop "para / fimpara" ,  pode escrever direto mesmo pedindo as entradas e lendo as com o leia , pois um loop normalmente é usado quando se quer repetir a mesma coisa várias vezes , por exemplo se você fosse usar um vetor com três posições para guardar os dados de entrada ,  assim usaria apenas uma  mensagem pedindo a entrada e o dado seria inserido no vetor na posição informada pela variável de controle do loop "para / fimpara" que é a sua variável "input" e também na verificação de delta < 0 , não precisa verificar novamente com esse outro "se (delta >=0)" pois se não for menor que zero então é lógico que só pode ser maior ou igual zero ,   e seu código poderia ser assim :

algoritmo "bhaskara"
var
   input, a, b, c    : inteiro
   xUm, xDois, delta : real
inicio
   //ENTRADAS valores para teste (1 2 -8)
   escreval("Digite o valor de A: ")
   leia(a)
   escreval("Digite o valor de B: ")
   leia(b)
   escreval("Digite o valor de C: ")
   leia(c)
   //CALCULO DE delta
   delta <- b^2 - 4*a*c

   se (delta < 0) então
      escreval("Impossível prosseguir. . . !")
      escreval("O valor de delta não possui raiz real.")
   senao
      //CALCULO DE X1 e X2
      xUm   <- (-b + raizq(delta))/(2*a)
      xDois <- (-b - raizq(delta))/(2*a)
      //RESULTADO
      escreval("")
      escreval("O valor da primeira raiz é de -: ", xUm  )
      escreval("O valor da segunda raiz é de --: ", xDois)
      escrevaL("O valor de delta é ------------: ", delta)
      // NA SOLUÇÃO COLOCA SE O MENOR PRIMEIRO 
      se (xUm < xDois) então
          escreval("S = { ",xUm," , ", xDois, " }"           )
      senao
          escreval("S = { ",xDois," , ", xUm, " }"           )
      fimse
   fimse
fimalgoritmo

 

  • Curtir 1
  • Obrigado 1
Postado
Em 09/03/2026 às 23:35, devair1010 disse:

@pedroherobrine    seu código está bom para quem é iniciantes ,  e ele funciona com erros ,  como o que você se referiu no #3 , sim você escreveu o "se"  e o "então"  e também o "fimse" dele , e assim o senao ficou isolado ali no meio não servindo para nada ,  pois você finalizou o comando "se" quando colocou o "fimse" , e para que o VisualG reconheça esse senao , precisa remover o "fimse" que está antes dele , e outras coisa é que não precisa desse Loop "para / fimpara" ,  pode escrever direto mesmo pedindo as entradas e lendo as com o leia , pois um loop normalmente é usado quando se quer repetir a mesma coisa várias vezes , por exemplo se você fosse usar um vetor com três posições para guardar os dados de entrada ,  assim usaria apenas uma  mensagem pedindo a entrada e o dado seria inserido no vetor na posição informada pela variável de controle do loop "para / fimpara" que é a sua variável "input" e também na verificação de delta < 0 , não precisa verificar novamente com esse outro "se (delta >=0)" pois se não for menor que zero então é lógico que só pode ser maior ou igual zero ,   e seu código poderia ser assim :

algoritmo "bhaskara"
var
   input, a, b, c    : inteiro
   xUm, xDois, delta : real
inicio
   //ENTRADAS valores para teste (1 2 -8)
   escreval("Digite o valor de A: ")
   leia(a)
   escreval("Digite o valor de B: ")
   leia(b)
   escreval("Digite o valor de C: ")
   leia(c)
   //CALCULO DE delta
   delta <- b^2 - 4*a*c

   se (delta < 0) então
      escreval("Impossível prosseguir. . . !")
      escreval("O valor de delta não possui raiz real.")
   senao
      //CALCULO DE X1 e X2
      xUm   <- (-b + raizq(delta))/(2*a)
      xDois <- (-b - raizq(delta))/(2*a)
      //RESULTADO
      escreval("")
      escreval("O valor da primeira raiz é de -: ", xUm  )
      escreval("O valor da segunda raiz é de --: ", xDois)
      escrevaL("O valor de delta é ------------: ", delta)
      // NA SOLUÇÃO COLOCA SE O MENOR PRIMEIRO 
      se (xUm < xDois) então
          escreval("S = { ",xUm," , ", xDois, " }"           )
      senao
          escreval("S = { ",xDois," , ", xUm, " }"           )
      fimse
   fimse
fimalgoritmo

 


mt melhor

valeu pela ajuda, me ajudou mt 

eternamente grato

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