Ir para conteúdo
Entre para seguir isso  
Vics

Algoritmo Portugol

Recommended Posts

Olá pessoal, já tentei inúmeras vezes resolver este problema, mas não consegui.

É o seguinte, tenho que escrever um algoritmo que leia o preço de um produto e a quantidade de volumes e no final some tudo e dê o valor final da compra até aí ok, consegui fazer e ficou assim:

 

inteiro preco,quant,cont=0,produtos,soma=0,total1,total2=0


enquanto (cont>=0)  {
  escreva("Digite a quantidade: ")
  leia(quant)
  escreva("Digite o preco do prod: ")
  leia(preco)


  total1 = quant*preco
  soma = soma + quant
  total2 = total2+total1
  cont = cont+1
}
}
escreva("o total da compra foi de: ",total2)
Porém o exercicio pede que quando, em "Digite a quantidade" foi digitado 0 (zero) , o programa pule para a parte de escrever o total da compra e encerrar e é justamente esta parte que nao estou conseguindo desenvolver. Por favor, me ajudem.
Obrigada desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo.

Primeira coisa, em momento algum o usuário está digitando um valor pra 'cont', e ele está sempre incrementando, ou seja, nunca mais vai ser 0.

Segundo, mesmo se o usuário digitasse um valor para 'cont', a condição do seu while (enquanto) deixaria passar se fosse 0, porque 0 é maior ou igual a 0.

 

Minha sugestão:

Mude a condição do enquanto para

enquanto (cont > 0) 

e depois de perguntar o preço, poderia perguntar se ele quer comprar mais

escreva("Continuar comprando? Escreva 0 para sair")
leia(cont)

Ai vai funcionar;

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas o exercício foi específico e disse que o programa deve parar quando em quant for digitado 0, assim lerá que nao tem mais nenhum produto e assim poderá finalizar

 

Obs: pode fazer alterações no algoritmo que montei para que isso seja possível

Obs 2: nao sei se é possivel montar o exercicio desse jeito ou se tenho que seguir a dica que voce deu.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Sim, mas o exercício foi específico e disse que o programa deve parar quando em quant for digitado 0, assim lerá que nao tem mais nenhum produto e assim poderá finalizar

 

Tá;

 

Então faz assim:

