1
resposta

projeto sobre Imc com uso de parametros em php

olá fiz esse código como forma de aprendizado e que me foi passado como forma de sintetizar meus conhecimentos dito isso se tiver formas de melhorar meu código fico entusiasmado em em ouvi-las, fiz o uso de uma função e parametrizei oas variaveis e fora da função me passa os valores delas e me retorna o resultado junto com o if certo e coloquei um number_format para justamente nao ficar aqueles valores com dizimas visto que estamos trabalhando com valores decimais.

<?php

//Crie uma função em PHP que calcule o IMC baseado na altura e peso passados por parâmetro. 

function imcFuncao(float $pesoPessoa,float $alturaPessoa)
{
    $resultadoImx = $pesoPessoa / ($alturaPessoa * 2);

    if ($resultadoImx < 18.5) {
        echo " seu imc é de " . number_format($resultadoImx, 2, '.', '.') . " e estado de magreza ";
    } else if ($resultadoImx >= 18.5 && $resultadoImx < 24.9) {
        echo "seu imc é de " . number_format($resultadoImx,2, '.','.') .  " e peso normal ";
    } else if ($resultadoImx >= 24.9 && $resultadoImx < 29.9) {
        echo "seu imc é de " . number_format($resultadoImx,2, '.','.') . " e está com sobrepeso ";
    } else if ($resultadoImx >= 29.9 && $resultadoImx < 39.9) {
        echo "seu imc é de " . number_format($resultadoImx) .  " e está obeso ";
    } else {
        echo "seu imc é de " . number_format($resultadoImx, 2, '.', '.') . " e está com obesidade grave ";
    }
}

imcFuncao(92, 1.75);
1 resposta

Oi, João! Tudo bem?

Seu código está bem estruturado e funcional, parabéns! Deixo apenas algumas sugestões:

  1. Devemos corrigir a fórmula do IMC, deixando o IMC como resultado do peso dividido pela altura ao quadrado.
  2. Podemos também em vez de usar múltiplos if e else, usar elseif para melhorar a legibilidade.
  3. Uma outra sugestão também é em vez de usarmos echo dentro da função, retornarmos o valor e depois imprimir fora da função, tornando a função mais flexível.
  4. Podemos também padronizar o uso do number_format para evitar inconsistências.

Dessa forma, podemos deixar o nosso código da seguinte maneira:

<?php

function imcFuncao(float $pesoPessoa, float $alturaPessoa): string
{
    $resultadoImc = $pesoPessoa / ($alturaPessoa * $alturaPessoa);

    if ($resultadoImc < 18.5) {
        return "Seu IMC é de " . number_format($resultadoImc, 2, '.', '') . " e você está em estado de magreza.";
    } elseif ($resultadoImc >= 18.5 && $resultadoImc < 24.9) {
        return "Seu IMC é de " . number_format($resultadoImc, 2, '.', '') . " e você está com peso normal.";
    } elseif ($resultadoImc >= 24.9 && $resultadoImc < 29.9) {
        return "Seu IMC é de " . number_format($resultadoImc, 2, '.', '') . " e você está com sobrepeso.";
    } elseif ($resultadoImc >= 29.9 && $resultadoImc < 39.9) {
        return "Seu IMC é de " . number_format($resultadoImc, 2, '.', '') . " e você está obeso.";
    } else {
        return "Seu IMC é de " . number_format($resultadoImc, 2, '.', '') . " e você está com obesidade grave.";
    }
}

// Exemplo de uso
echo imcFuncao(92, 1.75);

Espero ter ajudado!

Um forte abraço e bons estudos!