Mostrando postagens com marcador Prática. Mostrar todas as postagens
Mostrando postagens com marcador Prática. Mostrar todas as postagens

Exercícios Resolvidos de Arrays em PHP: Teste sua Lógica de Programação

Parabéns por chegar até aqui em nossa Apostila de PHP Progressivo! Você já dominou a teoria sobre a criação de listas, o laço foreach e as dezenas de funções nativas maravilhosas do PHP.

Mas, na programação, teoria sem prática é apenas ilusão. É quebrando a cabeça com erros e montando a lógica linha por linha que o seu cérebro cria as conexões necessárias para você se tornar um Desenvolvedor Web Sênior.

Nesta página, preparamos uma bateria intensiva de exercícios resolvidos sobre Arrays em PHP. Nossa recomendação máxima: leia o enunciado, abra o seu editor de código (ou um testador PHP online), tente resolver sozinho por pelo menos 15 minutos e apenas depois olhe a nossa solução.

🔥 Regra de Ouro: Não copie e cole as respostas! Digite o código. O ato de digitar ajuda a memorizar a sintaxe e evita que você esqueça ponto-e-vírgula (;) ou chaves ({}).

Exercício 1: O Aquecimento (Soma e Média)

Desafio: Crie um script em PHP que guarde as notas de um aluno (7.5, 8.0, 6.5, 9.5) em um array. Em seguida, use o laço foreach para somar todas as notas, calcule a média final e exiba na tela se ele foi Aprovado (média >= 7) ou Reprovado.

<?php
$notas = [7.5, 8.0, 6.5, 9.5];
$soma = 0;

// Percorrendo o array para somar
foreach ($notas as $nota) {
    $soma += $nota; // Equivalente a: $soma = $soma + $nota;
}

// O count() descobre o total de elementos no array (4 notas)
$media = $soma / count($notas);

echo "A nota total foi: $soma <br>";
echo "A média final é: $media <br>";

if ($media >= 7.0) {
    echo "<strong style='color: green'>Aluno APROVADO!</strong>";
} else {
    echo "<strong style='color: red'>Aluno REPROVADO!</strong>";
}

/* DICA SÊNIOR: Nós usamos a lógica pura com foreach para treinar, 
mas no dia a dia, você poderia usar a função nativa do PHP:
$soma = array_sum($notas); 
*/
?>

Exercício 2: Array Associativo (Cadastro de RH)

Desafio: Crie um array associativo que represente um funcionário, contendo as chaves: "nome", "idade", "cargo" e "salario". Depois, percorra esse array imprimindo a chave e o valor de forma amigável na tela. Se a chave for "salario", adicione o símbolo de "R$" antes do valor.

<?php
$funcionario = [
    "nome" => "Mariana Silva",
    "idade" => 28,
    "cargo" => "Desenvolvedora Back-end",
    "salario" => 6500.00
];

echo "<h3>Ficha do Funcionário:</h3>";
echo "<ul>";

foreach ($funcionario as $chave => $valor) {
    // Tratamento especial para o salário
    if ($chave == "salario") {
        // number_format formata o número para o padrão brasileiro de moeda
        $valorFormatado = number_format($valor, 2, ',', '.');
        echo "<li><b>".ucfirst($chave).":</b> R$ $valorFormatado </li>";
    } else {
        echo "<li><b>".ucfirst($chave).":</b> $valor </li>";
    }
}

echo "</ul>";
?>

Quer mais 500 exercícios como esse?

A lógica de programação se constrói com repetição e aumento gradativo de dificuldade. Não fique caçando exercícios picados pela internet.

Mega Pack 7 Apostilas de Programação PDF

Baixe nosso Mega Pack em PDF. Estude no ônibus, sem distrações do celular, com baterias intensivas de exercícios reais do mercado.

Exercício 3: O Filtro (Números Pares e Ímpares)

Desafio Clássico de Lógica: Crie um array automático usando a função range() contendo números de 1 a 20. Percorra esse array e separe-o em dois novos arrays: um contendo apenas os números pares e outro contendo apenas os números ímpares. No final, exiba os dois novos arrays.

<?php
// 1. Criando o array de 1 a 20 automaticamente
$numeros = range(1, 20);

// 2. Inicializando os arrays vazios que vão receber os filtros
$pares = []; // Pode usar array() também
$impares = [];

