Учебные задачи PHP. Задача 3
Primary tabs
Решение для задачи из списка
<?php
/**
* Решение для задачи №3 из курса PHP
*
* Вывести на экран N случайных чисел (каждое с новой строки).
* Для каждого числа, начиная со второго, рядом выводить -
* больше ли оно предыдущего или меньше.
*/
$n = 15; //переменная для хранения требуемого количества элементов
$randNums = getRandNumber($n);//Служебная переменная для хранения массива случайных чисел получаемых функцией
for ($i = 0; $i < count($randNums); $i++){ //Цикл для вывода чисел
if($i < 1){
echo $randNums[$i]."<br>";
}else{
if($randNums[$i] < $randNums[$i-1]){
echo $randNums[$i]." меньше предыдущего<br>";
}elseif($randNums[$i] > $randNums[$i-1]){
echo $randNums[$i]." больше предыдущего<br>";
}else{
echo $randNums[$i]." равно предыдущему<br>";
}
}
}
function getRandNumber($count) {
//Функция принимает на входе в качестве параметра число элементов.
//возвращает массив элементов
$numbers = [];
for ($i=0; $i < $count; $i++) {
$numbers [] = rand();
}
return $numbers;
}
?>- Log in to post comments
- 8216 reads
vedro-compota
Tue, 09/03/2019 - 13:39
Permalink
другие варианты
Напишите ещё два варианта решения:
_____________
матфак вгу и остальная классика =)
toyrik
Tue, 09/03/2019 - 22:44
Permalink
Как то так....
<?php /** * Решение для задачи №3 из курса PHP * * Вывести на экран N случайных чисел (каждое с новой строки). * Для каждого числа, начиная со второго, рядом выводить - * больше ли оно предыдущего или меньше. * * UPD используйте foreach вместо for для обхода массива при выводе. * Как будет выглядеть код? */ $n = 15; //переменная для хранения требуемого количества элементов foreach (getRandNumber($n) as $num => $value) { if ($num < 1) { echo $value."<br>"; $prev = $value; }else{ if($value < $prev){ echo $value." меньше предыдущего<br>"; $prev = $value; }elseif($value > $prev){ echo $value." больше предыдущего<br>"; $prev = $value; }else{ echo $value." равно предыдущему<br>"; $prev = $value; } } } function getRandNumber($count) { //Функция принимает на входе в качестве параметра число элементов. //возвращает массив элементов $numbers = []; for ($i=0; $i < $count; $i++) { $numbers [] = rand(); } return $numbers; } ?><?php /** * Решение для задачи №3 из курса PHP * * Вывести на экран N случайных чисел (каждое с новой строки). * Для каждого числа, начиная со второго, рядом выводить - * больше ли оно предыдущего или меньше. * * UPD напишите третий вариант решения без использования * массивов с реализацией решения в виде функции */ numSeriesCompare(14); function numSeriesCompare($count = null) { for ($i=0; $i < $count ; $i++) { $current = rand(0, 99); if($i < 1){ echo $current."<br>"; $prev = $current; }else{ if($i > 0 && $current > $prev){ echo $current." больше предыдущего<br>"; $prev = $current; }elseif ($i > 0 && $current < $prev) { echo $current." меньше предыдущего<br>"; $prev = $current; }else{ echo $current." равно предыдущему<br>"; $prev = $current; } } } } ?>vedro-compota
Sat, 09/07/2019 - 14:55
Permalink
замечания
-- это код судя по всему никогда не выполняется, внутри цикла. Исправьте.
_____________
матфак вгу и остальная классика =)
toyrik
Mon, 09/09/2019 - 21:47
Permalink
Поправил
Не знаю на сколько точно понял мысль... но получилось вот так.
<?php /** * Решение для задачи №3 из курса PHP * * Вывести на экран N случайных чисел (каждое с новой строки). * Для каждого числа, начиная со второго, рядом выводить - * больше ли оно предыдущего или меньше. * * UPD используйте foreach вместо for для обхода массива при выводе. * Как будет выглядеть код? */ $n = 15; //переменная для хранения требуемого количества элементов showCompareArray(getRandNumber($n)); function showCompareArray($array) { echo $array[0] . "<br>"; $prev = $array[0]; foreach ($array as $num => $value) { if ($num > 1) { if ($value < $prev) { echo $value . " меньше предыдущего<br>"; $prev = $value; } elseif ($value > $prev) { echo $value . " больше предыдущего<br>"; $prev = $value; } else { echo $value . " равно предыдущему<br>"; $prev = $value; } } } } function getRandNumber($count) { //Функция принимает на входе в качестве параметра число элементов. //возвращает массив элементов $numbers = []; for ($i = 0; $i < $count; $i++) { $numbers [] = rand(); } return $numbers; } ?>vedro-compota
Sat, 09/07/2019 - 14:59
Permalink
исправить форматирование
код неправильно отформатирован, в данном случае это и пробелы между скобками и ключевыми словами и отступы.
_____________
матфак вгу и остальная классика =)
toyrik
Sat, 09/07/2019 - 17:08
Permalink
Форматирование исправил
<?php /** * Решение для задачи №3 из курса PHP * * Вывести на экран N случайных чисел (каждое с новой строки). * Для каждого числа, начиная со второго, рядом выводить - * больше ли оно предыдущего или меньше. * * UPD напишите третий вариант решения без использования * массивов с реализацией решения в виде функции */ numSeriesCompare(14); function numSeriesCompare($count = null) { for ($i=0; $i < $count ; $i++) { $current = rand(0, 99); if ($i < 1) { echo $current."<br>"; $prev = $current; } else { if ($i > 0 && $current > $prev) { echo $current." больше предыдущего<br>"; $prev = $current; } elseif ($i > 0 && $current < $prev) { echo $current." меньше предыдущего<br>"; $prev = $current; } else { echo $current." равно предыдущему<br>"; $prev = $current; } } } } ?>vedro-compota
Mon, 09/16/2019 - 23:06
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)