Задача №10 - Нахождение максимального числа массива целых чисел

Задачи из этого этого списка


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

$N = 5;
$source = [];

echo "Исходный массив целых чисел:". '<br />'; 
   
//Заполнение массива случайными числами
    
for ( $i = 0; $i < $N; $i++ ) {
    $source[$i] = rand( -10, 10 );
    echo $source[$i]." ";   
}

echo '<br />';
echo "Максимальное число массива:". '<br />';

//Вывод максимального числа массива

echo max ($source); 
?>

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

melisa's picture

представьте вариант решения задачи в виде функции, принимающей в качестве аргумента $N - число элементов массива.

Pavel1989's picture

<?php
/* Задайте случайным образом массив из N элементов (целых чисел). Найдите максимальное число и напечатайте его. */
$N = 5;

// Объявление функции

function maximum($N)
{
    $source = [];
    echo "Исходный массив целых чисел:". '<br />'; 
      
    //Заполнение массива случайными числами
    
    for ( $i = 0; $i < $N; $i++ ) {
        $source[] = rand( -10, 10 );
        echo $source[$i]." ";   
    }
    
    echo '<br />';
    echo "Максимальное число массива:". '<br />';

    //Вывод максимального числа массива

    echo max ($source);
}

// Вывод результата работы функции

if ($N > 0) {
    echo maximum($N);
} elseif ($N == 0) {
    echo "Исходный массив должен состоять хотя бы из одного элемента!";    
} else {
    echo "Число элементов массива должно быть положительным!";
}
?>
melisa's picture

хорошо, но условия на $N лучше накладывать внутри функции.

if ($N > 0) {
    echo maximum($N);
} elseif ($N == 0) {
    echo "Исходный массив должен состоять хотя бы из одного элемента!";    
} else {
    echo "Число элементов массива должно быть положительным!";
}

Крайне желательно, чтобы функция/метод сам мог обрабатывать (например, выдать сообщение "Число элементов массива должно быть положительным!") любые входящие данные, не "падая в ошибку", т.к. в реально работающем приложении могут случиться а)намеренный взлом и подстановка вредоносных данных, б)ошибки по невнимательности самого разработчика.

Pavel1989's picture

<?php
/* Задайте случайным образом массив из N элементов (целых чисел). Найдите максимальное число и напечатайте его. */
$N = 7;

// Объявление функции

function maximum($N)
{
    if ($N > 0) {
        $source = [];
        echo "Исходный массив целых чисел:". '<br />'; 
      
        //Заполнение массива случайными числами
    
        for ( $i = 0; $i < $N; $i++ ) {
            $source[] = rand( -10, 10 );
            echo $source[$i]." ";   
        }
        
        echo '<br />';
        echo "Максимальное число массива:". '<br />';

        //Вывод максимального числа массива
        
        echo max ($source);
    } elseif ($N == 0) {
        echo "Исходный массив должен состоять хотя бы из одного элемента!";    
    } else {
        echo "Число элементов массива должно быть положительным!";
    }          
}

// Вывод результата работы функции

echo maximum($N);
?>
melisa's picture

echo maximum($N);

вы выводите на экран значение в этой строке.

переделайте функцию, чтобы она возвращала конечное значение, а не печатала его.

Pavel1989's picture

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

// Объявление функции

function maximum($N)
{
      if ($N == 0) {
          echo "Исходный массив должен состоять хотя бы из одного элемента!";  
      } elseif ($N < 0) {
          echo "Число элементов массива должно быть положительным!";    
      } else {
          $source = [];
          echo "Исходный массив целых чисел:". '<br />'; 
      
          //Заполнение массива случайными числами
    
          for ( $i = 0; $i < $N; $i++ ) {
               $source[] = rand( -10, 10 );
               echo $source[$i]." ";   
          }     
          echo '<br />';
          echo "Максимальное число массива:". '<br />';

          //Вывод максимального числа массива
        
          return max($source);
        }
}

// Вывод результата работы функции

echo maximum(7);
?>
melisa's picture

принято