SóProvas


ID
3878308
Banca
AOCP
Órgão
COREN-SC
Ano
2013
Provas
Disciplina
Programação
Assuntos

Com base no código em PHP a seguir:

$a = “”;
$b = “”;
$frase = explode(“ “, “rato roeu a roupa”);
$c = $frase[0];
$d = $frase[2];
for ($i = (strlen($c) - 1); $i >= 0; --$i)
       $a .= “$c[$i]”;
for ($i = (strlen($d) - 1); $i >= 0; --$i)
       $b .= “$d[$i]”;
$frase[0] = $a;
$frase[2] = $b;
$resultado = implode(“ “, $frase);
echo $resultado;

O conteúdo da variável $ resultado será?

Alternativas
Comentários
  • mas chutei com força

  • d-

    ____________________________________________________

    1-

    Explode: Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string separator. It basically breaks a string into an array

    explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

    https://www.php.net/manual/en/function.explode.php

    ____________________________________________________

    2-

    Analisando

    $a = "";

    $b = "";

    $frase = explode(" ", "rato roeu a roupa");

    O limitador é espaço em branco (" "), definido no 1° param. O array que $frase recebe tem os valores nos indices:

    $frase[0]; -> rato

    $frase[1]; -> roeu

    $frase[2]; -> a

    $frase[3]; -> roupa

    vars $c & $d estao com valores "rato" e "a".

    ____________________________________________________

    3-

    no for loop, strlen retorna tamanho da String. como $c recebeu "rato", strlen($c) = 4.

    ____________________________________________________

    4-

    O for loop tb itera ao contrario, iniciando do maior valor ate chegar a 0. . indica concatenação em PHP. assim, var $a recebe o valor [$i] do array em $c, do ultimo ao 1°. ao final da iteracao, $a sera "otar".

    ____________________________________________________

    5-

     o contador $i recebe o tamanho do array -1 (como o indice inicia do 0, o tamanho do array e indice do array nao coincidem; por isso o tamanho tem que diminuir -1 para bater com o max indice array.

    ____________________________________________________

    6-

    Outro detalhe é que foi usado o strlen para definir o limite do for loop. geralmente é usado sizeof para percorrer o array

    strlen(string $string): int

    Returns the length of the given string.

    https://www.php.net/manual/en/function.strlen.php

    Para isso, foi necesario usar uma String de mesma extensao ("rato") do que o tamanho do array.

    ____________________________________________________

    7-

    o 2° for loop é a mesma logica. exceto que ele so percorre o loop 1 vez porque $i = 0; // strlen("a") -> 1. 1-1 = 0.

    como ja vimos que $a = "otar",

    em

    $frase[0] = $a; -> $frase[0] = "otar";

    ____________________________________________________

    8-

    em $frase[2] = $b;

    valor de $b é 'a'. logo, $frase[2] recebeu 'a'.

    ____________________________________________________

    9-

    neste ponto, o array $frase contém

     [0] => otar [1] => roeu [2] => a [3] => roupa

    para converter array em String, usa-se implode:

    ____________________________________________________

    10-

    Implode:

    Join array elements with a string

    https://www.php.net/manual/en/function.implode.php

    mesma logica que explode. so usa separador para separar os itens do array quando virarem uma String.

    $resultado = implode(" ", $frase);

     somente o $frase[0] foi alterado; no 1° for loop a var $a concatenou os valores do itens do array em $c, recebendo otar

    ____________________________________________________

    https://imgur.com/a/uyCFew5

  • <!DOCTYPE html>

    <html>

    <html lang ="en">

    <head>

    <meta charset="utf-8">

    </head>

    <body>

    <?php

    $a = "";

    $b = "";

    $frase = explode(" ", "rato roeu a roupa");

    $c = $frase[0];

    $d = $frase[2];

    for ($i = (strlen($c) - 1); $i >= 0;--$i)

    $a .= "$c[$i]";

    for ($i = (strlen($d) - 1); $i >= 0; --$i)

    $b .= "$d[$i]";

    $frase[0] = $a;

    $frase[2] = $b;

    $resultado = implode(" ", $frase);

    echo $resultado;

    ?>

    </body>

    </html>