• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Glazz

Tabela por Nº Impares

6 mensagens neste tópico

Olá a todos,

tenho um problema para resolver que é o seguinte:

Apresentar um script PHP para desenvolver um doc html que contenha uma tabela com N primeiros números ímpares, sendo N um parâmetro passado no script.

Exemplo: para N=3 p html da tabela deverá ser o seguinte:

<table>

      <tr><td>1</td><td>1</td></tr>

      <tr><td>2</td><td>3</td></tr>

      <tr><td>3</td><td>5</td></tr>

</table>

O código que tenho é o seguinte

<html>
<body>
<?php
  $n = $_GET['N'];
  $p = 1;
  ?>
<table>
    <?php
        for ($i=1; $i<=$n; $i++) {
            $res = $i % 2;
             if ($res!=0) {;?>
                <tr><td><?php echo $p;?></td><td><?php echo $i;?></td></tr>
        <?php $p+=1;};
        }; ?>   
</table>
</body>
</html>

Contudo com o código que tenho e passando como parâmetro N=3, o output que tenho é o seguinte:

<table>

<tr><td>1</td><td>1</td></tr>

<tr><td>2</td><td>3</td></tr>

</table>

Eu sei que tem lógica em obter este resultado pois ele so obtem no ciclo for o resto diferente de zero nos números 1 e 3, mas não sei como chegar à solução pretendida.

Ajuda? :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

for($i = 1; $i <= $n; $i++) echo "<tr><td>", $i, "</td><td>", $i*2-1, "</td></tr>\n";

EDIT: Faltava-me o = no <=. É preciso explicar o raciocínio?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

for($i = 1; $i <= $n; $i++) echo "<tr><td>", $i, "</td><td>", $i*2-1, "</td></tr>\n";

EDIT: Faltava-me o = no <=. É preciso explicar o raciocínio?

tirácio obrigado :P

contudo isso assim não me dá pois quando passo no url "?N=3" segundo o código que tenho em cima e com a alteração para a segunda <td>  de $i para $i*2-1, vai me dar o seguinte output:

<table>

  <tr><td>1</td><td>1</td></tr>

  <tr><td>2</td><td>5</td></tr>

</table>

saltando:

<tr><td>2</td><td>3</td></tr>

abrc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não precisas de modificar nada.

<html>
<body>
<table>
<?php
$n = $_GET['N'];
for($i = 1; $i <= $n; $i++) echo "<tr><td>", $i, "</td><td>", $i*2-1, "</td></tr>\n";
?>
</table>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok dá :D

O meu problema é que estava a fazer inutilmente o %2.

Obrigado :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora