Luucas Geerab 0 Denunciar post Postado Março 4, 2012 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
ulfreitas 6 Denunciar post Postado Março 4, 2012 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
Luucas Geerab 0 Denunciar post Postado Março 4, 2012 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
ulfreitas 6 Denunciar post Postado Março 4, 2012 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
Luucas Geerab 0 Denunciar post Postado Março 4, 2012 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
ulfreitas 6 Denunciar post Postado Março 5, 2012 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
Luucas Geerab 0 Denunciar post Postado Março 5, 2012 ajudou sim amigo! pela sua explicação que eu conclui o exercício! eu estava me confundindo um pouco por não saber muito sobre essa linguagem , mas irei praticar obrigado =DD Compartilhar este post Link para o post Compartilhar em outros sites