ЗМАГАННЯ ЗАВЕРШЕНО
НАЗВА ПРОЕКТУ
Конкурс:
Онлайн конкурс "PHP"
Номінація:
PHP
Автор:
Александр Чёрный
Команда:
 
№1 Нумерований масив

Створити нумерований масив $arr_num, у якому збережені імена людей.

Відсортувати  масив за іменем у порядку спадання та вивести  за допомогою функції print_r.


ОПИС РОБОТИ:
Опис результатів
Новий додаток

№2 Асоціативний масив

Створити асоціативний массив $arr_assoc у якому збережені пари імен у вигляді дівоче імя - ключ, чоловіче ім`я - значення та заповнити його як на малюнку нижче.

Створити функцію випадкового перемішування пар  таким чином щоб у кожної дівчини з`явився новий хлопець. Якщо після випадкового перемішування якась пара залишилася сталою, необхідно заново перезапускати перемішування до тих пір, поки усі пари стануть новими.

Виконати функцію над масивом $arr_assoc.  Вивести  за допомогою функції print_r значення старого та перемішаного масиву $arr_assoc.


ОПИС РОБОТИ:
Опис результатів
Новий додаток

№3 Ігрова площина

Є координатна поверхня розміром 100 на 100 пікселів. 

Завдання:

1. Згенерувати масив з 50 точками, які знаходяться всередині цієї координатної поверхні. Координати точок повинні бути випадковими.  У результаті масив повинен мати наступний вигляд:

$data = array(   array( "x" => 91, "y" => 81),   array( "x" => 50, "y" => 99),  ...    array( "x" => 23, "y" => 2 )  );
 
Вивести масив за допомогою функції print_r;
 
2. Відсортувати масив по зростанню координати Х. Якщо існує декілька точок з одинаковими координатами Х, необхідно відсортувати ці точки по зростанню координати Y. У результаті масив повинен мати наступний вигляд:
 
$data = array(  array( "x" => 1, "y" => 81), array( "x" => 2, "y" => 5), array( "x" => 2, "y" => 85),  ...,  array( "x" => 98, "y" => 2 )  );
 
Вивести масив за допомогою функції print_r;

3. Розбити координатну площину на однакових 9 квадратів (як на малюнку). Створити новий масив, який матиме 9 комірок, що відповідають квадратам координатної площини. У ці комірки додати точки, які знаходяться у цих координатах. Результуючий масив повинен матиме наступний вигляд:

$coord_data = array(
1 => array( array( "x" => 2, "y" => 5), array( "x" => 2, "y" => 15),  array( "x" => 15, "y" =>10),  array( "x" => 20, "y" =>1)  ),
...,
9 => array( array( "x" => 81, "y" => 99), array( "x" => 92, "y" =>80),  array( "x" => 99, "y" =>88)  )
);
 
Вивести результуючий масив за допомогою функції print_r;

ОПИС РОБОТИ:
Опис результатів
Новий додаток

№4 Дворівневий пошук

Написати функцію, яка визначатиме найближчий об'єкт від заданої точки. 
На вхід функції подається координата точки (х, y), а також масив об'єктів $coord_data який є результатом завдання №3 Ігрова площина.

Алгоритм пошуку повинен містити 2 етапи

        1. Грубий пошук по 9 квадратам
        2. Точний пошук по об'єктам, які знаходяться всередині цих квадратів.


ОПИС РОБОТИ:
Опис результатів
Новий додаток

