Задача №12 - Сравнение элементов 2-х массивов
Primary tabs
Задачи из этого этого списка
<?php
/* Даны два массива по 20 элементов каждый (заполните случайными числами,
так чтобы среди элементов массива при очередном
запуске программы могли встретиться и отрицательные и положительные числа).
Сравните каждый 3-ий элемент 1-ого массива с каждый 2-ым элементов
2-ого массива - сравнение проводите пока не закончится та выборка, которая короче.*/
$N = 20;
$M = 20;
$arrayN = [];
$arrayM = [];
$k = 2; // Каждый 3-й элемент массива №1
$f = 1; // Каждый 2-й элемент массива №2
// Заполняем массив №1 случайными числами
for ( $i = 0; $i < $N; $i++ ) {
$arrayN[] = rand( -9, 9 );
}
// Заполняем массив №2 случайными числами
for ( $i = 0; $i < $M; $i++ ) {
$arrayM[] = rand( -9, 9 );
}
echo "Массив №1:". '<br />';
foreach ($arrayN as $value) {
echo "$value". ' ';
}
echo '<br />';
echo "Массив №2:". '<br />';
foreach ($arrayM as $value) {
echo "$value". ' ';
}
echo '<br />'.'<br />';
while ($k < $N && $f < $M) {
if ($arrayN[$k] > $arrayM[$f]) {
echo $arrayN[$k]. " больше, чем " .$arrayM[$f] . '<br />';
} elseif ($arrayN[$k] == $arrayM[$f]) {
echo $arrayN[$k]. " равно " .$arrayM[$f] . '<br />';
} else {
echo $arrayN[$k]. " меньше, чем " .$arrayM[$f] . '<br />';
}
$k += 3;
$f += 2;
}
?>
- Log in to post comments
- 7901 reads
melisa
Mon, 10/01/2018 - 15:26
Permalink
работает верно
Замечание
комментарии некорректны. Комментарии в коде всегда нужно писать для "дурака", который будет использовать ваш код (даже если вы думаете, что его никто не будет использовать - привычка - вторая натура). Поставьте себя на его место, представьте, что читающий не понимает что происходит, и пишите комментарий.
То же относится и к названиям переменных/функций/методов. Старайтесь называть их как можно более информативно, желательно, чтобы название иллюстрировало то, что они в себе хранят или что делают. Например, $appleCount, $lastLoginDate, $brickAndMortarShop, donutEater(), emailMessageSender().
Задача
Дополните свой код 2мя функциями: создания и вывода массива на экран.
Пусть функция вывода массива принимает аргумент "Имя массива".
Дайте функциям информативные имена.
Pavel1989
Tue, 10/02/2018 - 22:04
Permalink
Исправил
<?php /* Даны два массива по 20 элементов каждый (заполните случайными числами, так чтобы среди элементов массива при очередном запуске программы могли встретиться и отрицательные и положительные числа). Сравните каждый 3-ий элемент 1-ого массива с каждый 2-ым элементов 2-ого массива - сравнение проводите пока не закончится та выборка, которая короче.*/ // Объявление функции создания массива и заполнения его случайными числами function сreateArray($N) { for ( $i = 0; $i < $N; $i++ ) { $array[] = rand( -9, 9 ); } return $array; } // Объявление функции вывода массива на экран function outputArray($array) { foreach ( $array as $value ) { echo($value). ' '; } } $k = 2; $f = 1; $array1 = сreateArray(20); // Создание массива №1 $array2 = сreateArray(20); // Создание массива №2 outputArray($array1); echo '<br />'; outputArray($array2); echo '<br />'.'<br />'; // Сравнение каждого 3-го элемента первого массива с каждым 2-м элементом 2-го массива while ($k < count($array1) && $f < count($array1)) { if ($array1[$k] > $array2[$f]) { echo $array1[$k]. " больше, чем " .$array2[$f] . '<br />'; } elseif ($array1[$k] == $array2[$f]) { echo $array1[$k]. " равно " .$array2[$f] . '<br />'; } else { echo $array1[$k]. " меньше, чем " .$array2[$f] . '<br />'; } $k += 3; $f += 2; } ?>melisa
Wed, 10/03/2018 - 13:09
Permalink
хорошо, но не всё
Имелось ввиду, что "Имя массива" - строка, используемая в комментарии в выводе. Вот вы писали :
а теперь получилось, что на экран выводятся только значения. Сделайте, чтобы название массива тоже выводилось. А т.к., функция может быть использована много раз, и название каждый раз будет разное, нельзя выводить только универсальное название (точнее можно, но бессмысленно - не информативно). Но можно передавать название в качестве второго аргумента в функцию.
Pavel1989
Wed, 10/03/2018 - 13:43
Permalink
Доработал
<?php /* Даны два массива по 20 элементов каждый (заполните случайными числами, так чтобы среди элементов массива при очередном запуске программы могли встретиться и отрицательные и положительные числа). Сравните каждый 3-ий элемент 1-ого массива с каждый 2-ым элементов 2-ого массива - сравнение проводите пока не закончится та выборка, которая короче.*/ // Объявление функции создания массива и заполнения его случайными числами function сreateArray($N) { for ( $i = 0; $i < $N; $i++ ) { $array[] = rand( -9, 9 ); } return $array; } // Объявление функции вывода массива на экран function outputArray($array, $index) { echo "Массив ". $index.'<br />'; foreach ( $array as $value ) { echo($value). ' '; } } $k = 2; $f = 1; $array1 = сreateArray(20); // Создание массива №1 $array2 = сreateArray(20); // Создание массива №2 outputArray($array1, 1); echo '<br />'; outputArray($array2, 2); echo '<br />'.'<br />'; // Сравнение каждого 3-го элемента первого массива с каждым 2-м элементом 2-го массива while ($k < count($array1) && $f < count($array1)) { if ($array1[$k] > $array2[$f]) { echo $array1[$k]. " больше, чем " .$array2[$f] . '<br />'; } elseif ($array1[$k] == $array2[$f]) { echo $array1[$k]. " равно " .$array2[$f] . '<br />'; } else { echo $array1[$k]. " меньше, чем " .$array2[$f] . '<br />'; } $k += 3; $f += 2; } ?>melisa
Wed, 10/03/2018 - 13:47
Permalink
принято
принято