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:
PHP-Code
// 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