Учебные задачи PHP. Задача 10

Задайте случайным образом массив из N элементов (целых чисел). Найдите максимальное число и напечатайте его.

function numberMaxArray($number)
{
    for ($i = 0; $i < $number; $i ++) {
        $arr[] = rand(1, $number);
    }   
    $numberMax =  $arr[0];
    
    foreach ($arr as $v) {
        if ($v > $numberMax) {
            $numberMax = $v;
        }
    }
    return $numberMax;
}
$number = rand(5, 9);
$a = numberMaxArray($number);
echo "Mаксимальное число = $a.";

Решение задачи с стандартной функцией

max()
function numberMaxArray($number)
{
    for ($i = 0; $i < $number; $i ++) {
        $arr[] = rand(1, $number);
    }   
    $numberMax =  $arr[0];
    
    foreach ($arr as $v) {
        if ($v > $numberMax) {
            $numberMax = $v;
        }
    }
    return $numberMax;
}
$number = rand(5, 9);
$a = numberMaxArray($number);
echo "Mаксимальное число = $a.";

Key Words for FKN + antitotal forum (CS VSU):

melisa's picture

Решение задачи с стандартной функцией max()

что-то не вижу её)

Да, ранее повторил решение задачи два раза.
Решение задачи со стандартной функцией:

max()
<?php
function generateArray($n)
{
	for ($i = 0; $i < $n; $i ++) {
		$arr[] = rand(1, $n);
	}	
	return max($arr);
}
$n = rand(1, 5);
$a = generateArray($n);
echo "Mаксимальное число = $a.";
?>
melisa's picture

Хорошо, всё работает правильно. Но у меня вопрос к функции.

В идеале задача любой функции - выполнение определённого (лучше всего небольшого, конкретного) действия, несколько раз повторяющегося в коде. И наша задача - не просто обернуть весь свой код функцией, а создать такую функцию, которая будет выполнять одно действие (свою функцию))).

Т.е. в нашем случае, если словами выразить нашу функцию, то она должна "вычислять максимальное значение массива". Из этого следует, что она должна:

  1. Принимать в качестве аргумента массив
  2. В теле вычислять его максимальное значение
  3. Возвращать максимальное значение

Для создания массива случайных элементов можете написать отдельную функцию.

<pre><?php
function generateArrayRandom($n)
{
	for ($i = 0; $i < $n; $i ++) {
		$arrRandom[] = rand(1, 100);
	}
	print_r ($arrRandom); // вывод дампа массива для самопроверки
	return $arrRandom;	
}

function calculatingMaximumValueArray($c)
{
	return max($c);
}

$n = 3;
$genArrRand = generateArrayRandom($n);
$calcMaxValArr = calculatingMaximumValueArray($genArrRand);
echo "Mаксимальное число массива = $calcMaxValArr.";
?>
melisa's picture

function calculatingMaximumValueArray($c)
{
    return max($c);
}

нее, функция, внутри которой только одна стандартная функция - это избыточный код. такая функция актуальна для первого решения задачи. а max() пусть остаётся сама.

<pre><?php
function generateArrayRandom($n)
{
    for ($i = 0; $i < $n; $i ++) {
        $arrRandom[] = rand(1, 100);
    }
    print_r ($arrRandom); // вывод дампа массива для самопроверки
    return $arrRandom;  
}
 
$n = 3;
$genArrRand = generateArrayRandom($n);
$arrMaxNumber = max($genArrRand);
echo "Mаксимальное число массива = $arrMaxNumber.";
?>
melisa's picture

принято