// 3. A Lógica de Separação
foreach ($numeros as $num) {
    // Operador Módulo (%): pega o resto da divisão. 
    // Se um número dividido por 2 não sobrar nada (resto 0), ele é PAR!
    if ($num % 2 == 0) {
        array_push($pares, $num); // Adiciona na lista de pares
    } else {
        array_push($impares, $num); // Adiciona na lista de ímpares
    }
}

// 4. Exibindo os resultados usando o utilitário print_r
echo "Lista de Pares:<br>";
print_r($pares);

echo "<br><br>Lista de Ímpares:<br>";
print_r($impares);
?>

Exercício 4: O Simulador da Mega-Sena (Sorteios)

Desafio: Escreva um script para gerar um bilhete premiado da Mega-Sena. Ele deve conter 6 números aleatórios entre 1 e 60, sem repetição. Os números devem ser exibidos na tela em ordem crescente.

<?php
// LÓGICA NINJA: Em vez de sortear um por um e verificar se já saiu (difícil),
// Nós criamos o "globo" do bingo inteiro, embaralhamos e tiramos os 6 primeiros!

// 1. Cria as bolinhas de 1 a 60
$globo = range(1, 60);

// 2. Chacoalha e embaralha todas as bolinhas dentro do array
shuffle($globo);

// 3. Retira as 6 primeiras bolinhas do globo embaralhado
$bilhete = [];
for ($i = 0; $i < 6; $i++) {
    // array_pop tira o último elemento do array e nos entrega
    $bolinha_sorteada = array_pop($globo);
    array_push($bilhete, $bolinha_sorteada);
}

// 4. Exigência do cliente: organizar os 6 números do menor para o maior
sort($bilhete);

// 5. Exibe os números separados por um traço usando a função implode()
echo "<h2>Seu bilhete da sorte: </h2>";
echo "<p style='font-size: 24px; letter-spacing: 5px;'>";
echo implode(" - ", $bilhete);
echo "</p>";
?>

Exercício 5: Arrays Multidimensionais (O Carrinho de Compras)

Desafio de Nível Intermediário: Em sistemas reais (como o MercadoLivre ou a Amazon), um carrinho de compras não é uma lista simples, é um "Array dentro de um Array" (Matriz ou Multidimensional). Cada produto possui nome, preço e quantidade. Crie um carrinho com 3 itens, calcule o subtotal de cada produto e o valor total final da compra.

<?php
// Array Multidimensional: Um array grandão contendo 3 arrays associativos
$carrinho = [
    [
        "produto" => "Teclado Mecânico RGB",
        "preco" => 350.00,
        "quantidade" => 1
    ],
    [
        "produto" => "Monitor Gamer 24 pol",
        "preco" => 1200.00,
        "quantidade" => 2
    ],
    [
        "produto" => "Mousepad Extra Grande",
        "preco" => 80.00,
        "quantidade" => 3
    ]
];

$totalCompra = 0;

echo "<h3>Resumo do seu Pedido:</h3>";
echo "<hr>";

foreach ($carrinho as $item) {
    // Acessando os dados do array interno
    $nome = $item["produto"];
    $precoUnitario = $item["preco"];
    $qtd = $item["quantidade"];
    
    // Calcula o subtotal do item (preço x quantidade)
    $subtotal = $precoUnitario * $qtd;
    
    // Adiciona o subtotal ao valor total geral da compra
    $totalCompra += $subtotal;
    
    // Exibe a linha do produto
    echo "{$qtd}x $nome | Unidade: R$ {$precoUnitario} | <b>Subtotal: R$ {$subtotal}</b> <br>";
}

echo "<hr>";
echo "<h4>Valor Total a Pagar: R$ " . number_format($totalCompra, 2, ',', '.') . "</h4>";
?>

Transforme Exercícios em Sistemas Reais! 🚀

Você acabou de ver o coração de uma Loja Virtual funcionando no Exercício 5. Sabe qual é o próximo passo? Aprender a puxar esses produtos direto de um Banco de Dados MySQL de forma segura e profissional. A nossa Apostila Premium te guia do básico até as listagens de bancos reais em passos simples.

📥 Fazer Download da Apostila Completa de PHP

13 Exercícios de Funções em PHP: Pratique sua Lógica de Programação

Lista de Exercícios Resolvidos de Funções em PHP

Programação não se aprende apenas lendo, mas sim quebrando a cabeça e escrevendo código! Chegou o momento de testarmos tudo o que você aprendeu sobre criação, invocação e retorno de Funções no PHP.

