Slavina036 задачи по PHP

Задача 1

Вывести на экран N случайных чисел (каждое с новой строки) из диапазона [-21, 35]
ПРИМЕЧАНИЕ: подразумевается, что вы должны организовать цикл, который выполнится N раз и при этом в каждом своём витке выведет на экран случайное число.
<?php
for ($counter = 0; $counter < 5; $counter++) {
    $number = rand(-21,35);
    echo $number, "<br>";
}
?>

Задача 2

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

<?php
$number = 0;
for ($counter = 0; $counter < 5; $counter++) {
    $number = $number + rand(-21,35);
}    
    echo $number;
?>

Задача 3

Вывести на экран N случайных чисел (каждое с новой строки). Для каждого числа, начиная со второго, рядом выводить - больше ли оно предыдущего или меньше. например:

-1
20 больше -1
-5 меньше 20
-6 меньше -5
и т.д.
<?php
$a = rand(-21,35);
echo "$a<br>";
for ($counter = 0; $counter < 4; $counter++) {
    $b = $a;
    $a = rand(-21,35);
    if ($a > $b) {
        echo "$a bolshe $b<br>";
    } elseif ($a < $b) {
        echo "$a menshe $b<br>";
    } else {
        echo "$a ravno $b<br>";
    }
}
?>

Задача 4

Вывести на экран n-ное число Фибоначчи. Пример последовательности:

0 
1
1 
2 
3
5
8 
13
21...и т.д.
<?php
$n = 15;
$a = 0;
$b = 1;
for ($counter = 0; $counter < $n; $counter++) {
    echo "$a<br>";
    $c = $b + $a;
    $a = $b;
    $b = $c;
}
?>

Задача 5

Дано некоторое число длиной от 1 до 5 цифр - вывести его цифры в обратном порядке.
Например:

3567=
7
6
5
3

Подсказка: используйте цикл while и операцию получения остатка.

<?php
echo $n = rand(0,99999) , "=<br>";
while ($n > 0) {
    echo $n % 10 , "<br>";
    $n = intdiv($n , 10);
}    
?>

Задача 6

Дано некоторое число длиной от 1 до 5 символов, вывести все его "нечётные" цифры в обратном порядке (аналогично предыдущей задаче), если же таких цифр не найдёт, вывести сообщение "Нечетных цифр не обнаружено!"

<?php
$foo  = true;
echo $n = rand(0,99999) , "<br>";
while ($n > 0) {
    $divn = $n % 10;
    if (($divn % 2) == 0) {
        echo $divn , "<br>";
        $f = false;
    }    
    $n = intdiv($n , 10);
} 
if (f == true)
    echo "No odd digits were detected!";
?>
выдает такой результат
71714
4
No odd digits were detected!Use of undefined constant f - assumed 'f' (this will throw an Error in a future version of PHP) on line 12

Задача 7

Задать массив из 7-ми элементов через предварительное описание типа, заполнить его случайными значениями в одном цикле, а в другом цикле вывести эти значения на экран.

<?php
for ($index = 1; $index < 8; $index++) {
    $array [] = rand();   
}
foreach ($array as $index => $value) {
    echo "index: $index; value: $value<br>";
}
?>

Задача 8

Задать двумерный массив размерностью m на n (MxN) элементов (m и n вынести в область определения констант), заполнить его случайными значениями и вывести их на экран уже после того, как весь массив будет заполнен (т.е. заполнять и выводить в разных группах циклов).

<?php
$m = rand(3,9);
$n = rand(10,20);
echo "m = $m; n = $n<br>";
for ($outer_index = 1; $outer_index <=$m; $outer_index++) {
    for ($inner_index = 1; $inner_index <=$n; $inner_index++) {
        $massivMN [$outer_index] [$inner_index] = rand(0,10);
    } 
}
foreach ($massivMN as $outer_index => $massiv) {
    foreach ($massiv as $inner_index => $value) {
        echo("$massiv [$outer_index][$inner_index] = $value<br>");
    }
}
?>

Задача 9

Задайте случайным образом массив из N элементов. Выведите его на экран "ёлочкой". Вот начало такого вывода:

1
2 3
4 5 6
7 8 9 10
11 12 ......

Второй вариант - сделайте то же самое, но не используйте массив: у вас есть переменная N, выведете на экран, все числа до N, по тому же принципе что и выше, например, если N=9, то получим:

