SóProvas


ID
616459
Banca
CONSULPLAN
Órgão
CODEVASF
Ano
2008
Provas
Disciplina
Programação
Assuntos

Assinale o que será impresso após a execução do algoritmo abaixo:

<?php
      $a=10;
      $b=2;
      $j=10/2;
      for ($i=0;$i<$j;$i++)
      {
         if ($i %$b == 1) {
                   echo "$i";
         }
     }
?>

Alternativas
Comentários
  • Bastava saber o comportamento do operador de módulo (resto da divisão inteira):


    $a % $b    Módulo: resto de $a dividido por $b.


    Os operandos de módulo são convertidos para inteiros (removendo a parte decimal) antes do processamento.

    O resultado do operador de módulo % tem o mesmo sinal do dividendo — ou seja, o resultado de $a % $b terá o mesmo sinal de $a.

    Exemplos:

    echo (5 % 3)."\n";  // imprime 2
    echo (5 % -3)."\n";  // imprime 2
    echo (-5 % 3)."\n";  // imprime -2
    echo (-5 % -3)."\n";  // imprime -2


    Na codificação da questão são exibidos os números ímpares (cujo resto da divisão inteira por 2 é igual a 1) compreendidos entre 0 e 4; assim são exibidos 1 e 3, porém são exibidos "em sequência" aparentando o número 13.

  •       for ($i=0;$i

    $J=10/2

    $J=5

     

    $i= é menor que 5, ou seja, vai de 0 a 4

    Quais os números que dividido por $b deixa o resto igual a 1?

     

    Vejamos a baixo:

             if ($i %$b == 1) 

     

    São justamente os números impares de 0 a 4 que deixa o resto igual a 1

    Quais são esses números impares? 1 e 3

    1%2 = 1 e 3%2 = 1

    A saída $i = 13

  • Veja o comentário que a banca deu para um aluno que tentou entrar com o recurso:

    O módulo de 1 por 2 é igual a 1e também o módulo de 3 por 2 é igual a 1. Logo, após a execução do algarítimo em questão, será impressa “13”, estando o gabarito correto (opção A).

    Fonte: https://d3du0p87blxrg0.cloudfront.net/concursos/231/consulplan_RESPOSTA%20RECURSOS%20GABARITO%20-%20codevas6484.pdf