Вопрос: Определение геокоординат. Дело на миллион. | Добавлено: 08.03.09 14:42 |
Автор вопроса: ![]() |
Доброго всем времени суток, проблема такова, что я пытаюсь устроиться на работу младшим программистом, прислали такое задание:
"Напишите программу, которая бы из адреса выводила координаты. [img]http://img243.imageshack.us/img243/4084/33950112.png[/img] -используйте Visual Basic .NET и Framework 1.1 -для определения координат используйте Google Maps -данные должны кэшироваться, т.е. результаты запросов должны локально сохраняться. При повторном запросе одного и того же адреса результат должен выводиться без Гугла локально. Обдумайте, как можно эффективно формировать кэш для обработки более 100.000 запросов" подскажите, достаточно ли будет бесплатной версии Visual Studio 2008 Express http://www.microsoft.com/germany/express/product/vi...asicexpress.aspx или нужно качать нормальную? я до этого писал програмки на VBA, ну в детстве на Бейсике конечно тоже. смогу я такое дня за 2 осилить? киньте ссылку, что почитать? Заранее премного благодарен. |
Ответы | Всего ответов: 34 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 08.03.09 18:04 |
не осилишь. по крайней мере чтобы программа была адекватна. если ниразу не имел дела с вбнет то шансов оочень мало. а если раньше программы не программировал серьезные более менее, то ваще ноль шансов. даже устроившись не выдержишь графика. я вот со своим опытом, полученным в c++, на вбнет такое не напишу, ибо никада его не юзал. нада знать, как использовать классы для работы с запросами, апи гугла почитать, итп. а так задачка простая достаточно. сохранять все не в массив, а хотяб в дерево, или хэш таблицу, не принципиально. нада прикинуть сколько времени займет сортировка 100 000 строк, можно ли использовать быстрый поиск. имхо тут комбинированная задачка. на знание классов дотнет, на основы алгоритмов, ну и широта познаний типа апи гугла, наверняка там еще xml используется. так что широкий спектр проверяют знаний. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 81849136 Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #2 | Добавлено: 08.03.09 19:12 |
спасибо за ответ
буду кончено пытаться, просто хоть какой-то шанс на работу устроится, да и в другой город переехать. определение координат нашел пример, разобраться бы еще в нем... http://blog.streitenberger.net/2008/02/google-maps-api-koordinaten-mit-vb.html а как посоветуешь сохранять? в базу данных или как? P.S. я даже не знаю, что такое дерево и хэш-таблица ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 08.03.09 20:17 |
бд слишком жирно имхо. там всего то одна таблица. нада просто правильно выбрать структуру данных, которая даст удовлетворительную скорость для данной задачи. напиши тестовую программу, в ней генерацию строк, 100 000 строк, и добавление в разные контейнеры. ну и поиск строк в этих контейнерах. посмотри на время выполнения, реши, что устроит.
P.S. ну и зачем тебе работать программистом, если ничего о программировании не знаешь? этому учатся долго, даже если возьмут по счастливому стечению обстоятельств, выкинут при первом же задании серьезном. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 08.03.09 20:55 |
Если нельзя, но очень хочется. то можно. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 81849136 Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #5 | Добавлено: 08.03.09 23:57 |
работать программистом потому, что на программиста я учился.
здесь вопрос не в том выкинут или не выкинут, а в том, что мне даже на собеседование ехать нет смысла, если я не с этим не справлюсь. Вакансия, как я уже сказал, Junior Software-Entwickler - набирают их там много и платить будут соответственно мало, но это мне вообще пока без разницы. в общем что касается определения координат - готово. Только как это в Visual Studio 2008 сохранить под Framework 1.1? |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #6 | Добавлено: 09.03.09 05:51 |
Только как это в Visual Studio 2008 сохранить под Framework 1.1?
никак.. это надо было делать в Visual Studio 2003 |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #7 | Добавлено: 09.03.09 20:24 |
-используйте Visual Basic .NET и Framework 1.1
Как минимум странно ставить требование использовать именно версию .NET Framework, вышедшую 6 лет назад. -для определения координат используйте Google Maps
Элементарные запросы к сервису гугла, или через обычный веб-интерфейс и парсинг HTML-ответа, или к гугловскому API, если он есть. -данные должны кэшироваться, т.е. результаты запросов должны локально сохраняться
База данных, XML, текстовый файл подскажите, достаточно ли будет бесплатной версии Visual Studio 2008 Express
Под 1.1 не было бесплатной версии Express смогу я такое дня за 2 осилить?
Не знаю, но вообще это пишется за 15 минут. не осилишь. по крайней мере чтобы программа была адекватна.
Что тут осилевать? Программа на 100 строк кода имхо тут комбинированная задачка. на знание классов дотнет, на основы алгоритмов, ну и широта познаний типа апи гугла, наверняка там еще xml используется. так что широкий спектр проверяют знаний.
Хорошо что до квантовой физики и псехологии не дошло. А то я бы пошел качать Фрейда. Задача элементарная, если предлагается в качестве тестового задания, то исключительно с целью отсеять людей, которые не знают чем кофеварка отличается от компьютера. бд слишком жирно имхо. там всего то одна таблица. нада просто правильно выбрать структуру данных, которая даст удовлетворительную скорость для данной задачи. напиши тестовую программу, в ней генерацию строк, 100 000 строк, и добавление в разные контейнеры. ну и поиск строк в этих контейнерах. посмотри на время выполнения, реши, что устроит.
На 100К записей тупо городить какие-то контейнеры, тестовые программы, структуры данных и т.п. Берется любая СУБД, Access/SQL Server/SQL Server CE. Вообще ИМХО поздно ты работу начал искать. Нужно было идти годик назад, тогда когда на работу брали всех кому хватало сил чтоб прийти на собеседование. Впрочем тебе не нужно расстраиваться. Очень часто плохий программисты на должности программистов получают зарплату больше чем хорошие программисты |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 81849136 Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #8 | Добавлено: 09.03.09 20:41 |
скачал вчера Visual Studio 2003, ставиться не захотела, даже на чистой вирутальной машине не пошла, не стал тратить время
как я уже написал, осталось только сделать сохранение в кэш я вот думаю не жирно ли будет сохранять в БД, если там всего одна таблица будет? т.е. это будет массив, в котором 2 элемента: Адрес(string скажем 100 символов) и координата вида -122.083739, 37.423021 мне тут советуют делать дерево или хеш-таблицу, стоит ли? |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #9 | Добавлено: 09.03.09 21:13 |
Да нет, разумеется, не жирно. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #10 | Добавлено: 09.03.09 21:15 |
Тебе просто нужно будет при каждом запуске программы считывать с диска 25-30 метров. А при завершении программы - сохранять их на диск. В этом, возможно, есть смысл.
А, возможно, и нет никакого смысла поэтому лучше воспользоваться готовым решением, а не изобретать велосипед, надежность которого под большим вопросом |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 81849136 Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #11 | Добавлено: 09.03.09 21:32 |
можно еще вопрос:
при создании таблицы, нужно адреса сортировать по алфавиту для ускорения поиска или нет? |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #12 | Добавлено: 09.03.09 21:50 |
Сортировать не нужно. И такой возможности даже нет.
Если хочешь ускорить поиск, делай индексы. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 81849136 Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #13 | Добавлено: 09.03.09 22:21 |
а это как?
-- Mit freundlichen Gr??en, Anatol Jabs. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 10.03.09 01:28 |
вот поэтому я и не люблю дотнет. каждая прога для хранения данных юзает по базе данных...может отменим курс теории алгоритмов, структуры данных, ведь у нас есть дотнет. |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #15 | Добавлено: 10.03.09 02:15 |
может отменим курс теории алгоритмов, структуры данных, ведь у нас есть дотнет.
Ra$cal, ты, безусловно, прав.. и сарказм твой тут вполне уместен, программист обязан знать теорию структур данных.. списки,стеки, очереди и т.д.. Но, тот ли это случай чтобы 100к записей хранить в текстовике (или бинарнике)? Это ведь не 1к и даже не 5к - это 100к!! Согласись - это уже довольно серьезные деньги.. Операции с винтом довольно тормознутые.. для ускорения держать все в памяти? Это тоже не выход.. она не резиновая. Так почему бы не возложить хранение и поиск на то, что для этого, собственно, и разрабатывалось.. на ядро базы данных!? Хотя.. опять таки.. смотря с какой стороны посмотреть.. детская и примитивная, по сути, софтина на несколько десятков строк кода будет требовать базы.. тоже не дело.. Вообщем, как обычно.. чем то придется жертвовать.. |
|