Ir ao conteúdo
  • Cadastre-se

duvida questao pascalzim


Posts recomendados

Em um exercício que solicitava a conversão de temperaturas conforme sua unidade, tentei proceder da forma descrita abaixo. O intuito era criar condições para que os cálculos das temperaturas já tivessem armazenados, só precisando na entrada de dados informar as unidades, mas meu resultado só dá zero.

 

Minha duvida: Quero saber se há como fazer realmente essa condição. Vi que fiz uma condição para o tipo de unidade e ai executar o calculo. Isso pode? Abraços e obrigado.

Program q6;varC,F,K,T:REAL;U1,U2:STRING;ce,fa,ke:STRING;Beginwriteln('digite a temperatura: ');readln(T);writeln('digite a unidade: ');readln(U1);writeln('digite a unidade para conversao: ');readln(U2);if (U1=ce) and (U2=fa) thenF:=((9*T)+160)/5;writeln('a temperatura é: ',F);if (U1=fa) and (U2=ce) thenC:= ((5*T)-160)/9;writeln('a temperatura é: ',C);            if (U1=ce) and (U2=ke) thenK:=(T+273);writeln('a temperatura é: ',K);if (U1=ke) and (U2=ce) thenC:=(T-273);writeln('a temperatura é: ',C);if (U1=fa) and (U2=ke) then  K:= ((5*T)+2297)/9;writeln('a temperatura é: ',K);if (U1=ke) and (U2=fa) thenF:=((9*T)-2297)/5;writeln('a temperatura é: ',F);End.
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

1- Faz mais sentido perguntar antes a unidade.. depois o valor, depois a unidade final.

 

2- Para unidades, devem-se informar o que deve ser digitado para para cada opção. Por exemplo, como o usuário vai saber que deveria ser digitar "ce" para Celsius?

 

3- O valor a ser comparado para U1 e U2 é um texto, e não com uma variável, ou seja, seria algo como "if (U1='ce') and (U2='fa') then". Apague esses variáveis ce, fa e ke;

 

4- Sugiro inserir opções mais simples, como solicitar um 'C', 'F' ou 'K'.

 

5- A estrutura de seleção if só se associa a um comando, ou seja, o que vem depois do then. Caso queira utilizar uma se um comando (que é o seu caso), tem que usar begin/end.

 

Tem outros detalhes, mas por enquanto é isso...


No aguardo.

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

Olá.

 

1- Faz mais sentido perguntar antes a unidade.. depois o valor, depois a unidade final.

 

2- Para unidades, devem-se informar o que deve ser digitado para para cada opção. Por exemplo, como o usuário vai saber que deveria ser digitar "ce" para Celsius?

 

3- O valor a ser comparado para U1 e U2 é um texto, e não com uma variável, ou seja, seria algo como "if (U1='ce') and (U2='fa') then". Apague esses variáveis ce, fa e ke;

 

4- Sugiro inserir opções mais simples, como solicitar um 'C', 'F' ou 'K'.

 

5- A estrutura de seleção if só se associa a um comando, ou seja, o que vem depois do then. Caso queira utilizar uma se um comando (que é o seu caso), tem que usar begin/end.

 

Tem outros detalhes, mas por enquanto é isso...

No aguardo.

Ola Simon, obrigado pelas dicas.

Quando apago as variaveis ce,fa,ke ele informa erro com a seguinte mensagem: O identificador 'ce' nao foi declarado dentro do escopo de PROGRAM.

Uma duvida: Informo begin/end; para cada condição que citei? ou so uma vez para todas delas? fiz conforme descrito abaixo e ele roda, mas não efetua os calculos. Abraço e obrigado.:

if (U1=ce) and (U2=fa) thenbeginF:=((9*T)+160)/5;writeln('a temperatura é: ',F);end;if (U1=fa) and (U2=ce) thenbeginC:= ((5*T)-160)/9;writeln('a temperatura é: ',C);            end;if (U1=ce) and (U2=ke) thenbeginK:=(T+273);writeln('a temperatura é: ',K);end;if (U1=ke) and (U2=ce) thenbeginC:=(T-273);writeln('a temperatura é: ',C);end;if (U1=fa) and (U2=ke) then  beginK:= ((5*T)+2297)/9;writeln('a temperatura é: ',K);end;if (U1=ke) and (U2=fa) thenbeginF:=((9*T)-2297)/5;writeln('a temperatura é: ',F);end;End.
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.
 

Ola Simon, obrigado pelas dicas.
Quando apago as variaveis ce,fa,ke ele informa erro com a seguinte mensagem: O identificador 'ce' nao foi declarado dentro do escopo de PROGRAM.

 
Eu comentei sobre isto no item 3 da minha postagem anterior.
 
***
 
 

Uma duvida: Informo begin/end; para cada condição que citei? ou so uma vez para todas delas? fiz conforme descrito abaixo e ele roda, mas não efetua os calculos. Abraço e obrigado.:

if (U1=ce) and (U2=fa) thenbeginF:=((9*T)+160)/5;writeln('a temperatura é: ',F);end;

 
Eu comentei sobre isto no item 5 da minha postagem anterior. Essa parte está certa.

Sobre não efetuar os cálculos, está relacionado com o item 3... (a condição do if que está errada)


***

 
No aguardo.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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