Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda em uma lógica


A. Kenneth

Pergunta

O meu problema é o seguinte:

Estou fazendo um algoritmo para uma locadora de filme. Nada complicado só em linha de código mesmo.

Mas aconteceu um problema.

Ele pede para que o funcionário digite o valo do filme, quem tem que ser R$ 4.90 ou R$ 3.90. Mas quando rodo o programa ele nunca aceita esses valores e sempre pede pra digitar outro dizendo que digitei um número inválido.

// Inicio da verficacao do valor do filme//
      writeln('Digite o valor do filme (R$ 4.90 ou R$ 3.90).');
      write('R$');
      readln(filme[i].valor);
      while (filme[i].valor <> 4.90) or (filme[i].valor <> 3.90) do
      begin
        writeln('O valor indicado é invalido. Digite apenas R$ 4.90 ou R$ 3.90');
        write('R$');
        readln(filme[i].valor);
      end;
      //fim da verificacao do valor do filme//

O código dessa minha lógica está acima. Quem puder me ajudar agradeço.

Editado por A. Kenneth
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Tenta usar and ao invés de or:

while (filme[i].valor <> 4.90) and (filme[i].valor <> 3.90) do

Do modo que tava a expressão "(filme.valor <> 4.90) or (filme.valor <> 3.90)" sempre dava verdadeira. Pois se o valor fosse 4.90 seria falsa antes do "or" mas seria verdadeira depois do "or", resultando verdadeira a expressão. E se fosse 3.90 seria a mesma coisa.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom do modo que eu falei:

while (filme[i].valor <> 4.90) and (filme[i].valor <> 3.90) do

Funcionou direitinho compilado em C++. Não sei como você tá fazendo ai.

As vézes a comparação de floats usando o = ou <> falha, devido aos erros numéricos que o computador tem.

Tenta fazer a comparação assim:

ValorAbsoluto( filme.valor - 4.90 ) > 10^(-15)

A expressão acima verifica se filme.valor está distante de 4.90.

É só uma dica.

Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...