PHP :: Aufgabe #253

1 Lösung Lösung öffentlich

Angelsächsische Maße umrechnen

Anfänger - PHP von DragStar - 23.03.2020 um 09:41 Uhr
Die angelsächsischen Maße sind ja manchmal etwas seltsam. Schreiben Sie ein Programm, welches nach einer Menüauswahl:

1: inch, 2: foot, 3: yard, 4: mile

und der nachfolgenden Eingabe eines Maßes, dieses nach folgender Tabelle in Meter umrechnet:

inch 0,0254 m
foot 0,3048 m
yard 0,9144 m
mile 1609,34 m

Lösungen:

vote_ok
von Exception (7090 Punkte) - 01.05.2020 um 10:44 Uhr
Quellcode ausblenden PHP-Code
<?php

array_shift($argv); // remove script name

if (sizeof($argv) !== 2) {
  die ('Error: 2 arguments needed, ' . sizeof($argv). ' provided.');
}

$value = floatval($argv[0]);
$unit = $argv[1];

$allowedUnits = [ 'inch', 'foot', 'yard', 'mile' ];

if (!in_array($unit, $allowedUnits)) {
  die ('Error: invalid unit provieded, "' . $unit . '".');
}

switch ($unit)
{
  case 'inch':
    $result = 0.0254 * $value;
  break;
  case 'foot':
    $result = 0.3048 * $value;
  break;
  case 'yard':
    $result = 0.9144 * $value;
  break;
  case 'mile':
    $result = 1609.34 * $value;
  break;
}

echo $value , ' ' , $unit , ' = ' , $result , ' m' , PHP_EOL , PHP_EOL;


Konsolenausgabe:

php main.php 1 inch
1 inch = 0.0254 m

php main.php 1 foot
1 foot = 0.3048 m

php main.php 1 yard
1 yard = 0.9144 m

php main.php 1 mile
1 mile = 1609.34 m