PHP :: Aufgabe #198 :: Lösung #1

4 Lösungen Lösungen öffentlich
#198

Body-Mass-Index (BMI)

Anfänger - PHP von hollst - 20.11.2018 um 18:23 Uhr
Der BMI ist eine (umstrittene) Kenngröße zur Ermittlung des eigenen Über-/Untergewichtszustandes:

BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).

Er wird wie folgt interpretiert:

Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5

Normalgewicht 18,5 – < 25

Präadipositas 25 – < 30

Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40

Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.

Viel Spaß!

#1
vote_ok
von JUnoS20 (200 Punkte) - 14.12.2018 um 14:31 Uhr
Quellcode ausblenden PHP-Code
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>BMI - Berechnung</title>
</head>
<body>

<?php

if($_SERVER["REQUEST_METHOD"] == "POST"){
    $masse = $_POST["masse"];
    $groesse = $_POST["groesse"];
    
    $bmi = round($masse / ($groesse ** 2), 2);
    $ergebnis;
    
    if(isbetween(0, 16, $bmi)){
        $ergebnis = "Starkes Untergewicht";
    }
    elseif(isbetween(16, 17, $bmi)){
        $ergebnis = "Mäßiges Untergewicht";
    }
    elseif(isbetween(17, 18.5, $bmi)){
        $ergebnis = "Leichtes Untergewicht";
    }
    elseif(isbetween(18.5, 25, $bmi)){
        $ergebnis = "Normalgewicht";
    }
    elseif(isbetween(25, 30, $bmi)){
        $ergebnis = "Präadipositas";
    }
    elseif(isbetween(30, 35, $bmi)){
        $ergebnis = "Adipositas Grad I";
    }
    elseif(isbetween(35, 40, $bmi)){
        $ergebnis = "Adipositas Grad II";
    }
    elseif($bmi >= 40){
        $ergebnis = "Adipositas Grad III";
    }
}

function isbetween($min, $max, $value){
    if($min <= $value && $max > $value){
        return TRUE;            
    }
    else{
        return FALSE;
    }
}
?>

<div>
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
        <div style="margin-bottom: 10px;">
            <label>Körpermasse (in kg)</label>   
            <div>            
                <input type="number" step="0.01" name="masse">
            </div> 
        </div>
        <div style="margin-bottom: 10px;">
        <label>Körpergröße (in m)</label>      
            <div>            
                <input type="number" step="0.01" name="groesse">
            </div>        
        </div>
        <button type="submit">Berechne BMI</button>        
    </form>
</div>

<h1><?php if(!empty($ergebnis)) { echo "BMI: " .$bmi ." - " .$ergebnis; } ?></h1>

</body>
</html>

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben