Ir ao conteúdo
  • Cadastre-se

VisualG Como instalar a função de raiz quadrada em uma calculadora do visualg?


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Algoritmo "calculadora"

Var
   // Seção de Declarações das variáveis
   n1:real
   n2:real
   met:caractere
Inicio
   met<-("+"),("-"),("*"),("/"),("^")
   Escreval("digite seu primeiro número ou operação")
   leia(n1)
   Escreval()
   Escreval("agora digite seu segundo número")
   Escreval()
   leia(n2)
   se n1 = ("raiz quadrada") então
      Escreval (raizq(n2))
      seNão então
   fimse
fimalgoritmo
Escreval()
Escreval("agora escolha uma operação")
escreval()
leia(met)
se met = ("+") então
   Escreval(n1+n2)
   seNão então
   se met = ("-") então
      Escreval(n1-n2)
      SeNão então
      se met = ("*") então
         Escreval(n1*n2)
         SeNão então
         se met = ("/") então
            Escreval(n1/n2)
            seNão então
            se met = ("^") então
               Escreval(n1^n2)
            fimse
         fimse
      fimse
   fimse
fimse
fimse
FIMALGoritmo

então pessoal, eu estava fazendo uma calculadora que conseguisse fazer as 4 operações básicas, achei fácil então agora estou tentando adicionar potenciação e radiciação na calculadora, porém estou com dificuldades de inserir a radiciação, pois se eu defino "n1" como um valor Real ele ignora o "seNão" dessa string:

se n1 = ("raiz quadrada") então
Escreval (raizq(n2))
seNão então
fimse

e sempre acaba realizando a raiz quadrada não importando o que você escreva em n1, mas se defino ele como um valor Caractere ele respeita a parte do seNão porém fica impossibilitado de fazer as outras operações matemáticas, tem algum jeito de inserir o comando de raiz quadrada desse jeito que estou tentando fazer dentro do visualg?

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

1#

Sobre:

4 horas atrás, Esleide disse:
4 horas atrás, Esleide disse:





met<-("+"),("-"),("*"),("/"),("^")

 

 

 

Essa sintaxe não existe. Simplesmente apague essa linha.

 

 

 

2#

Sobre:

4 horas atrás, Esleide disse:


   se n1 = ("raiz quadrada") então
      Escreval (raizq(n2))
      seNão então
   fimse

 

 

Essa sintaxe do senao está também incorreta. Não existe "senao/entao". De um modo geral, veja exemplos na internet. (Mas eu vou postar uma base mais pro fim.)

 

 

 

3#

No mesmo código do 2# você está comparando um valor real com o caractere... tá achando que está programando em JavaScript, amigo? :D. Não pode fazer isso. Uma alternativa seria utilizar uma variável do tipo caractere, veria se estaria representando um número ou não de alguma forma, aí converteria para real se precisasse. De qualquer sorte, é melhor pensar em outra forma...

 

 

 

4#

Segue um resumindo do código sem a raiz:

 

algoritmo "Calculadora"
var
   n1, n2: real
   met: caractere
inicio
   escreval("Digite seu primeiro número ou operação")
   leia(n1)
   escreval()
   escreval("Agora digite seu segundo número")
   escreval()
   leia(n2)
   escreval()
   escreval("Agora escolha uma operação")
   escreval()
   leia(met)

   se met = "+" entao
      escreval(n1+n2)
   senao
      se met = "-" entao
         escreval(n1-n2)
      senao
         se met = "*" entao
            escreval(n1*n2)
         senao
            se met = "/" entao
               escreval(n1/n2)
            senao
               se met = "^" entao
                  escreval(n1^n2)
               fimSe
            fimSe
         fimSe
      fimSe
   fimSe
fimAlgoritmo

 

Perceba que o senao fica dentro do se. Se a condição resultar em VERDADEIRO, executa o que está entre o entao e o senao e pula o senao. Caso seja FALSO, pula o trecho entre o entao e o senao e executa o senao.

 

 

 

5#

Para tentar ajudar... segue um exemplo alternativo:

 

algoritmo "Calculadora"
var
   n1, n2: real
   met: caractere
inicio
   escreval()
   escreval("Digite seu primeiro número")
   escreval()
   leia(n1)
   escreval()
   escreval("Agora escolha uma operação")
   escreval()
   leia(met)

   se met = "raiz" entao
      escreval(RaizQ(n1))
   senao
      escreval()
      escreval("Agora digite seu segundo número")
      escreval()
      leia(n2)
      escreval()

      se met = "+" entao
         escreval(n1+n2)
      senao
         se met = "-" entao
            escreval(n1-n2)
         senao
            se met = "*" entao
               escreval(n1*n2)
            senao
               se met = "/" entao
                  escreval(n1/n2)
               senao
                  se met = "^" entao
                     escreval(n1^n2)
                  fimSe
               fimSe
            fimSe
         fimSe
      fimSe
   fimSe
fimAlgoritmo

 

Dica: pressione Ctrl+G para indentar o código. Se fica torto, é porque tem algo fora do lugar.

 

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Simon Viegas cara,  acho que analisando o que você me falou e testando uns negócios no programa eu acho que entendi os problemas que eu estava cometendo xD, e achei criativo o jeito como você mudou o "met" de lugar, além de se parecer mais como você executa uma calculadora (numero, depois operação, depois outro número), acho que preciso praticar um pouco mais de fluxogramas para "liberar" minha criatividade de programação haha. você falou que algumas sintaxes não existiam , como: 

senão então

 ou

met<-("+"),("-"),("*"),("/"),("^")

porém por algum motivo elas não faziam diferença no programa (ou seja, tanto fazia estar quanto não estar) sabe o porquê disto? 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
7 horas atrás, Esleide disse:

porém por algum motivo elas não faziam diferença no programa (ou seja, tanto fazia estar quanto não estar) sabe o porquê disto? 

 

Existe 2 aspectos diferentes:

  1. não dar erro, mesmo sendo uma sintaxe (supostamente) incorreta;
  2. não fazer diferença para o teu algoritmo.

Para o primeiro, é coisa do VisualG... não era nem para rodar... Se você colocar para imprimir a variável aparecerá apenas o "+" (dá para ver nas Áreas da Variáveis do VisualG também). Por algum motivo o VisualG buga e ignora a vírgula e restante da linha... O esperado era dar algum erro e travar a execução da interpretação do código.

 

Já no segundo, como simplesmente está resultado com o primeiro valor (bug), ou seja: está ficando com "+", apenas terá um comportamento de ter esse valor mesmo.. como mais a frente é lido um novo valor para a variável, o programa vai funcionar normalmente, já que em nenhum momento o valor foi utilizado antes de ser substituído (não importa o que tinha na variável)... De um modo geral, como é uma variável que vai ser lida pelo usuário, ela não precisa ser inicializada.

 

Adendo: o que você fez faz até sentido. Seria como uma definição de valores possíveis para variável, né? Isso existe em outras linguagens mais avançadas ou do tipo... inclusive no Pascal (pai do VisualG).

 

  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

  • mês depois...
Em 20/11/2020 às 00:55, Esleide disse:

@Simon Viegas cara,  acho que analisando o que você me falou e testando uns negócios no programa eu acho que entendi os problemas que eu estava cometendo xD, e achei criativo o jeito como você mudou o "met" de lugar, além de se parecer mais como você executa uma calculadora (numero, depois operação, depois outro número), acho que preciso praticar um pouco mais de fluxogramas para "liberar" minha criatividade de programação haha. você falou que algumas sintaxes não existiam , como: 


senão então

 ou


met<-("+"),("-"),("*"),("/"),("^")

porém por algum motivo elas não faziam diferença no programa (ou seja, tanto fazia estar quanto não estar) sabe o porquê disto? 

 

Colega, no portugol não é permitido palavras com acento, logo, senão e então não existem como sintaxe da pseudolinguagem. Bem como o @Simon Viegas falou acima, o programa nem deveria rodar. Em todo caso, dê uma olhadinha no material da Apoio Informática responsável pela construção do Visualg clicando aqui.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!