Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

[Projeto]Lista de exercícios

Praticar é muito importante! Por isso, preparamos uma lista de exercícios para você exercitar o conteúdo abordado nesta aula.
Escreva uma função em PHP que receba dois números inteiros e uma string representando a operação matemática e retorne o resultado da operação.
Crie uma função em PHP que calcule o IMC baseado na altura e peso passados por parâmetro.
Crie uma função em PHP que converta graus celsius para Fahrenheit.

2 respostas
solução!
<?php

/*
Praticar é muito importante! Por isso, preparamos uma lista de exercícios para você exercitar o conteúdo abordado nesta aula.

1 - Escreva uma função em PHP que receba dois números inteiros e uma string representando a operação matemática e retorne o resultado da operação.
2 - Crie uma função em PHP que calcule o IMC baseado na altura e peso passados por parâmetro.
3 - Crie uma função em PHP que converta graus celsius para Fahrenheit.

*/

//Exercício 01
// Essa aqui fiz com o echo sendo enviado diretamente pela função.
function operacaoMatematicaPersonalizada(string $operacao, float $primeiroNumero, float $segundoNumero): void {
    $resultadoFinal = 0;
    $operacaoLowCase = strtolower($operacao);
    switch ($operacaoLowCase) {
        case $operacaoLowCase == "soma":
            $resultadoFinal = $primeiroNumero + $segundoNumero;
            echo "O resultado final da $operacao é:" . $resultadoFinal . "\n";
            break;
        case $operacaoLowCase == "subtracao":
            $resultadoFinal = $primeiroNumero - $segundoNumero;
            echo "O resultado final da $operacao é:" . $resultadoFinal . "\n";
            break;
        case $operacaoLowCase == "multiplicacao":
            $resultadoFinal = $primeiroNumero * $segundoNumero;
            echo "O resultado final da $operacao é:" . $resultadoFinal . "\n";
            break;
        case $operacaoLowCase == "divisao":
            $resultadoFinal = $primeiroNumero / $segundoNumero;
            echo "O resultado final da $operacao é:" . $resultadoFinal . "\n";
            break;
        default:
            echo "Operação inserida não é válida, favor validar se não tem acentuações ou outros caracteres. Ex de operação: 'subtracao'! \n";
    }
}
operacaoMatematicaPersonalizada("multiplicacao", 100, 10);

// Exercício 02
// Essa aqui vou fazer com o echo sendo enviado de fora da função
function calcularIMC(float $peso, float $altura): float {
    $imc = $peso / ($altura * $altura);
    return $imc;
}
$imcCalculado = calcularIMC(85, 1.78);
echo "O IMC calculado é: " . $imcCalculado . "\n";

//Exercício 03 
// Fórmula de Cº para Fah -> (0ºc * 1.8) + 32 
function converterCelsiusParaFahrenheit(float $valorEmCelsius): float {
    $valorConvertido = ($valorEmCelsius * 1.8) + 32;
    return $valorConvertido;
}

$valorEmFah = converterCelsiusParaFahrenheit(0);
echo " O valor convertido é: $valorEmFah";

Boa tarde, Eliel! Tranquilo?

Gostei demais da sua resposta, continue assim!

Mandou muito bem explorando o switch para múltiplas operações com PHP, aplicou de maneira eficiente o return para reutilizar resultados e compreendeu como usar o tipagem de parâmetros para maior clareza no código.

E um detalhe curioso para aprimorar seria ajustar os case do switch, já que não é necessário repetir a comparação dentro deles. Exemplo:

switch ($operacaoLowCase) {
    case "soma":
        $resultadoFinal = $primeiroNumero + $segundoNumero;
        break;
    case "subtracao":
        $resultadoFinal = $primeiroNumero - $segundoNumero;
        break;
    case "multiplicacao":
        $resultadoFinal = $primeiroNumero * $segundoNumero;
        break;
    case "divisao":
        $resultadoFinal = $primeiroNumero / $segundoNumero;
        break;
    default:
        echo "Operação inválida!";
        return;
}
echo "O resultado final da $operacao é: $resultadoFinal\n";

Isso deixa o código mais limpo e evita redundâncias.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Separar lógica e saída: retornar valores da função e imprimir fora dela.
  • Validação de parâmetros: garantir que não haja divisão por zero ou valores inválidos.
  • Documentação interna: comentar brevemente cada função para facilitar manutenção futura.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: o que você gostaria de praticar mais agora, trabalhar com funções que retornam valores para reutilização ou explorar arrays e laços para resolver desafios mais complexos?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!