enquanto (quant > 0)  {
   //resto do código normal;
}
  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por marcosberaldo
      Pessoal, boa noite.
      Tenho uma tabela no BD que preciso criar um rankin.
      Fiz uma select que soma duas colunas, de pontuação e outra de desempate, depois ordena as somas por jogador e cria o ranking.
      Até ai está funcionando blz.
      Meu problema é o seguinte: Imagine que existam 100 jogadores, eu estou em 70º. Eu quero mostrar o rankin com a minha colocação, mas é inviável criar uma lista com mais de 70 jogadores. O que eu quero é mostrar 10 colocações antes de mim e 10 depois de mim, ou seja, mostrar do 60º ao 80º colocado, mas não consigo fazer isso.
      No meu código criei até um while que identifica minha colocação (70º), mas não consegui criar um while que exiba somente esses 20 jogadores. Se alguém souber como resolver... fico muito grato. Segue o código:
      $sql = "SELECT *, SUM(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE rodada = '$rodada' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acerto_Exato DESC"; // Inicia o While de pontuação $result = mysqli_query($conn, $sql); $result2 = mysqli_query($conn, $sql); $i = 1; // Define 1 para o primeiro lugar no ranking         // Esse while identifica minha posição no ranking         while($r = mysqli_fetch_assoc($result2)) {         $ID_Jog        =    $r['JogadorID'];         $Pos        =    $totalArray[$r['JogadorID']] = $i++;         if($LoginID == $ID_Jog) {          $Minha_Colocacao = $Pos;              }          }                   while($row = mysqli_fetch_assoc($result)) { $ID_Jogador        =    $row['JogadorID']; $Posicao        =    $totalArray[$row['JogadorID']] = $i++."º "; $RankJogador    =    $row['nome']; $Pontos            =    $row['TotalPontos']; $AcertoExato    =    $row['Acertos']; // Verifica se o usuário é o jogador logado e marca um style diferente para ele. if($LoginID == $ID_Jogador) {     // Se for o mesmo jogador define um fundo colorido para a linha dele na tabela     $destaque = "style=\"background-color:#e6a527\"";     //$Pos = explode('º',$Posicao);         } else {     // Caso não seja zera a variável novamente.     unset($destaque); } echo " <div class=\"divTableRow\" $destaque> <div class=\"divTableCell\" align=\"center\">$Posicao</div> <div class=\"divTableCell\" >$RankJogador</div> <div class=\"divTableCell\" align=\"center\">$Pontos</div> <div class=\"divTableCell\" align=\"center\">$AcertoExato</div> </div>"; }  
       
    • Por lucas russo
      Boa noite ,pessoal não estou conseguindo resolver um exercício de algoritmo ,poderiam  me ajudar?
      Segue o exercício :
       
      Elabore um algoritmo que peça ao usuário que digite 1 numero maior que 500 retorne a soma dos fatoriais  de cada numero digitado compreendido  num inervá-lo de 2 números digitados .
    • Por leardini
      Boa noite.
       
      Tenho uma consulta feita em PHP que mostra em uma table o resultado, e preciso que essa consulta o Valor do Campo "ID"  passe para uma Variável para que eu possa usar em outra consulta.
       
      Não consegui muita informação para o tipo de conexão que estou usando SQL Server e não My SQL, e é uns de meus primeiros códigos.
       
      Desde já agradeço a atenção!
       
      $rank = odbc_exec($connection, $verifica); if($pg == 1 or $pg == 0){ $i = 1; }elseif($pg > 1){ $i = $ini+1; } while($dados = odbc_fetch_array($rank)) { $id=$i+1; // AQUI OCORRE O PROBLEMA $idmomb = .$dados['id']; echo ($i % 2) ? "<tr>" : "<tr>"; echo '<td><center>'.$dados['ID'].'</center></td>'; echo '<td><center>'.$dados['MonsterName'].'</center></td>'; echo '<td><center>'.$dados['PublicDrop'].'</center></td>'; echo '<td><center>'.$dados['Quantity'].'</center></td>'; echo '</tr>'; $i++; } echo '</table>';  
    • Por Maykel dos Santos Figueire
      Gostaria de saber como posso fazer para ter inputs enviando valores diferentes dentro de um loop do while...
      <form method="POST" name="form" action="<?php echo $_SERVER['PHP_SELF'];?>"> <?php while ($linhasMotoristas = mysqli_fetch_array($consultaMotoristas)) { $motoristasStatus = $linhasMotoristas['status']; $motoristasId = $linhasMotoristas['idmotoristas']; $motoristasNome = $linhasMotoristas['nome']; $motoristasCpf = $linhasMotoristas['cpf']; $motoristasGanhos = $linhasMotoristas['ganhos'] ?> <tr> <td class="s"> <?php if($motoristasStatus == 1){ echo "<div style='color: green;'>●</div>"; }else{echo "<div style='color: red;'>●</div>"; } ?> </td> <td class="m"><?php echo $motoristasId;?></td> <td class="n"><?php echo $motoristasNome;?></td> <td class="c"><input type="hidden" name="<?php $td_1 = $motoristasId;?>"><?php echo $motoristasCpf;?> </td> <td class="g"><?php echo round($motoristasGanhos, 2);?></td> <td> <input type="text" name="valorBruto"> <input type="submit" name="submit"> <?php if (isset($_POST['submit'])?$_POST['submit'] : 0) { $valorBruto = $_POST['valorBruto']; $porcentagemBase = 5/100; $encargosBase = 25/100; $vezesPorcentagem = $valorBruto*$porcentagemBase; $menosEncargosBase = $vezesPorcentagem-$encargosBase; $resultadoLiquido = $menosEncargosBase*$porcentagemBase; $resultadoGeral = $resultadoLiquido; } ?> <?php echo round($resultadoGeral,2); ?> <?php echo $td_1;?> </td> </tr> <?php } ?> </form> Como vocês podem ver na imagem, ele soma todos os campos com o mesmo valor, queria que somasse um valor para cada campo...

    • Por Matheus.Borges
      como posso codficar um algoritmo que liste os números de 1 a 100 mas nos múltiplos de 3 substitua o número por Dia, nos múltiplos de 5 substitua por Mond e nos múltiplos de 3 e 5 substitua por DiaMond???
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.