Вывести на экран сумму N случайных чисел.
Primary tabs
<?php function Random_num_1 ($N) { $sum=0; for ($i=1;$i<=$N;$i++) { $a=rand(); $sum= $a+$sum; echo $a, "<BR>"; } } $b=Random_num_1 (10); ?>
- Log in to post comments
- 10360 reads
<?php function Random_num_1 ($N) { $sum=0; for ($i=1;$i<=$N;$i++) { $a=rand(); $sum= $a+$sum; echo $a, "<BR>"; } } $b=Random_num_1 (10); ?>
vedro-compota
Sun, 03/05/2017 - 13:25
Permalink
Тут есть несколько моментов:
Тут есть несколько моментов:
_____________
матфак вгу и остальная классика =)
fgh
Mon, 03/06/2017 - 07:50
Permalink
Исправлен вывод функции.
Большое спасибо за замечания. Но у меня есть трудности с пониманием пунктов №1 и №2 . Можно пояснить - побочный эффект это вывод всех хначений массива? А форматирование кода -это отсутствие правильных отступов?
math2
Mon, 03/06/2017 - 10:46
Permalink
Да, отступы отсутствуют.
Да, отступы отсутствуют.
Функция Random_num_1 не возвращает сумму случайных чисел, а лишь выводит её
на экран.
После выполнения
переменная \$b примет значение NULL.
vedro-compota
Mon, 03/06/2017 - 14:51
Permalink
побочный эффект это вывод
Вывод на экран же следует делать отдельно от функции. Например в контексте вызова функции после получения из неё значения.
_____________
матфак вгу и остальная классика =)
math2
Wed, 03/08/2017 - 12:27
Permalink
<?php
Здесь две функции, которые вычисляют одно и то же. Различие их в том, что
Random_num_1 просто печатает на экране результат своих вычислений:
а функция Random_num_2 ничего не печатает, а возвращает результат своих вычислений
[внешнему коду, вызывающему её]:
Поэтому тип переменной \$b --- NULL, а тип переменной \$c --- integer.
Если нам нужно всего лишь вывести на экран вычисленную сумму случайных чисел,
то не имеет большого значения, какую функцию применять, Random_num_1 или Random_num_2.
Ключевое различие функций Random_num_1 и Random_num_2 в том, что
мы не можем использовать Random_num_1 в арифметических выражениях,
но можем использовать Random_num_2.
Например, если мы хотим разделить нашу сумму случайных чисел на 185,
и вывести результат на экран, то можем применить Random_num_2:
В результате получим что-нибудь похожее на
Мы не смогли бы использовать функцию Random_num_1 в
подобном выражении с тем же успехом.
выдаст следующее:
Функция Random_num_1 выводит на экран нашу сумму, возвращает NULL. Затем NULL
в арифметическом выражении приводится к нулю. Ноль делится на 185, и выводится результат --- 0.
fgh
Sat, 03/11/2017 - 20:09
Permalink
Огромное спасибо за комментарии.
vedro-compota и math 2 спасибо за подробные комментарии, объяснение понятия "возврат значения" и разбор ошибок.
1) Форматирование кода - исправил. Применил правило табуляции (каждая вложенная функция печатается с отступом на один tab, также открывающие и закрывающие скобки пишутся "по линии" функции или конструкции, к которой принадлежат.
2) Ошибка с возвратом функции исправлена. Теперь сама функция random_num_1 () возвращает значение после ввода аргумента, но не выводит его, т.к. это побочный эффект. Ниже представлен листинг программы:
3) Прошу пояснить,
Уважаемые коллеги, все ли ошибки учтены? Заранее спасибо.