Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luucas Geerab

Como eu faço esse exercicio pelo VisuALG?

Recommended Posts

Olá pessoas , estou praticando no visualg , e encontrei algumas dificuldades, preciso de um helpzinho xD

o exercício é básico mas eu encontrei um problema na leitura das 2 condições abaixo!

 

var

 

// Seção de Comando

 

Celsius,Fahrenheit: caracter

 

Tf,Tc: real

 

inicio

 

escreval ("Deseja converter Celsius ou Fahrenheit? ")

leia(celsius)

 

//primeira condição

se Tc = Celsius entao

escreval ("Qual a temperatura? ")

leia (Tc)

Tf <- (Tc*1.8 + 32)

escreval ( )

escreva ("A temperatura em Fahrenheit é" , Tf)

 

Fimse

 

//segunda condição

se Tf = Fahrenheit entao

escreval ("Qual a temperatura? ")

leia (Tf)

Tc <- ( Tf - 32) / 1.8

escreval ( )

escreva ("A temperatura em Celsius é" , Tc)

fimse

 

Ou seja , do jeito que eu pus acima , ele irá ler apenas "leia(Celsius)" ai que ta o erro.

gostaria de fazer com que o programa leia qual temperatura que o Usuário decidir! espero que alguem me ajude ai!

 

obrigado =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Celsius,Fahrenheit: caracter
Tf,Tc: real

inicio

escreval ("Deseja converter Celsius ou Fahrenheit? ")
leia(celsius)

//primeira condição
se Tc = Celsius entao

Você declarou "Celsius e Fahrenheit" como caracter atribuiu algum valor a celsius e depois tentou comparar com a variável "Tc", que é do tipo real e nao foi atribuido nenhum valor a ela

 

//segunda condição
se Tf = Fahrenheit entao
escreval ("Qual a temperatura? ")
leia (Tf)
Tc <- ( Tf - 32) / 1.8

Mesma situação aqui, comparando variáveis de tipos diferentes, observe que Tf e Tc até a hora da comparação estão sem valor.

 

Tente assim

var
// Declaração de variáveis
 opcao: caracter
 Tf,Tc: real

 inicio

 escreval ("Deseja converter: (1) Celsius (2) Fahrenheit? ")
 leia(opcao) // '1' para converter celsius, '2' para converter fahrenheit

 //primeira condição
 se opcao = '1' entao
   escreval ("Qual a temperatura? ")
   leia (Tc)
   Tf <- (Tc*1.8) + 32
   escreval ( )
   escreva ("A temperatura em Fahrenheit é" , Tf)

 //segunda condição
 se opcao = '2' entao
   escreval ("Qual a temperatura? ")
   leia (Tf)
   Tc <- ( Tf - 32) / 1.8
   escreval ( )
   escreva ("A temperatura em Celsius é" , Tc)

 //mensagem de erro
 senao
   escreval ("Opção inválida")
 fimse
fim_algoritmo.

 

Talvez no meu exemplo tenha algum erro de sintaxe, não testei o código no visalg, mas a lógica é isso ai.

Acho que é isso, qualquer duvida estamos ai :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ou menos isso dai amigao, só um problema

 

//primeira condição

se opcao = '1' entao

 

o problema é que eu não quero utilizar por numeração, você atribuiu os graus por uma unica só variavel "opção"

 

antes de faze-lo funcionar eu atribui os valores como você citou acima e deu certo! mas esse não era meu objetivo!

e outra coisa , queria uma codificação que o programa pude-se ler ambos os graus a partir do comando do usuário

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de faze-lo funcionar eu atribui os valores como você citou acima e deu certo! mas esse não era meu objetivo!

e outra coisa , queria uma codificação que o programa pude-se ler ambos os graus a partir do comando do usuário

 

Luucas, entao nao entendi :ermm:

 

1) mostrar opções célsius ou fahrenheit;

2) usuário escolhe um dos dois;

3) se a opção foi célsius, converter para fahrenheit;

4) mostrar valor convertido;

5) se não, se a opção foi fahrenheit, converter para célsius;

6) mostrar valor convertido;

Achei que fosse assim, o que exatamente seu programa tem que fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm entao.. a codificação que você postou corrigindo as sintaxes para funcionar faz com que ele leia em ordem primeiro o Celsius e depois fahrenheit e também faz com que ele não separe a pergunta do resultado!

 

fiz uma nova aqui e ficou assim

algoritmo "Grau"

// Função : Conversão

// Autor : Lucas

// Data : 04/03/2012

// Seção de Declarações

var

escala: caracter

Tf,Tc: real

inicio

escreval ("Deseja converter Celsius ou Fahrenheit? ")

leia(escala)

 

//primeira condição

se escala = "Celsius" entao

escreval ("Qual a temperatura (em Celsius)? ")

leia (Tc)

Tf <- (Tc*1.8 + 32)

escreval ( )

escreva ("A temperatura em Fahrenheit é" , Tf)

 

senao

 

//segunda condição

se escala = "Fahrenheit" entao

escreval ("Qual a temperatura (em Fahrenheit)? ")

leia (Tf)

Tc <- ( Tf - 32) / 1.8

escreval ( )

escreva ("A temperatura em Celsius é" , Tc)

fimse

fimse

 

// Seção de Comandos

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade Luucas foi a mesma coisa que eu fiz, talvez os numeros 1 e 2 do menu tenha te confundido.

Se na opção você colocar: 2 ele vai calcular fahrenheit direto, mas você poderia ter mudado a condição em vez de ser '1' e '2' colocar "celsius" e "fahrenheit" assim como você fez.

No meu caso '1' e '2' são do tipo caracter tambem.

Eu nao sei se visualg diferencia letras maiusculas de minusculas, mas quando você pegar uma linguagem que faça essa diferença você vai ver o transtorno que é o usuario usar cadeias de caracteres, por exemplo:

 

Digite sua opção:

Celsius, Fahrenheit, Kelvin:

Leia (opção)

o usuário digita: " farenrait "

 

Quanto menos o trabalho o usuário tiver menos erro ele pode cometer.

Mas é isso q você fez, espero ter ajudado em algo :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.