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

Вывести на экран сумму N случайных чисел.

Здравствуйте.
Выкладываю решение задачи на рассмотрение. В задаче сделал два ответа: сумма и сумма абсолютная.

<?php 
$min = -21; // мин число заданного диапазона
$max = 35; // макс число заданного диапазона
$n = 5; // число итераций цикла
$iter = 0; // обнуляем счетчик
$summ = 0; // обнуляем переменную
$summ_abs = 0; // обнуляем переменную  
while ($iter <= $n) {
    $value = rand($min , $max); // присваиваем переменной $value случайное число из заданного диапазона
    echo "Текущее число: $value <br>";    // выводим полученное число
    $iter += 1; // счетчик
    $summ += $value; // считаем сумму
    $summ_abs += abs($value); // считаем абсолютную сумму
}
echo "<p>", ("Сумма всех чисел: $summ.");
echo "<p>", ("Абсолютная сумма всех чисел: $summ_abs.");
?>
vedro-compota's picture

Задачу решили, но опять же:

  1. лучше использовать for (число повторений явно определено).
  2. Переделайте под функцию (сначала первую задачу, потому эту) -вернуть из функции можно только одно значение (хотя это и может быть массив), но в нашем случае достаточно вернуть единственное число - обычную сумму.

_____________
матфак вгу и остальная классика =)

Переписал код задачи с использованием функции.
Специально ввел в код функцию print_r для того, чтобы продемонстрировать правильность подсчета суммы случайных значений.

<pre><?php 
function randomFunction($number, $min, $max)
{
    for ($i = 0; $i < $number; $i ++) {
        $randomNumbers[$i] = rand($min, $max);      
    }
    print_r ($randomNumbers);
    return array_sum($randomNumbers);
}
$arr = randomFunction(3, -5, 7);
echo "Значение: $arr <br>";
?>

Решение задачи без использования массива:

<?php 
function randomFunction($number, $min, $max)
{
$randomNumbersSum = 0;
	for ($i = 0; $i < $number; $i ++) {
		$randomNumbers = rand($min, $max);		
		$randomNumbersSum += $randomNumbers;		
	}
    return $randomNumbersSum;
}
$arr = randomFunction(3, -5, 7);
	echo "Значение: $arr <br>";
?>
melisa's picture

исправьте отступы. и проверьте, пожалуйста, все свои последующие задачи на этот предмет, не заставляйте писать такой комментарий к каждой. и даже ссылку уже давала здесь на то, где можно изучить правильный вариант.

<?php 
function randomFunction($number, $min, $max)
{
	$randomNumbersSum = 0;
    for ($i = 0; $i < $number; $i ++) {
        $randomNumbers = rand($min, $max);      
        $randomNumbersSum += $randomNumbers;        
    }
    return $randomNumbersSum;
}
$arr = randomFunction(3, -5, 7);
echo "Значение: $arr <br>";
?>
melisa's picture

принято