Учебные задачи PHP. Задача 12
Primary tabs
<?php $number = 20; for ($i = 0; $i < $number; $i ++) { // заполняем 1-й массив $arrInitial[] = rand(-10, 10); } for ($i = 0; $i < $number; $i ++) { // заполняем 2-й массив $arrSecond[] = rand(-10, 10); } for ($i = 3; $i < $number; $i = $i + 3) { // обходим каждый 3-ой элемент массива и заполняем новый массив $initial $initial[] = $arrInitial[$i]; } for ($i = 0; $i < count($arrSecond); $i = $i + 2) { // обходим каждый 2-ой элемент массива и заполняем новый массив $second $second[] = $arrSecond[$i]; } for ($i = 0; $i < count($initial); $i ++) { // обходим оба массива $initial и $second и делаем сравнение их значений. Кол-во проходов делаем по количеству элементов массива $initial. if ($initial[$i] == $second[$i]) { echo "$initial[$i] равно $second[$i] <br>"; } elseif ($initial[$i] > $second[$i]) { echo "$initial[$i] больше $second[$i] <br>"; } else { echo "$initial[$i] меньше $second[$i] <br>"; } } ?>
- Log in to post comments
- 10114 reads
vedro-compota
Tue, 04/23/2019 - 10:56
Permalink
для обхода массива
для обхода массива предпочтительно ипользовать цикл foreach.
_____________
матфак вгу и остальная классика =)
vedro-compota
Tue, 04/23/2019 - 11:00
Permalink
без пересборки
Вы сдесь перестраивали массивы для сравнения, попробуйте провести сравнение в одном цикле, без построения новых массивов.
_____________
матфак вгу и остальная классика =)
Laven
Thu, 04/25/2019 - 11:16
Permalink
Модифицировал код задачи
Выкладываю код как промежуточное решение. Позже выложу код, "запакованный" в функцию.
Laven
Thu, 04/25/2019 - 13:07
Permalink
Решение задачи в виде функции
melisa
Fri, 04/26/2019 - 15:20
Permalink
function comparingArrays($a,
нет смысла передавать $n и $m в качестве параметров в функцию, т.к. внутри Вы в любом случае прибавляете 3 и 2
Т.е. даже если Вы передадите 8 и 9, сравнение начнётся с 8 и 9 номеров, но каждого 3 и 2, как и было.
В качестве параметров внутрь функции стоит передавать только то, что повлияет непосредственно на её работу.
Вы присваиваете новые имена массивам "вручную". Но можно дать эти имена уже аргументам функции, и это произойдёт автоматически.
Почему?
Локальная область видимости.
melisa
Fri, 04/26/2019 - 15:10
Permalink
тонкости перевода
inital переводится как начальный/исходный. при порядковом счёте используйте всё-таки first - первый
comparingArrays - сравнивая массивы; лучше compareArrays - сравнить массивы, ну или arrayСomparing - сравнение массивов
Конечно, на работоспособность кода это не влияет, но влияет на его читабельность.
Также, забегая немного вперёд, для выхода на работу программистом придётся подтянуть знания английского. Обычно требуется хотя бы уровень "могу читать документацию на английском" :)
Laven
Fri, 04/26/2019 - 22:20
Permalink
Исправил код задачи
Благодарю за проверку. Сделал исправления в части наименований сущностей и сути кода.
vedro-compota
Fri, 04/26/2019 - 23:27
Permalink
английский важнен, но умнение программировать - важнее)
требуется это далеко не всегда и не самое главное) если что- без паники
_____________
матфак вгу и остальная классика =)
melisa
Tue, 04/30/2019 - 17:18
Permalink
нет смысла передавать n и m
нет смысла передавать $n и $m в качестве параметров в функцию.
В качестве параметров внутрь функции стоит передавать только то, что повлияет непосредственно на её работу.
$n, $m - в Вашем случае, это внутренняя логика функции.
Laven
Tue, 04/30/2019 - 18:55
Permalink
Исправил код задачи
melisa
Tue, 04/30/2019 - 19:00
Permalink
принято
принято