Ir ao conteúdo

Portugol Algoritmo no Portugol Studio


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Oi,

Eu queria fazer um sistema para repetir uma frase até que a informação correta fosse adicionada porém eu não estou conseguindo. No caso é esse código aqui:

programa
{   
	inclua biblioteca Matematica --> mat
	
real a, b, c,delta 
     real x1, x2 
	real raizdelta, bas_kara
	cadeia RU, continuar 
	logico RL
	funcao inicio()

 

    cortei o meio por que acho era desnecessário, se quiser é só pedir

 

        escreva ("1° valor de x: ", x1, " _ formula: (-b + √Δ)", "\n")
	escreva ("2° valor de x: ", x2, " _ formula: (-b - √Δ)", "\n")
	escreva ("Proxima formula <ax² + bx +c>", "\n")	
            
     escreva ("Qual valor de x você deseja usar? (x1 ou x2): ") 
        leia(RU)
           
            se (RU == "x1") bas_kara = mat.potencia((a*x1),2) + b * x1 + c
            senao se (RU == "x2") bas_kara = mat.potencia((a*x2),2) + b * x2 + c
            enquanto (RU != "x1" ou "x2") escreva ("Qual valor de x você deseja usar? (x1 ou x2): ")
         leia(RU)
            
     escreva ("O valor da equação de segundo grau é: ", bas_kara)         

     //Copyright (C) 2014 - UNIVALI - Universidade do Vale do Itajaí
	}
}


    
Não é realmente necessário fazer isso que estou querendo mas eu quero fazer então se alguém puder me ajudar eu agradeço.

O maior problema que eu estou tendo é que o símbolo para indicar diferença não funciona da forma que eu pensava e eu não estou conseguindo adaptar.

 

 

 

 

 

  • Obrigado 1
  • Solução
Postado

@GabeP    o símbolo de diferença na comparação é esse mesmo "!="  igual o da linguagem c e c++ e c# ,   e o erro é que você está tentando comparar tipos diferentes ,  RU do tipo cadeia com x1 e x2 do tipo real  ,  ali no enquanto ,  e que seria melhor usar ele como sendo faca / enquanto  ,  e assim você pode usar uma outra variável para decidir se digitou certo ou não ,  e voltar lá na pergunta novamente se precisar ,   e essa parte de seu código poderia ser assim  :

programa
{   
    inclua biblioteca Matematica --> mat
	
    real   a=5, b=2, c=2,delta=0 
    real   x1=0, x2=0 
    real   raizdelta=0.00, bas_kara=0.00
    inteiro flag = 0
    cadeia RU="", continuar="" 
    logico RL = verdadeiro
    funcao inicio()
    {
        escreva ("1° valor de x: ", x1, " _ formula: (-b + √Δ)\n")
        escreva ("2° valor de x: ", x2, " _ formula: (-b - √Δ)\n")
        escreva ("Proxima formula < ax² + bx +c >\n")	
        faca 	
        {
            flag = 0
            escreva ("Qual valor de x você deseja usar? (x1 ou x2): ") 
            leia(RU)
            se ( ( RU != "x1" ) e ( RU != "x2" ) )
            {
                flag = 1
            }
        }enquanto( flag == 1 )           
        se (RU == "x1") 
            bas_kara = mat.potencia((a*x1),2) + b * x1 + c
        senao 
            bas_kara = mat.potencia((a*x2),2) + b * x2 + c
        escreva ("O valor da equação de segundo grau é: ", bas_kara)         
    }
}

 

  • Obrigado 1
Postado

Nossa cara muito obrigado, não tinha entendido direito as partes sobre repetição e estava complicado fazer a comparação, na minha cabeça isso "(RU != "x1" ou "x2")" deveria funcionar mas não era bem assimmuito obrigado mesmo. Só mais uma coisa, você poderia me explicar a função da variável "flag"

  • Obrigado 1
Postado

@GabeP     essa flag eh uma variavel qq e serve para controlar  a saida do loop faca / enquanto , pois se não digitou nem x1  nem  x2  ,  essa flag armazena o valor 1 , que faz voltar la no inicio desse loop para pegar novamente o que for digitado .

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