• 0
Sign in to follow this  
Natalie M.

Ajuda

Question

O programa recebe como entrada os quilômetros rodados e os litros gastos para cada tanque. Calcula e exibe os quilômetros por litro obtidos para cada tanque.

O problema é que após exibir o resultado ele continua perguntando várias vezes, mesmo depois de eu ter digitado -1, que é o comando que deveria finalizar. Como resolvo isso?

Depois de resolver esse problema, tenho que fazer outras coisas:

"Depois de processar todas as informações fornecidas, o programa deve calcular e imprimir os quilômetros por litro obtidos por todos os tanques combinados (média)."

Como armazeno as informações anteriores, sendo que não há um número de entradas definido? Usei while, mas não consigo calcular a média, já que não sei quantas vezes o usuário informou, não sei pelo que dividir.

#!/usr/bin/perl

$number1l = 0;
$number2q = 0;
$m1 = 0;

 while ($number1l != "-1") {
 print "Digite os litros usados (-1 para fim):\n";
 chomp ($number1l = <STDIN>);
  
 print "Digite os quilômetros dirigidos:\n";
 chomp ($number2q = <STDIN>);

 $m1 = $number2q / $number1l;

 print "Os quilômetros/litro para esse tanque foram: ";
 print $m1;
 chomp $m1;

}

 print "Média total:\n";
 $average =  $m1;

Edited by Natalie M.

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Hi.

O ideal é modelar o algoritmo pra executar a ação fora e dentro do while.

Mas, dá pra fazer um XGH e usar o "last" pra sair do while caso a opção seja igual a "-1".

Algo tipo isso:

#!/usr/bin/env perl

use strict;
use warnings;
use feature qw(say);

my $number1l = 0;
my $number2q = 0;
my $m1 = 0;

while ($number1l != "-1") {
    say "Digite os litros usados (-1 para fim):";
    chomp ($number1l = <STDIN>);
    last if $number1l eq '-1';
      
    say "Digite os quilômetros dirigidos:";
    chomp ($number2q = <STDIN>);

    $m1 = $number2q / $number1l;

    say "Os quilômetros/litro para esse tanque foram: " . $m1;
}

say "Média total:\n$m1";

[]'s

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this