ОБГОВОРЕННЯ:
2012-11-26 16:37 Sergiy Lytvyn:
1
2012-11-26 17:47 Андрей Ющенко:
Надеюсь хоть на него время будет...
2012-11-26 18:08 Роман Самарский:
блин, постоянно регистрируюсь на соревнования и каждый раз пропускаю! :( то забываю. то пары до 7вечера(
2012-11-28 22:52 adolf stalin:
[Коментар видалено Адміністратором] Перше попередження учаснику за вживання нецензурної лексики.
2012-12-01 12:18 Микола Гілко:
:D опять 10 группа в составе трёх человек стабильно приходящих в субботу будет тест писать, а не задания делать :D
2012-12-01 18:50 Владислав Урсул:
Повезло)))
2012-12-01 18:50 Владислав Урсул:
а я буду писать с температурой
2012-12-01 18:51 Владислав Урсул:
39
2012-12-01 18:55 Адміністратор:
Доброго вечора усім учасникам!
2012-12-01 18:56 Владислав Урсул:
Добрый вечер
2012-12-01 18:57 Адміністратор:
Де підхопив хворобу, Владиславе?
2012-12-01 18:59 Владислав Урсул:
Отравился. С мамой вчера тортик поели)))
2012-12-01 18:59 Владислав Урсул:
целый день спал
2012-12-01 19:00 Адміністратор:
Сумно... Але у тебе є шанс сьогодні покращити собі настрій! :)
2012-12-01 19:01 Владислав Урсул:
спс
2012-12-01 19:03 Адміністратор:
ОСНОВНІ ІНСТРУКЦІЇ - для того, щоб прикріпити роботу до завдання, необхідно на сторінці свого проекту перейти в режим редагування (натиснути на олівець в правому верхньому кутку). Після цього під кожним завданням з`являться олівчики для завантаження .php файлів. Для кожного завдання повинен бути 1 файл. Після того, як файл завантажився, рекомендується перевірити коректність завантаження - для цього збережіть його назад на свій комп`ютер та перегляньте вміст.
2012-12-01 19:12 Владислав Урсул:
обязательно выводить результат в таблице?
2012-12-01 19:15 Микита Меленчуков:
задаю тот же вопрос
2012-12-01 19:15 Дмитро Вітюк:
Владиславе, таблиця на малюнку для більш чіткого розуміння завдання. Для виведення достатньо print_r
2012-12-01 19:18 Владислав Урсул:
спс
2012-12-01 19:21 Дмитрий Мачавариани:
Скажите пожалуйста, а обязательно имена на Украинском языке?
2012-12-01 19:25 Дмитро Вітюк:
Дмитре, взагалі-то мовне питання в конкурсі не принципове - можна і російською і англійською і німецькою. Головне, щоб завдання було виконане.
2012-12-01 19:31 Дмитрий Мачавариани:
Спасибо
2012-12-01 19:42 Микола Гілко:
Как, блин, объединить два массива?!?!?
2012-12-01 19:58 Микола Гілко:
Есть код: while (list(, $name) = each($names)) { echo "$mass = $name"; } $mass = другой массив Вопрос: как заставить $mass работать в этом коде?
2012-12-01 20:04 Адміністратор:
Після конкурсу, напевне, Суддя та учасники підкажуть як це зробити :)
2012-12-01 20:14 Дмитрий Мачавариани:
Блин с этим конкурсом очень хорошо можно научится работать с поисковиком, и выучить много того, что в этих задачах даже не используется... Но всё равно классно :=)
2012-12-01 20:33 Микола Гілко:
Дмитрий Мачавариани, открою тебе секрет: все конкурсы для этого и задуманы. Дмитрий Витюк, ты бог - я не способен решить твои задания :( Я признаю это :(
2012-12-01 20:43 Дмитрий Мачавариани:
Кстати тоже не могу на третьей задаче застрял... Сайты пишу вроде работал с массивами, а оказалось что я о них ничего не знаю. Печально. Будем книги читать.
2012-12-01 20:44 Владислав Урсул:
Оказывается конкурс по php сбивает температуру. Уже 37 градусов
2012-12-01 20:46 Владислав Урсул:
2012-12-01 20:49 Адміністратор:
Владиславе, на жаль на цьому тижні це останній конкурс. А то ми тебе б до понеділка вилікували повністю :)
2012-12-01 20:49 Микита Меленчуков:
хто за +30 хв?
2012-12-01 20:50 Дмитрий Мачавариани:
Администратор, а ещё будут конкурсы по html, css, php? Или этот последний?
2012-12-01 20:51 Дмитрий Мачавариани:
Мне эти конкурсы нравятся тем что она волей не волей заставляют работать мозг.
2012-12-01 20:51 Владислав Урсул:
будут
2012-12-01 20:51 Владислав Урсул:
только не на этой неделе
2012-12-01 20:53 Адміністратор:
Періодичність проведення конкурсів по технології десь через 2-3 тижні. Послідовно чергуються конкурси 1-ого та 2-ого рівня. 1-ий рівень - тестування, 2-ий рівень - практичні завдання.
2012-12-01 20:56 Адміністратор:
Конкурс продовжено на 20 хвилин.
2012-12-01 21:00 Іван Безсмертний:
Адміністратор, а нічого що я в деяких файлах(наприклад 3-тє завдання) залишив код який формує ці точки? Тобто не тільки саму функцію пошуку а й те звідки ці точки беруця
2012-12-01 21:01 Іван Безсмертний:
точніше четверте завдання разом з третім
2012-12-01 21:02 Адміністратор:
Це запитання до Судді
2012-12-01 21:05 Дмитро Вітюк:
Нічого. При перевірці матиме значення алгоритм. Дані, можливо, будуть замінені на загальні, для більш прозорої перевірки алгоритму.
2012-12-01 21:22 Адміністратор:
Вітаю усіх із завершенням конкурсу!
2012-12-01 21:22 Адміністратор:
Діліться враженнями :)
2012-12-01 21:23 Дмитрий Мачавариани:
Блииин мне стыдно за то что я нашкодил.... Эх.. пойду почитаю книгу что-ли. В следующий раз буду рушить стены конкурса html + css.
2012-12-01 21:27 Адміністратор:
До речі, усі вже можуть переглянути роботи інших учасників. Лишився один учасник, який вислав роботи на пошту, ми їх прикріпимо трохи пізніше.
2012-12-03 19:23 Іван Безсмертний:
До Дмитра Вітюка, "Іван Бессмертний Можливо не той файл завантажений. У файлі лише заданий масив без операцій сортування та виведення." я вже це зрозумів коли заіньчився час конкурсу, я просто не увазно прочив перше завдання і дума що там необхідно лише створити массив))) Немогли б ще трохи надати коментарів по мому коду?
2012-12-03 19:23 Владислав Урсул:
Пфффф. Чуствую у Никиты будут скручены пальцы
2012-12-03 19:28 Іван Безсмертний:
ну у другому завданні перевірка була "foreach($result as $key=>$value){ if($result[$key]==$array[$key]){ Random($array); } }" Тобто після перемішування перебирався вихідний массив і його значення зрівнювались з вхідним массивом, і якщо по в обох массивах по ключу було однакове значення то функція перемішування визивалась заново. У мене по крайній мірі усе робило(((( Може я щось завтикав(((
2012-12-03 20:36 Дмитро Вітюк:
Іване, наскільки я зрозумів, при перевірці у разі співпадіння функція запускається повторно, але результат виконання усе одно повертаеться від першої запущеної функції. Спробуйте оновити декілька разів, якщо у Вас буде працювати коректно, то подивимося далі. Якщо я неправий, Вам буде зараховано бал за завдання.
2012-12-03 20:46 Адміністратор:
У тій частині коду, який наведений, здається, є логічна помилка, а саме: зовнішній цикл у разі знаходження однакової пари не перезапускється для перевірки заново перемішаного масиву. Тобто, якщо у першому випадку однаковою була остання пара, а після повторного перемішування стала однаковою перша пара, тоді цикл перевірки успішно закінчиться, але не виявить некоректності повторного перемішування. Також необхідно перевірити чи передається масив $array у функцію Random по вказівнику, а чи по значенню.