Abaixo, preparamos uma lista com 13 desafios práticos que vão desde lógicas simples até o uso de funções recursivas avançadas. Tente resolver todos no seu ambiente local antes de olhar as respostas!

💡 Dica de Ouro

Crie um arquivo chamado funcoes.php e coloque todas as funções que você criar lá dentro. Nos arquivos dos exercícios, use o comando include 'funcoes.php';. Isso já te treina para a modularização de sistemas reais!


Lista de Exercícios:

Exercício 01

Escreva um script que pergunta ao usuário se ele deseja converter uma temperatura de grau Celsius para Fahrenheit ou vice-versa. Se ele digitar 1, é de Celsius para Fahrenheit; se digitar 2, é de Fahrenheit para Celsius; se for outro valor, mostre uma mensagem de erro. Para cada conversão, chame a função correta correspondente.

→ Ver Resolução: Conversão Celsius-Fahrenheit

Exercício 02

Faça um programa que contenha uma função que receba três argumentos inteiros e retorne a soma desses três valores. Em seguida, o seu script deve fornecer a média dos três números, através de uma segunda função que invoca a primeira (função chamando função).

Exercício 03

Faça um programa que receba três números do usuário e identifique o maior número através de uma função, e o menor número através de uma outra função separada.

Exercício 04

A probabilidade de dar um valor em um dado comum é de 1/6 (uma em seis). Faça um script em PHP que simule 1 milhão de lançamentos de dados e mostre a frequência que cada número (de 1 a 6) apareceu no final da simulação.

→ Ver Resolução: Lançamento de dados 

Exercício 05

A série de Fibonacci é uma sequência de números onde os dois primeiros são 0 e 1, e o termo seguinte é sempre obtido somando os dois anteriores. Faça um script em PHP que solicite um inteiro positivo ao usuário, que chamaremos de n. Crie uma função recursiva que exiba todos os termos da sequência até o n-ésimo termo.

Exercício 06

Crie uma função que receba um inteiro positivo e teste para saber se ele é primo ou não. Faça um script que recebe um inteiro n do usuário e mostra todos os números primos existentes no intervalo de 1 até n.

Exercício 07

Um número é dito perfeito quando ele é igual à soma de seus fatores divisores. Por exemplo, os fatores de 6 são 1, 2 e 3. Como a soma (1 + 2 + 3) é igual a 6, ele é um número perfeito. Escreva uma função que receba um inteiro e diga se é perfeito ou não. Em outra parte do script, peça um inteiro n e mostre todos os números perfeitos de 1 até n.

→ Ver Resolução: Números perfeitos em PHP

Exercício 08

Use uma função que receba um valor n inteiro e imprima o seguinte padrão numérico na tela (até a n-ésima linha):

1
2   2
3   3   3
.....
n   n   n   n   n   n  ... n
Exercício 09

Use uma função que receba um valor n inteiro e imprima um padrão semelhante ao exercício anterior, mas em formato de escada sequencial:

1
1   2
1   2   3
.....
1   2   3   ...  n
Exercício 10

Faça um programa com uma função que necessite de um argumento. A função deve retornar o caractere 'P' se o seu argumento for positivo, e 'N' se o seu argumento for zero ou negativo.

Exercício 11

Faça um programa com uma função chamada somaImposto(). A função possui dois parâmetros formais: taxaImposto (que é a quantia de imposto sobre vendas expressa em porcentagem) e custo (que é o valor de um item antes do imposto). A função deve alterar e retornar o valor de custo atualizado para incluir o imposto sobre a venda.

Exercício 12

Faça um programa que converta da notação de 24 horas para a notação de 12 horas. Por exemplo, o programa deve converter 14:25 em 2:25 P.M. A entrada é dada em dois inteiros. Deve haver pelo menos duas funções: uma para fazer a conversão e uma para a saída do texto formatado. Registre a informação de período como 'A' para A.M. e 'P' para P.M. Inclua um loop (formulário contínuo) que permita que o usuário repita esse cálculo para novos valores sempre que desejar.

Exercício 13

Faça uma função matemática que informe a quantidade de dígitos de um determinado número inteiro inserido pelo usuário.

→ Ver Resolução: Quantos dígitos tem um número

Gabarito Completo na Apostila 📚

Travou em algum exercício? Não se preocupe! A resolução comentada passo a passo de TODOS esses algoritmos (e dezenas de outros) está disponível na nossa apostila oficial.

Baixar Apostila Completa de PHP