PHP-завдання

5 Квітня 2009
Коли ви йдете на співбесіду на роботу програміста то бажано відчувати свій рівень, знати свою ціну. Тому можу запропонувати два реальних тестових завдання: ----------------------- Мета ----------------------- 1. задание на алгоритмическую смекалку. язык разработки - php|perl на выбор дан многомерный массив, например 1 2 2 3 4 5 5 6 1 2 2 8 9 9 1 1 1 3 4 5 6 7 7 6 необходимо на основании этого массива построить и вывести таблицу. При этом объединить ячейки (colspan,rowspan) с совпадающими цифрами. 2. Задания на знание mysql 1) Дана таблица, id - первичный ключ. По заданному id найти предыдущий и последующий элемент. 2) Дана таблица. CREATE TABLE `tbl` ( `id` int(10) unsigned NOT NULL auto_increment, `x` float unsigned NOT NULL default '0', `y` float unsigned NOT NULL default '0', PRIMARY KEY (`id`), ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_ukrainian_ci одним запросом по заданному id поменять значения x и y местами 3) дана таблица CREATE TABLE `tbl` ( `id` int(10) unsigned NOT NULL auto_increment, `x` varchar(100) NOT NULL default '0', PRIMARY KEY (`id`), ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_ukrainian_ci выбрать пары элементов, которые повторяются по полю x, при этом исключить повторения самого с собой, т.е. для значений 1-а,2-б,3-а должно выбрать пару 1-3 3. Задание на знание регулярных выражений 1) В строке выбрать последнее слово после запятой в предложении. Предложением считается фраза, заканчивающаяся на точку, если она не заканчивается на точку - это не предложение к примеру строка "я,мы,они,оно. пиво, водка, вино" должно вернуть "оно" 2) найти предпоследнее слово в предложении. "они" в примере 1 Максимальний срок: 1 день ----------------------- ----------------------- І завдання в Ідеус: ----------------------- Нужно разработать на базе code igniter следующий функционал: Админ часть: - Модуль "редактор новостей", в котором выводится табличка простенькая из новостей, выводятся: 1. заголовок новости - обрезание на каком-то символе чтоб не выводилось сильно много 2. дата новости 3. пейджер - разбивка скажем по 20 записей за раз 4. ссылки на удаление, редактирование - Каждая новость представляет собой: 1. Заголовок новости 2. Краткий текст новости (textarea) 3. Полный текст новости (визивиг) 4. Заливка фотки (создание тамбнейла скажем 100х100 пикселей (то есть кроп картинки в квадрат + ресайз до 100х100), ресайз заливаемой фотки по формуле "если больше 1000 пикселей по какой либо стороне то уменьшаем") 5. Связь новости с тегами - теги отсюда же добавляются в облако тегов, или если уже существуют в облаке - то просто линкуются 6. Дата новости (в админке - яваскриптовый выбор даты) - Возможность добавления новости - Возможность просмотра облака тегов (только просмотр, больше ничего не нужно отсюда) Фронт-енд часть: - Вывод новостей - полотно включает в себя дату, фотку, заголовок новости, краткий текст новости. при клике - попадаем на: - Детальная страница новости - дата, фотка, полный текст новости, теги, вывод "Также вам будет интересно:" и выводим все новости которые связаны по тагам (связь первого уровня) с данной новостью - выводить последние 5 новостей (по дате) Всё. всё по максимуму реализовать встроенными библиотеками, классами из code igniter. Результат предоставить в любом удобном виде - либо архив с кодом и дампом, либо в онлайн куда-то выложить и по запросу показать несколько страниц кода. Максимальний срок 5 днів. ----------------------- Ось такі завдання. Доречі нещодавно зняв скрінкаст про деякі теоритичні частини ЗендФрейворка, http://vimeo.com/3999454, але цей скрінкаст трохи не вийщов... Теорію важко розповідати, тому в наступних скрінкастах теорії буде мінімум, а все буду показувати на прикладі якогось проекта.
 
 
 
Роман Хоменко aka PresidentUA
mail/jabber: spirt40@gmail.com