• Matéria: Lógica
  • Autor: danyelediscipula
  • Perguntado 7 anos atrás

Analise o código abaixo:

<?php
$num = 5;

if($num > 0){
$valor = $num;
for(________; __________;_______){
$valor = $valor * $i;
}
}else{
$valor = 0;
}
echo "!$num = $valor";
?>

Diante do código acima, na sequência, assinale a alternativa que preencha as lacunas corretamente de forma que apresente o resultado do fatorial de 5.
Temos que !5 é igual a 120.
Alternativas
Alternativa 1:
$i = ($valor); $i > 0; $i--

Alternativa 2:
$i = ($valor - 1); $i > 0; $i--

Alternativa 3:
$i = ($valor - 1); $i < 0; $i--

Alternativa 4:
$i = ($valor +1); $i > 0; $i++

Alternativa 5:
$i = ($valor - 1); $i >= 0; $i++

Respostas

respondido por: rayllecn
4

A alternativa que preenche a lacuna corretamente é a 2) $i = ($valor - 1); $i > 0; $i--

O código dado apresenta o calculo de um fatorial, para podermos analisá-lo corretamente precisamos primeiro saber como funciona o fatorial.

O fatorial é o produto do números inteiros positivos consecutivos de um número natural n maiores ou iguais a n. Assim, o fatorial do número 5 é o produto do 5 pelo seus antecessores até o 1: 5 * 4 * 3 *2 *1 = 120

Analisando o código podemos observar que definimos a variavel num como sendo 5 e depois testamos se ela é maior que zero, caso ela seja, iniciamos o calculo do fatorial utilizando for como laço de repetição.

No for, precisamos definir um valor inicial, que é o indice inicial (i), um critério de parada e o passo. Nesse caso, o valor inicial é o antecessor do numero utilizado e vai se repetir enquanto o indice for maior que zero, com passo decrescente, ja que no fatorial utilizamos o antecessor do numero original (5).

Assim, o valor do fatorial se inicia em 5 e logo no primeiro laço ele é multiplicado por 4 (seu antecessor) e o valor do fatorial é atualizado para que haja uma nova repetição. Essa dinâmica pode ser melhor observada abaixo:

Primeira execução:

valor = 5 * 4

Segunda repetição:

valor =  20 * 3

Terceira repetição:

valor = 60 * 2

Terceira repetição:

valor = 120 * 1

Quando todas as repetições ocorrem, imprimimos o valor, que no caso é 120.

Espero ter ajudado, bons estudos!

Perguntas similares