PHP :: Aufgabe #281
2 Lösungen
Rationale Zahlen einlesen: Mittelwert,Produkt und das Maximum ermitteln
Anfänger - PHP
von Cara
- 10.05.2020 um 21:54 Uhr
Schreiben Sie ein Programm, das n rationale Zahlen einliest / einlesen kann und den Mittelwert, das Produkt und das Maximum dieser Zahlen ermittelt und ausgibt.
Lösungen:
// Geben Sie in das Array soviele Zahlen ein, wie Sie möchten
$zahlen = [1,5,89,12,87,'A']; // A ist keine Zahl und wird später herausgefiltert :-)
function filterNonDigitsOfArray($value)
{
if(is_int($value) OR is_float($value))
return $value;
}
function ermittleMWProduktMaximum(array $array = [])
{
if($array){
//Erlaube nur Zahlen und filtere alle anderen Werte aus dem array (z.B. Buchstaben)
$array = array_filter($array, 'filterNonDigitsOfArray');
$result = [];
if($array){
//Mittelwert
$result[] = 'Mittelwert = '.round((array_sum($array)/count($array)),2);
//Produkt
$result[] = 'Produkt = '.round(array_product($array),2);
//Maximum
$result[] = 'Maximum = '.max($array);
}
return implode(', ', $result);
}
}
// Ausgabe
echo ermittleMWProduktMaximum($zahlen);
main.php
PHP-Code
<?php
array_shift($argv); // remove script name
if (sizeof($argv) === 0) {
die ('Error: at least 1 parameter expected, 0 given.');
}
$numbers = [];
foreach ($argv as $arg) {
$numbers[] = floatval($arg);
}
echo PHP_EOL;
getAverage($numbers);
getProduct($numbers);
getMax($numbers);
getMin($numbers);
function getAverage(array $a)
{
$result = array_sum($a) / sizeof($a);
printResult(__FUNCTION__, $result);
}
function getProduct(array $a)
{
$result = array_shift($a);
foreach ($a as $item) {
$result *= $item;
}
printResult(__FUNCTION__, $result);
}
function getMax(array $a)
{
printResult(__FUNCTION__, max($a));
}
function getMin(array $a)
{
printResult(__FUNCTION__, min($a));
}
function printResult(string $funcName, float $result)
{
echo "Function : '$funcName'" , PHP_EOL ,
'Result : ' , $result , PHP_EOL , PHP_EOL;
}Konsolenausgabe:
php main.php 1 3.1 2
Function : 'getAverage'
Result : 2.0333333333333
Function : 'getProduct'
Result : 6.2
Function : 'getMax'
Result : 3.1
Function : 'getMin'
Result : 1
