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

Expressão 02 - while e if


jamiel

Pergunta

<p> 
  

Escreva um programa que encontre quatro tripla de Pit&aacute;goras. Uma tripla de Pit&aacute;goras &eacute; 
uma tripla (a, b, c) de inteiros que satisfazem a equação de Pit&aacute;goras a2 + b2 = c2.  
Gere  randomicamente inteiros no intervalo de 1 a 100. use um comando continue quando a equa&ccedil;&atilde;o for falsa.

</p>

<hr>

<?php

//quantidade igual a zero

$qtde = 0;

//o intervalo das letras
$a = range(1, 100);
$b = range(1, 100);
$c = range(1, 100);

//enquanto a quantidade de vezes for de no máximo 4

   while ($qtde <= 4) {
         

//se a sentença não for satisfeita, volta e procura os números que obedeçam
   if ( $a*$a + $b*$b != $c*$c)  { continue; }

 //incremento na quantidade

      $qtde++; 
      
   }

// mostra as quatro triplas
        echo "As triplas satilde;o : ". $a*$a .' + '. $b*$b .' = '. $c*$c ."<br>";

 

O problema é que não está aparecendo resultado algum. Ainda por cima, diz que na  linha 35 (if ( $a*$a + $b*$b != $c*$c)  { continue; }) há um problema. Não sei também se esse tipo de sentença pode ser colocada dentro de um IF. Enfim, agradeço qualquer ajuda..

 

 

Editado por jamiel
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
<?php
    
    $qtde = 0;
    
    // Cria uma array com números de 1 a 100
    $a = range(1, 100);
    $b = range(1, 100);
    $c = range(1, 100);
    
    // Enquanto a quantidade de vezes for menor ou igual a 1
    while($qtde <= 4) {
        
        // Sorteia um número aleatorio das array
        $A = $a[rand(0,100 - 1)];
        $B = $b[rand(0,100 - 1)];
        $C = $c[rand(0,100 - 1)];
            
        // Se a sentença não for verdadeira, volta e procura novos números que obedeçam a sentença
        if( ($A * $A) + ($B * $B) != ($C * $C) ){
            continue;
        }
        
        // Incremento na quantidade
        $qtde++;
    }
    
    // Exibe os números sorteados
    echo "N&uacute;meros sorteados: " . $A . '&nbsp;' . $B . '&nbsp;' . $C . "<br />";
    
    // Exibe a sentença verdadeira
    echo "As tripas s&atilde;o: " . $A * $A . '&nbsp;+&nbsp;' . $B * $B . '&nbsp;=&nbsp;' . $C * $C . "<br />";
    
?>

Tenta este código aqui funcionou

Link para o comentário
Compartilhar em outros sites

  • 0

Caramba Enio! Show de bola. Mas, tem uma bronca: Ele pede "4 triplas"..

1 - As tripls são ...

2 - As tripls são ...

3 - As tripls são ...

4 - As tripls são ...

Eu até consigo 4 triplas. Mas, só dando enter no navegador. Quando chega na quarta, ele volta para a primeira. A bronca é conseguir as 4 de uma vez só. E ir mudando as combinações, à medida que clico num botão (input)... 

De qualquer forma, muito obrigado!

<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
 

  

 

<p>
   <input type="submit" value="Calcular" name="calc">
</p>

</form>

<hr>
<?php
$calc = $_POST['calc'];
if ($calc) {

 $qtde = 0;
    
    // Cria uma array com números de 1 a 100
    $a = range(1, 100);
    $b = range(1, 100);
    $c = range(1, 100);
    
    // Enquanto a quantidade de vezes for menor ou igual a 1
    while($qtde <= 4) {
        
        // Sorteia um número aleatorio das array
        $A = $a[rand(0,100 - 1)];
        $B = $b[rand(0,100 - 1)];
        $C = $c[rand(0,100 - 1)];
            
        // Se a sentença não for verdadeira, volta e procura novos números que obedeçam a sentença
        if( ($A * $A) + ($B * $B) != ($C * $C) ){
            continue;
        }
        
        // Incremento na quantidade
        $qtde++;
    }
    
    // Exibe os números sorteados
    echo "N&uacute;meros sorteados: " . $A . '&nbsp;' . $B . '&nbsp;' . $C . "<br />";
    
    // Exibe a sentença verdadeira
    echo "As tripas s&atilde;o: " . $A * $A . '&nbsp;+&nbsp;' . $B * $B . '&nbsp;=&nbsp;' . $C * $C . "<br />";
}
?>

 

Adicionei o botão. Tá tranquila essa questão de apertar e mudar a tripla. Mas, gostaria de obter as 4 ao mesmo tempo. E pior que as quatro mudam a cada clique. Vou ver se consigo pensar aqui ...

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei se entendi direito mas tenta da seguinte maneira:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="submit" name="calc" value="Calcular">
</form> 

<hr>

<?php

