Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Тестовые задания при собеседовании

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

krosh87

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу прощения, может немного не по теме но все же, решил узнать ваши мнения. С программированием сталкивался много раз, не сказать что новичок, сайты тоже разрабатывал. Пришел недавно в одну веб контору на собеседование дали такие тестовые задания:
 
1. Создать компонент 1С-Битрикс, который бы позволял загружать картинку (пользователем), после чего картинка отображается и пользователь может указать на ней различные прямоугольные области (как выделение на фотках в  ВКонтакте). Пользователь может создать множество областей. Пользователь может редактировать ранее созданные области (менять местоположение, изменять размеры). Для каждой области пользователь может указать два текстовых поля: краткое описание и подробное описание. Для ввода описания использовать wysiwyg.
Примерный интерфейс: область с картинкой где пользователь указывает и настраивает область. Список созданных областей (при клике — переход к редактированию области).
Предлагаемая структура ИБ: Разделы — картинки, элементы в разделах — созданные области
Использовать jquery. Можно подключать любые плагины.
 
2. Имеются файлы csv (кладр), хранящие адреса по районам. Адреса в формате “9 запятых”. Необходимо создать скрипт на php, который выгружает из этих файлов список всех адресов в файл json древовидной структуры, объем файла должен быть как можно меньше. Кроме того, должна быть возможность выгрузить дома отдельного нас. пункта или улицы. Фильтры выбора должны подгружаться с помощью AJAX. Получившийся файл должен сохраняться на сервере, а пользователю должны предоставляться ссылка на скачивание. Файл csv с данными в приложении.
 
 
Помучался со вторым заданием и понял что без очень глубокого знания php и js его не выполнить. Хотел спросить ваше мнение это нормально давать такие тестовые задания на неделю? Либо я может просто тупой..

Всего записей: 5 | Зарегистр. 08-11-2008 | Отправлено: 00:55 17-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Хотел спросить ваше мнение это нормально давать такие тестовые задания на неделю?

если разбираетесь (а именно это и хотят проверить), то да.
 

Цитата:
 Адреса в формате “9 запятых”. Необходимо создать скрипт на php, который выгружает из этих файлов список всех адресов в файл json древовидной структуры, объем файла должен быть как можно меньше.  

а в чем сложность? парсите csv файл, далее организуете массив вида
массив => область => город => улица => дом ну и квартира или что там еще есть..
как создадите, то даже утруждаться не надо ручным созданием json - есть www.php.net/json_encode
 
то есть что то такое

Код:
  $addresses = array(
  'область 1' =>  
      array(
        'город 11' =>  
           array(
             'улица 111',
             'улица 112',
           ),
        'город 12' =>  
           array(
             'улица 121',
             'улица 122',
           )
      ),
  'область 2' =>  
      array(
        'город 21' =>  
           array(
             'улица 211',
             'улица 212',
           ),
        'город 22' =>  
           array(
             'улица 221',
             'улица 222',
           )
      )
  );
  echo json_encode($addresses);

 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:07 17-08-2013
krosh87

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня как раз возникла сложность как заполнить этот многомерный ассоциативный массив, файл я прочитал и смог только заполнить двумерный обычный массив двумя вложенными циклами по строкам и по столбацам соответственно. Везде в примерах в интернете дается готовый массив уже и перевод его в json.

Всего записей: 5 | Зарегистр. 08-11-2008 | Отправлено: 01:12 17-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
krosh87

Цитата:
файл я прочитал и смог только заполнить двумерный обычный массив двумя вложенными циклами по строкам и по столбацам соответственно

в чем сложность то? считали строку, разбили по частям.. взяли область, проверили, есть ли такая в массиве.  
если нет, создали элемент, если есть - пропустили..
взяли город.. проверили есть ли элемент для города в выбранной области.
если нет - создали, а если есть, то пропустили
и так далее..
 
можно через рекурсию, вообще меньше код получается.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:19 17-08-2013 | Исправлено: Cheery, 01:20 17-08-2013
krosh87

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня в ассоциативный массив идет перезапись элемента, грубо говоря есть 500 городов  
 
$j_mas = $j_mas + array('c_city' => array(array("city" => $field[$i][$j])));
 
должно создаваться много внутренних массивов
 
array("city" => $field[$i][$j])
 
а у меня идет перезаписывание этого массива

Всего записей: 5 | Зарегистр. 08-11-2008 | Отправлено: 01:22 17-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
krosh87

Цитата:
а у меня идет перезаписывание этого массива

потому что все неправильно делаете.. зачем складывать? можно даже merge не делать.
 
я же показал пример массива.
 
$region = 'регион';
$city = 'город';
$street = 'улица';
 
тогда  
$address[$region][$city][$street]
то есть больше, чем одна или две размерностей.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:26 17-08-2013
krosh87

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ок спасибо еще поразбираюсь

Всего записей: 5 | Зарегистр. 08-11-2008 | Отправлено: 01:28 17-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
krosh87
Вот вам простой пример
 

Код:
  $address = array();
  $rows = array(
    array('область 1', 'город 11', 'улица 111'),
    array('область 1', 'город 11', 'улица 112'),
    array('область 1', 'город 12', 'улица 121'),
    array('область 1', 'город 12', 'улица 122'),
    array('область 2', 'город 21', 'улица 211'),
    array('область 2', 'город 21', 'улица 212'),
    array('область 2', 'город 22', 'улица 221'),
    array('область 2', 'город 22', 'улица 222')
  );
   
  foreach($rows as $r)
    fill_array($address, $r);
   
  var_dump($address);
   
  function fill_array(&$arr, $vals) {
    $val = array_shift($vals);
    if (!isset($arr[$val]))
        $arr[$val] = array();
    if (!empty($vals))
        fill_array($arr[$val], $vals);    
  }


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:40 17-08-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Тестовые задания при собеседовании


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru