Ir ao conteúdo
  • Cadastre-se

(Pascal) Distância, Velocidade e Tempo.


tony101

Posts recomendados

Sabendo que:

deltaS=v*t

v=deltaS/t

t=deltaS/v

(foi mal colocar o delta assim, é que eu não sei como colocar).

Faça um porgrama que leia três dados: velocidade, tempo e distância. Caso a distância seja 0 (zero) a fórmula aplicada 1 deverá ser aplicada e exibida a distância; Caso a velocidade seja 0(zero), a fórmula 2 deverá ser aplicada e exibida a velocidade; Caso o tempo seja 0(zero), a fórmula 3 deverá ser aplicada e exibido o tempo.

Ai pessoal... Fiz esse código ai, mas eu quero que no final mostre só a opção que eu digitar zero para saber o resultado, mas está mostrando os três de vez. E também não sei se interpretei a questão da forma correta.

Grato a quem me ajudar...



program questao9;
uses crt;

var tmp, vel, dist: real;

begin

begin
writeln ('digite a velocidade');
readln (vel);
writeln ('digite o tempo');
readln (tmp);
writeln ('digite a distancia');
readln (dist);
clrscr;

if dist = 0 then
dist:= vel*tmp;
writeln ('a distancia é:', dist:2:2);
if vel = 0 then
vel:= dist/tmp;
writeln ('a velocidade é:', vel:2:2);
if tmp = 0 then
tmp:= dist/vel;
writeln ('o tempo é:', tmp:2:2);
end;

readkey;
end.

Link para o comentário
Compartilhar em outros sites

Tens que colocar "begin" e "end" assim:

program questao9;
uses crt;

var tmp, vel, dist: real;

begin

begin
writeln ('digite a velocidade');
readln (vel);
writeln ('digite o tempo');
readln (tmp);
writeln ('digite a distancia');
readln (dist);
clrscr;

if dist = 0 then
begin
dist:= vel*tmp;
writeln ('a distancia é:', dist:2:2);
end;
if vel = 0 then
begin
vel:= dist/tmp;
writeln ('a velocidade é:', vel:2:2);
end;
if tmp = 0 then
begin
tmp:= dist/vel;
writeln ('o tempo é:', tmp:2:2);
end;
end;

readkey;
end.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Sabendo que:

deltaS=v*t

v=deltaS/t

t=deltaS/v

(foi mal colocar o delta assim, é que eu não sei como colocar).

Faça um porgrama que leia três dados: velocidade, tempo e distância. Caso a distância seja 0 (zero) a fórmula aplicada 1 deverá ser aplicada e exibida a distância; Caso a velocidade seja 0(zero), a fórmula 2 deverá ser aplicada e exibida a velocidade; Caso o tempo seja 0(zero), a fórmula 3 deverá ser aplicada e exibido o tempo.

Ai pessoal... Fiz esse código ai, mas eu quero que no final mostre só a opção que eu digitar zero para saber o resultado, mas está mostrando os três de vez. E também não sei se interpretei a questão da forma correta.

Grato a quem me ajudar...



program questao9;
uses crt;

var tmp, vel, dist: real;

begin

begin
writeln ('digite a velocidade');
readln (vel);
writeln ('digite o tempo');
readln (tmp);
writeln ('digite a distancia');
readln (dist);
clrscr;

if dist = 0 then
dist:= vel*tmp;
writeln ('a distancia é:', dist:2:2);
if vel = 0 then
vel:= dist/tmp;
writeln ('a velocidade é:', vel:2:2);
if tmp = 0 then
tmp:= dist/vel;
writeln ('o tempo é:', tmp:2:2);
end;

readkey;
end.

Olá,

É como valecovo sugeriu...

Só alguns dois detalhes.

1) Tem begin/end demais nessa história

program questao9;
uses crt;

var tmp, vel, dist: real;

begin

[COLOR="Red"] begin[/COLOR]
writeln ('digite a velocidade');
readln (vel);
writeln ('digite o tempo');
readln (tmp);
writeln ('digite a distancia');
readln (dist);
clrscr;

if dist = 0 then
dist:= vel*tmp;
writeln ('a distancia é:', dist:2:2);
if vel = 0 then
vel:= dist/tmp;
writeln ('a velocidade é:', vel:2:2);
if tmp = 0 then
tmp:= dist/vel;
writeln ('o tempo é:', tmp:2:2);
[COLOR="Red"] end;[/COLOR]

readkey;
end.

Esse begin/end em vermelho não deveria existir!!! Pra que ele está sendo executado???

2) Exclusividade mútua entre as operações

Se supostamente o programa sempre aceitará um valor nulo (0) e outros dois valores não nulos (diferentes de 0), as proposições SÃO "mutualmente exclusivamente entre si", ou seja, se for uma não poderá ser outra!!!

Daí será mais correto inserir um IF/ELSE, em vez somente de IF...

program questao9;
uses crt;

var tmp, vel, dist: real;

begin
writeln ('digite a velocidade');
readln (vel);
writeln ('digite o tempo');
readln (tmp);
writeln ('digite a distancia');
readln (dist);
clrscr;
if dist = 0 then
begin
dist:= vel*tmp;
writeln ('a distancia é:', dist:2:2);
end
else
if vel = 0 then
begin
vel:= dist/tmp;
writeln ('a velocidade é:', vel:2:2);
end
else
if tmp = 0 then
begin
tmp:= dist/vel;
writeln ('o tempo é:', tmp:2:2);
end;
readkey;
end.

Desta forma se uma das opções for escolhida e ainda tiver outras que poderiam ser verificas, automaticamente essas serão ignoradas!!!

Você usa o Turbo Pascal 7.0 ou 7.1??? Experimente ir apertando F8 (Step Over) e ver como cada "linha" vai sendo percorrida... (compare com o sem o "else" e com o com "else")

Qualquer coisa é só postar

Abraços

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!