if (isset($_POST['calc'])) {
    $qtde = 0;
    
    // Cria uma array com números de 1 a 100
    $a = range(1, 100);
    $b = range(1, 100);
    $c = range(1, 100);
    
    // Enquanto a quantidade de vezes for menor ou igual a 1
    while($qtde <= 3) {
        
        // Sorteia um número aleatorio das array
        $A = $a[rand(0,100 - 1)];
        $B = $b[rand(0,100 - 1)];
        $C = $c[rand(0,100 - 1)];
            
        // Se a sentença não for verdadeira, volta e procura novos números que obedeçam a sentença
        if( ($A * $A) + ($B * $B) != ($C * $C) ){
            continue;
        }else{
            
            // Exibe os números sorteados
            echo "N&uacute;meros sorteados: " . $A . '&nbsp;' . $B . '&nbsp;' . $C . "<br />";
            
            // Exibe a sentença verdadeira
            echo "As tripas s&atilde;o: " . $A * $A . '&nbsp;+&nbsp;' . $B * $B . '&nbsp;=&nbsp;' . $C * $C . "<br /><br />";
        }
        
        // Incremento na quantidade
        $qtde++;
    }
    
 }
?>

Deste geite ele exibe as 4 triplas de uma só vez, se quiser que exiba mais de 4 e do mudar a quantidade no "while($qtde <= 3 )" alterano 3 o  por outro número, mas acontece que entre 1 e 100 só e possível formar 4 triplas verdadeiras.

Qualquer dúvida e só perguntar OK.

Editado por Enio Ribeiro
Atualização no código
Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, Enio Ribeiro disse:

Não sei se entendi direito mas tenta da seguinte maneira:


<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="submit" name="calc" value="Calcular">
</form> 

<hr>

<?php

if (isset($_POST['calc'])) {
    $qtde = 0;
    
    // Cria uma array com números de 1 a 100
    $a = range(1, 100);
    $b = range(1, 100);
    $c = range(1, 100);
    
    // Enquanto a quantidade de vezes for menor ou igual a 1
    while($qtde <= 3) {
        
        // Sorteia um número aleatorio das array
        $A = $a[rand(0,100 - 1)];
        $B = $b[rand(0,100 - 1)];
        $C = $c[rand(0,100 - 1)];
            
        // Se a sentença não for verdadeira, volta e procura novos números que obedeçam a sentença
        if( ($A * $A) + ($B * $B) != ($C * $C) ){
            continue;
        }else{
            
            // Exibe os números sorteados
            echo "N&uacute;meros sorteados: " . $A . '&nbsp;' . $B . '&nbsp;' . $C . "<br />";
            
            // Exibe a sentença verdadeira
            echo "As tripas s&atilde;o: " . $A * $A . '&nbsp;+&nbsp;' . $B * $B . '&nbsp;=&nbsp;' . $C * $C . "<br /><br />";
        }
        
        // Incremento na quantidade
        $qtde++;
    }
    
 }
?>

Deste geite ele exibe as 4 triplas de uma só vez, se quiser que exiba mais de 4 e do mudar a quantidade no "while($qtde <= 3 )" alterano 3 o  por outro número, mas acontece que entre 1 e 100 só e possível formar 4 triplas verdadeiras.

Qualquer dúvida e só perguntar OK.

Rapaz! Você é o cara. 

Acho que são quase 30 questões. Estou cursando uma formação completa de PHP. Tem sido proveitoso. Muito bom mesmo. Essa questão era a última e mais de um mês dando umas pesquisadas e tetando alguma coisa de vez em quando.

Irei upar e ver se eles me aprovam para o módulo seguinte. Loucura total rsrs

 

Muito obrigado mais uma vez ... Irei estudar com mais calma esse código

Link para o comentário
Compartilhar em outros sites

  • 0
51 minutos atrás, jamiel disse:

Rapaz! Você é o cara. 

Acho que são quase 30 questões. Estou cursando uma formação completa de PHP. Tem sido proveitoso. Muito bom mesmo. Essa questão era a última e mais de um mês dando umas pesquisadas e tetando alguma coisa de vez em quando.

Irei upar e ver se eles me aprovam para o módulo seguinte. Loucura total rsrs

 

Muito obrigado mais uma vez ... Irei estudar com mais calma esse código

De nada, e muito bom saber que eu pude ajudar, se tiver alguma duvida ou se precisar de ajuda com algum código pode me mandar ok. Meu e-mail e eniojacui12@gmail.com.

Qual é o curso que você está fazendo? Fiquei curioso rsrs.

Link para o comentário
Compartilhar em outros sites

  • 0

É uma formação completa do MJailton. O acompanho há certo tempo... Mas, nunca tinha comprado nada dele. Aí ele apareceu com essas formações completas dePHP, comprei. Sinceramente, estou achando muito bom. Até porque nunca estudei programação. Então, é algo começando do zero. Aprendendo aos poucos .. 

 

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...