1
2 3
4 5 6
7 8 9
<?php
$n = rand(10,100);
echo "n = $n<br>";
for ($index = 1; $index <= $n; $index++) {
    $array [] = $index;   
}
$max = 1;
$current = 0;
foreach ($array as $index => $value) {
    echo "$value ";
    $current++;
    if ($current == $max) {
        echo "<br>";
        $max++;
        $current = 0;
    }
}
?>
<?php
$n = rand(10,100);
echo "n = $n<br>";
$max = 1;
$current = 0;
for ($index = 1; $index <= $n; $index++) {
    echo "$index ";
    $current++;
    if ($current == $max) {
        echo "<br>";
        $max++;
        $current = 0;
    }
}
?>

Задача 10

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

<?php
$n = rand(10,100);
echo "n = $n<br>";
for ($index = 1; $index <= $n; $index++) {
    echo $array [] = rand(0,100)," " ;
}
echo "<br> max = ", max($array);
?>

Задача 11

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

<?php
for ($index = 1; $index <= 20; $index++) {
    echo $array [] = rand(0,100)," " ;
}
echo "<br> min = ", min($array);
?>

Задача 12

Даны два массива по 20 элементов каждый (заполните случайными числами, так чтобы среди элементов массива при очередном запуске программы могли встретиться и отрицательные и положительные числа).
Сравните каждый 3-ий элемент 1-ого массива с каждый 2-ым элементов 2-ого массива - сравнение проводите пока не закончится та выборка, которая короче.
Например пусть мы имеем два массива (запишу лишь начальные элементы):

 1 | 2 | -10 | 5 | 0 | 12 | 2 | 8 ....
0 | 3 | 4 | 9 | 7 | 5 | -8 | 3.....

для них программа должна вывести:

-10 меньше 3
12 больше 9

- других сравнений не последует, так как новых из "каждых третьих элементов" в 1-ом массиве больше нет.

<?php
function array_echoer (&$array)
{
    for ($index = 0; $index <= 19; $index++) {
        echo $array [] = rand(-10,10)," " ;
    }
    echo"<br>";
}
array_echoer ($array1);
array_echoer ($array2);
$key1 = 2;
$key2 = 1;
while ($key1 <= 19) {
    if  ($array1[$key1] > $array2[$key2]) {
        echo "$array1[$key1] more than $array2[$key2]<br>";
    } elseif ($array1[$key1] < $array2[$key2]) {
        echo $array1[$key1], " less than ", $array2[$key2], "<br>";
    } else {
        echo $array1[$key1]," equal ", $array2[$key2], "<br>";
    }
    $key1 += 3;
    $key2 += 2;
}
?>

Задача 13

Создайте функцию, которая принимает на вход массив случайных чисел из диапазона [5..12]. Обходит этот массив и делает для каждого элемента следующее (пусть она оказывает побочный эффект прямо в своём теле):
Если это число равно 5 -- то выведете на экран строку "пять", если 6 -- то строку "шесть", если 7 то число "7", иначе -- строку "какое-то другое число".
Используйте для решения задачи оператор switch(link is external) (или см. книгу Стивена Хольцнера стр. 60).

<?php
function processing ($array)
{
    foreach ($array as $value) {   
        echo $value, " - ";
        switch ($value) {
            case 5 :
                echo "five<br>";
                break;
            case 6 :
                echo "six<br>";
                break;
            case 7 :
                echo "seven<br>";
                break;
            default:
                echo "some other number<br>";
        }
    }
}
for ($index = 1; $index <= 20; $index++) {
    echo $arr [] = rand(5,12)," " ;
}
echo "<br>";
processing ($arr);
?>

Задача 14

Есть два массива "a" и "b". На вход вашей программе подаётся массив "a" случайных чисел (10 элементов) из диапазона от 1 до 20. Задача: вывести на экран все числа, которые не содержатся в массиве "b"

$b = [12, 5, 17, 6, 4];

Решите эту задачу двумя способами:

Без использования in_array()(link is external)
С использованием in_array()(link is external) (что проще).

<?php
for ($index = 0; $index <=19; $index++) {
    echo  $a[$index] = rand(1,20), " ";
}
echo "<br>";
$b = [12, 5, 17, 6, 4];
foreach ($b as $index) {
    echo $index, " ";
}
echo "<br>";
$difference = array_diff($a, $b);
$difference = array_unique($difference);
foreach ($difference as $index) {
    echo $index, " ";
}
?>