0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 20
|
|
1 | |
Генераторы в PHP17.05.2018, 23:06. Просмотров 1710. Ответов 16
Метки нет Все метки)
(
PHP только начинаю изучать и вот появилась задача. Как это правильно реализовать, не представляю(
1 Создайте анонимную функцию и поместите её в переменную. Функция должна принимать массив и возвращать среднее значение всех элементов. 2 Создайте функцию-генератор, принимающую двумерный массив и функцию. Эта функция на каждой итерации должна возвращать среднее значение текущего массива. 3 Создайте двумерный массив из чисел. 4 С помощью foreach выведите все средние значения элементов двумерного массива.
0
|
|
17.05.2018, 23:06 | |
Различные генераторы различных документов Функции генераторы и выражения генераторы Электронные генераторы Генераторы документаций |
|
![]() 4426 / 3606 / 1515
Регистрация: 24.04.2014
Сообщений: 10,637
|
|
17.05.2018, 23:08 | 2 |
0
|
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 20
|
||||||
17.05.2018, 23:14 [ТС] | 3 | |||||
Jewbacabra, Вот примерно реализовать 3 и 4 п. ещё понимаю как:
С остальным сложно разобраться..
0
|
![]() 4426 / 3606 / 1515
Регистрация: 24.04.2014
Сообщений: 10,637
|
|
17.05.2018, 23:18 | 4 |
В п.4 сказано "выведите все средние значения элементов двумерного массива". Т.е среднее значение каждого подмассива.
И у меня сложилось впечатление, что реализовать 4 пункт нужно используя результаты 1 и 2, и начинать нужно с них.
0
|
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 20
|
|||||||||||
17.05.2018, 23:55 [ТС] | 5 | ||||||||||
Jewbacabra, тоже так думаю, но как связать пока не знаю.
1 п.
0
|
![]() 4426 / 3606 / 1515
Регистрация: 24.04.2014
Сообщений: 10,637
|
|
18.05.2018, 00:47 | 6 |
MailaGoogle, ну практически готово. Теперь нужно в функцию генератор передать двумерный массив и функцию вычисления среднего. Результат проитерировать с помощью
foreach , выводя значение на каждой итерации
0
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
|||||||||||
18.05.2018, 13:48 | 7 | ||||||||||
1.
2 вопрос не понял какую функцию передать, пользовательскую или какую?
0
|
![]() 4426 / 3606 / 1515
Регистрация: 24.04.2014
Сообщений: 10,637
|
|
18.05.2018, 15:32 | 8 |
maxoun, п 4 нужно реализовать используя наработки п 1 и 2. И оператор ... тут неуместен
0
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
|
18.05.2018, 16:34 | 9 |
Ну и почему же?? вдруг пользователь решил передать 100 значений массива?
Я нигде не увидел что п 4 нужно реализовать с помощью 1 и 2.
0
|
![]() 4426 / 3606 / 1515
Регистрация: 24.04.2014
Сообщений: 10,637
|
||||||
18.05.2018, 21:57 | 10 | |||||
Хоть 1 000 000. На то он и массив. Но один массив. Если 1 аргумент раскрыть через оператор ..., то 1 аргумент и останется Да и на 9 символов больше получается. https://ideone.com/75e3bC
Это вытекает из логики задания. Лирическое отступление: Добавлено через 7 минут
2
|
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
|
|
20.05.2018, 15:16 | 11 |
мда
0
|
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 20
|
||||||
20.05.2018, 23:06 [ТС] | 12 | |||||
Jewbacabra,
С помощью callable $callback не совсем понятно( У меня вариант такой получился:
0
|
0 / 0 / 0
Регистрация: 08.07.2018
Сообщений: 1
|
||||||
05.11.2018, 15:55 | 13 | |||||
0
|
1011 / 696 / 335
Регистрация: 09.07.2018
Сообщений: 1,663
|
|||||||||||
05.11.2018, 17:03 | 14 | ||||||||||
DarkStyleee
Кликните здесь для просмотра всего текста
Не по теме: Ваш генератор на самом деле не совсем генератор, я бы даже сказал - совсем не генератор ![]() Добавлено через 50 секунд Jewbacabra, +1 Добавлено через 1 минуту Jewbacabra, Вы не могли бы "на пальцах" объяснить, в чём существенное преимущество этой записи
0
|
![]() 4426 / 3606 / 1515
Регистрация: 24.04.2014
Сообщений: 10,637
|
|
05.11.2018, 17:18 | 15 |
В глобальном пространстве имен преимуществ нет.
В остальных случаях на 1 опкод меньше в скомпилированном коде. Щас уже статьи не найду, но читал что symfony таким образом ускорили на что-то около 5%. Мелочь конечно, но все же. И есть вероятность, что в новых версиях php обращение к глобальному пространству имен без явного указания будет объявлено устаревшим. Можно в начале файла писать use function array_sum;
1
|
1011 / 696 / 335
Регистрация: 09.07.2018
Сообщений: 1,663
|
||||||
05.11.2018, 17:23 | 16 | |||||
А со второй функцией тогда так же можно действовать?
0
|
![]() 4426 / 3606 / 1515
Регистрация: 24.04.2014
Сообщений: 10,637
|
|
05.11.2018, 17:40 | 17 |
0
|
05.11.2018, 17:40 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Генераторы списков Генераторы в InterBase Генераторы текстов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |