Решение для задач по PHP
Primary tabs
Задача №1
Вывести на экран N случайных чисел (каждое с новой строки) из диапазона [-21, 35]
Решение:
function random_write($N){ for ($index = 0; $index < $N; $index++) { $value = rand(-21,35); echo $value , "<BR>"; } } random_write(10);
Задача № 2
Вывести на экран сумму N случайных чисел.
Решение:
function random_sum($N) { $value = 0; for ($index = 0;$index < $N;$index++) { $value += rand(-21,35); } echo $value , "<BR>"; } random_sum(10);
Задача №3
Вывести на экран N случайных чисел (каждое с новой строки). Для каждого числа, начиная со второго, рядом выводить - больше ли оно предыдущего или меньше. например:
-1 20 больше -1 -5 меньше 20 -6 меньше -5 и т.д.
Решение:
function random_srav($N) { $first = rand(-21,35); echo $first, "<BR>"; $second = $first; for ($index = 0;$index<$N;$index++) { $first = rand (-21,35); if ($first > $second) { echo $first , " Больше " , $second , "<BR>"; } elseif ($first < $second) { echo $first , " Меньше " , $second , "<BR>"; } else { echo $first , " Равно " , $second , "<BR>"; } $second = $first; } } random_srav(5);
Задача №4
Вывести на экран n-ное число Фибоначчи. Пример последовательности:
0 1 1 2 3 5 8 13 21...и т.д.
Решение:
function fabonaci($N) { $firts = 0; $second =1; echo $firts ,"<BR>"; echo $second ,"<BR>"; for ($index = 0;$index < $N;$index++) { $next = $firts + $second; echo $next , "<BR>"; $firts = $second; $second = $next; } } fabonaci(7);
Задача №5
Дано некоторое число длиной от 1 до 5 цифр - вывести его цифры в обратном порядке.
3567= 7 6 5 3
Решение:
function reverse ($N) { $reverse = 0; while ($N>0) { $value = $N % 10; $reverse = ($reverse*10) + $value; $N = intdiv($N,10); } echo $reverse; } reverse(3567);
Задача №6
Дано некоторое число длиной от 1 до 5 символов, вывести все его "нечётные" цифры в обратном порядке (аналогично предыдущей задаче), если же таких цифр не найдёт, вывести сообщение "Нечетных цифр не обнаружено!"
Решение:
function reverse_necet ($N) { $reverse = 0; while ($N>0) { $value = $N % 10; if ($value % 2 != 0){ $reverse = ($reverse*10) + $value; } $N = intdiv($N,10); } if ($reverse == 0) { echo "Нечётных чисел нет"; } else { echo $reverse; } } reverse_necet (51243);
Задача №7
Задать массив из 7-ми элементов, заполнить его случайными значениями в одном цикле, а в другом цикле вывести эти значения на экран.
Решение:
function array_write() { $n = 7; $array = array (); for ($index = 0;$index<$n;$index++) { $random = rand(0,15); array_push($array,$random); } return $array; } function array_show($array) { foreach ($array as $value) { echo $value , "<BR>"; } } $array = array_write(); array_show($array);
Задача № 8
Задать двумерный массив размерностью m на n (MxN) элементов (m и n вынести в область определения констант), заполнить его случайными значениями и вывести их на экран уже после того, как весь массив будет заполнен (т.е. заполнять и выводить в разных группах циклов).
Решение:
function array_write() { define ("m",2); define ("n",2); $array = array (); for ($out = 0; $out<m;$out++) { for ($inner = 0; $inner <n; $inner++) { $random = rand(0,15); $array[$out][$inner] = $random; } } return $array; } function array_show($array) { for ($out = 0; $out<count($array);$out++) { for ($inner = 0; $inner <count($array[$out]); $inner++) { echo $array[$inner][$out], "<BR>"; } } } $arr = array_write(); array_show($arr);
Задача №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
Решение, вариант 1:
function array_write($n) { $array = array (); for ($index = 1; $index<=$n;$index++) { $array [] = $index; } return $array; } function elka($array) { $k = 2; for ($index = 0; $index < count($array);$index++) { echo $array[$index] , " "; if ($index == ($k * ($k-1)/2 - 1)){ $k++; echo "<BR>"; } } } $arr = array_write(9); elka($arr);
Решение, вариант 2:
function elka ($N) { $val = 1; $rows = 1; while ($val <=$N) { for ($count = 1; $count <= $rows && $val <= $N;$count++) { echo $val, " "; $val++; } $rows++; $count = 1; echo " <BR> "; } } elka(9);
Задача № 10
Задайте случайным образом массив из N элементов (целых чисел). Найдите максимальное число и напечатайте его.
Решение:
function array_max($N) { $array = array (); $max = 0; for ($index = 0;$index<$N;$index++) { $random = rand(0,15); array_push($array,$random); } for ($index = 0; $index<count($array);$index++) { if ($array[$index] > $max) { $max = $array[$index]; } } echo $max; } array_max(5);
Задача 11
Задайте случайным образом массив из 20-ти элементов (целых чисел). Найдите минимальное число и напечатайте его.
Решение:
function array_min($N) { $array = array (); for ($index = 0;$index<$N;$index++) { $random = rand(-15,15); array_push($array,$random); } $min = $array[0]; for ($index = 0; $index<count($array);$index++) { if ($array[$index] < $min) { $min = $array[$index]; } } echo $min; } array_min(20);
Задача 12
Даны два массива по 20 элементов каждый (заполните случайными числами, так чтобы среди элементов массива при очередном запуске программы могли встретиться и отрицательные и положительные числа).
Сравните каждый 3-ий элемент 1-ого массива с каждый 2-ым элементов 2-ого массива - сравнение проводите пока не закончится та выборка, которая короче.
Решение:
function array_write($N) { $array = []; for ($index = 0;$index<$N;$index++) { $random = rand(-15,15); array_push($array,$random); } return $array; } function array_show($array) { foreach ($array as $value) { echo $value , " "; } } function array_srav($array1,$array2) { $val1 = 0; $i = 0; $j = 0; echo "<BR>"; echo "Сравнение каждого 3 элемента первого массива с каждым 2 элементом второго массива <BR>"; while ($i < count($array1) && $j<count($array2)) { if (($i+1) % 3 ==0) { $val1 = $array1[$i]; } else { $i++; continue; } if (($j+1) % 2 ==0) { $val2 = $array2[$j]; } else { $j++; continue; } if ($val1 > $val2) { echo "$val1 > $val2 <BR>"; } else if ($val1 < $val2) { echo "$val1 < $val2 <BR>"; } else { echo "$val1 = $val2 <BR>"; } $i++; $j++; } } $array1 = array_write(20); $array2 = array_write(20); array_show($array1); echo "<BR>"; array_show($array2); array_srav($array1,$array2);
Задача 13
Создайте функцию, которая принимает на вход массив случайных чисел из диапазона [5..12]. Обходит этот массив и делает для каждого элемента следующее (пусть она оказывает побочный эффект прямо в своём теле):
Если это число равно 5 -- то выведете на экран строку "пять", если 6 -- то строку "шесть", если 7 то число "7", иначе -- строку "какое-то другое число".
Решение:
function create_array($N) { for ($index = 0;$index < $N;$index++) { $random = rand (5,12); $array[$index] = $random; } return $array; } function array_write($array) { foreach($array as $value) { echo $value , " "; } } function word ($array) { echo "<br>"; foreach($array as $value) { switch ($value){ case 5: echo "пять <BR>"; break; case 6: echo "шесть <BR> "; break; case 7: echo "семь <BR>"; break; case 8: echo "восемь <BR>"; break; case 9: echo "девять <BR>"; break; case 10: echo "десять <BR>"; break; case 11: echo "одиннадцать <BR>"; break; case 12: echo "двенадцать <BR>"; break; default: echo "Число вне диапазона от 5 до 12 <BR>"; break; } } } $array = create_array(5); array_write($array); word($array);
Задача 14
Есть два массива "a" и "b". На вход вашей программе подаётся массив "a" случайных чисел (10 элементов) из диапазона от 1 до 20. Задача: вывести на экран все числа, которые не содержатся в массиве "b"
Решение первым способом: function create_array($N) { for ($index = 0;$index < $N;$index++) { $random = rand (1,20); $array[$index] = $random; } return $array; } function array_write($array) { foreach($array as $value) { echo $value , " "; } } function unique($array1,$array2) { $total_array = array(); for ($i = 0;$i < count($array1);$i++) { $found = false; for ($j=0;$j < count($array2);$j++) { if ($array1[$i] == $array2[$j]) { $found = true; break; } } if (!$found) { $total_array[] = $array1[$i]; } } return $total_array; } $array1 = create_array(5); $array2 = create_array(5); array_write($array1); echo "<BR>"; array_write($array2); $array3 = unique($array1,$array2); echo "<BR>"; array_write($array3);
Решение вторым способом:
function create_array($N) { for ($index = 0;$index < $N;$index++) { $random = rand (1,20); $array[$index] = $random; } return $array; } function array_write($array) { foreach($array as $value) { echo $value , " "; } } function unique($array1,$array2) { $total_array = array(); foreach($array1 as $value) { if (!in_array($value,$array2)) { $total_array[] = $value; } } return $total_array; } $array1 = create_array(5); $array2 = create_array(5); array_write($array1); echo "<BR>"; array_write($array2); $array3 = unique($array1,$array2); echo "<BR>"; array_write($array3);
- Log in to post comments
- 876 reads
vedro-compota
Fri, 09/13/2024 - 00:56
Permalink
в случае перебора элементов
в случае перебора элементов массива надо использовать foreach
_____________
матфак вгу и остальная классика =)