Форум сети D-lan

Техника => Программирование => Тема начата: Sasha от 10 Июля 2011, 11:23:54



Название: Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 11:23:54
По заявкам трудящихся проводим конкурс по программированию. В данной теме я буду выкладывать вопросы с указанием времени на их выполнение и максимального количества баллов, которые за него можно получить. Ответы принимаются в лс в формате: "Ответ #N". После объявления результатов по заданию ответы не принимаются. Разрешено присылать другой вариант решения до объявления результатов. Предыдущий ответ в таком случае проверяться не будут. После подведения итогов полученные баллы и наилучший на мой взгляд ответ будут выложены в данной теме.
На количество баллов присуждаемых за ответ влияет:
- Правильность решения
- Оптимальность выбранного алгоритма
На количество баллов присуждаемых за ответ НЕ влияет:
- Выбор языка реализации
- "Красота" кода
- Придерживание основных парадигм программирования
Однако стоит учесть, что структурированный, понятный код с наличием достаточных комментариев уменьшает вероятность моей ошибки при проверке, а соответственно и необъективной оценки. С этой же целью можно присылать мне *.exe файл. Дополнительных баллов за это даваться не будет.
Обсуждения и аппеляции разрешены.
Начнем мы с более простых вопросов, а дальше видно будет.

-----------------------------------------------------------------------
Задание #1:
Proydoha - 5 баллов (http://10.1.12.237/Show_Source.php?test_area/Contest_1.php | http://10.1.12.237/test_area/Contest_1.php)
Jeka - 3 балла (http://upload.com.ua/get/902729460/)
-----------------------------------------------------------------------

##################################################
Результаты после 1 заданий:
Proydoha - 5 баллов
Jeka - 3 балла


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 12:05:43
Задание #1
Время выполения 3 дня
Количество баллов: 5

Дано 4 вида скобок: {}, [], <>, (). Дана входная строка с комбинацией открывающих и закрывающих скобок. Необходимо проверить данную строку на правильность (закрывающая скобка должна соответствовать открывающей, количество открывающих и закрывающих скобок должны быть одинаковыми).
Пример:
{[]<()>} - правильная
({[]} - неправильная
({<}>) - неправильная


Название: Re:Конкурс. Программирование.
Отправлено: Catcatcat от 10 Июля 2011, 17:04:37
это для меня круто (работа со строками.. superschnute), для меня надо как детском саду, например, вывести на экран "привет мир" big162
потом 1+1=2 popel


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 19:45:56
Я понимаю что есть вещи за которые браться рано, но и учиться на том что и так знаешь нет смысла, учатся на том чего не умеешь, садишься разбираешься, пытаешься, анализируешь ошибки, набираешь опыт.
В таком случае Пройдоха наверное безоговорочный фаворит. Что делаем с конкурсом? Я могу давать очень простые задания, можем подождать Диму (кстати где он?), можем перейти на форму без привязки к языкам, где вы будете просто присылать мне алгоритм решения и тогда условия выровняются (программу многие, в том числе и я тоже считают алгоритмом, так что будет выбор, кому легче написать сразу программу, а кому алгоритм.


Название: Re:Конкурс. Программирование.
Отправлено: user4923 от 10 Июля 2011, 20:05:00
это для меня круто (работа со строками.. superschnute), для меня надо как детском саду, например, вывести на экран "привет мир" big162
потом 1+1=2 popel
А что тогда мне говорить? Я вообще в этом деле самый полный ноль.
Но я думаю,что конкурс нужен. Только надо как то попроще. (К примеру надо хотя-бы варианты с правильными ответами, или ссылку где по заданому вопросу можно хоть какую-то инфу накопать).


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 20:20:26
Ну ссылок хватает, а варианты не катят потому что единственный язык, который знают оба участника это Си, а значит вопросы должны быть на него расчитаны, в итоге можно будет просто набрать программу и посмореть какой результат она выдаст. Но я подумаю что можно сделать. Пока вопрос остается, за присланый правильный алгоритм без реализации я тоже дам какие-то баллы.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 20:55:47
Тоже немного увлекаюсь программированием, так, для себя...
Предлагаю немного видоизменить конкурс: не отвечать на вопросы, а то как на экзамене(до сих слово экзамен вызывает оскомину)), а например задание: сделать простую рабочую программку, выполняющую определенную задачу, которую также могут заказывать сами форумчане.
И будет двойная польза, и конкурс, и наш файл архив будет пополнятся пусть для начала простыми, но полезными для кого-то программками...
Спасибо всем кто выслушал... ))


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 21:23:11
Я думаю врядли кому-то нужна программка "привет мир")  Пришли мне в лс список языков с которыми знаком.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 21:31:35
Я думаю врядли кому-то нужна программка "привет мир")  Пришли мне в лс список языков с которыми знаком.
Ну для начала может кому и интересно будет и такая программка... ))
А если еще и с объяснениями, так вообще получится еще и учебник по программированию для начинающих и желающих... ))
А потом можно пойти дальше, и потихоньку от простого к сложному...
Просто хотелось совместить приятное с полезным, и конкурс и готовый продукт несложный, не думаю что у нас на форуме много программистов, а те кто уже что-то умеет, то наверняка занят для того чтобы просто отвечать на вопросы... и в результате конкурс вообще затихнет... имхо...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 21:33:10
Пиши в тему программирование свои пожелания, а я помогу)


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 21:35:26
Пожелания по поводу чего?
Просто увидел насчет конкурса и вставил свои пять копеек... ))
Вот кстати насчет первого задания, раз все равно нужен код программы, так сразу и программу сделать которая проверяет такие скобки... вот собственно о чем я... и наверно можно и без кода, только б прога работала...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 21:38:13
Не, инициатива это хорошо, лови +, но перспективы у твоего предложения я не вижу.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 21:41:13
Не, инициатива это хорошо, лови +, но перспективы у твоего предложения я не вижу.
Думаете что просто вопросы по программированию имеют больше перспектив?
Предлагаю сделать маленький опрос, что интересно людям, просто вопросы или программы, которые можно использовать, как говорится, в быту... ))


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 21:48:54
Ту тэлл зэ трус, мои познания в Си ограничиваются одной программой: вот здесь я задавал вопрос о том как её написать (http://forum.bestirc.ru/index.php?showtopic=1936).


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 21:51:43
Кодить сейчас даже дети умеют. Вон малая из македонии в 9 лет получила профессионального сисадмина майкрософт. Чтобы закодить 2+1 думать не надо, нужно только знать синтаксис языка, это не программирование. Я хотел подобрать задачи именно на логику мышления. Я думаю не сложно описать словами как должна работать программа решающая эту задачу, можно просто описать как бы ты сам проверял такие строки и это будет ответ. Для этого не нужно иметь знаний языка и навыков программирования, нужно немого подумать + иметь понятие о массивах, и что со строками рабтают так же как и с массивами. Данный вопрос часто задают на собеседованиях программистам, он не сложный, просто проверяет как соискатель удет мыслить. Мне вчера знакомая задала задачу с собеседования я ломал над ней голову 10 минут, хотя думаю человек с хорошим логическим мышлением и абсолютно без знаний программирования решил бы ее быстро.
Это мое мнение, но вы участники - ваше слово последние.


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 21:55:51
Это я к
Цитировать
а варианты не катят потому что единственный язык, который знают оба участника это Си


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 21:59:42
Ту тэлл зэ трус, мои познания в Си ограничиваются одной программой: вот здесь я задавал вопрос о том как её написать (http://forum.bestirc.ru/index.php?showtopic=1936).
Тему до конца я на том форуме не дочитал, но скажу что я не знаю как такую программу написать. Но опять же на уровне железа ты там ничего не напишешь, значит нужно просто знать готовые функции заложенные разработчиками (это называется API), и вызвать их. Но опять же нагуглить какие-то функции и вызвать их это еще не умение программировать, это кодирование. У меня многие одногруппники учили кучу языков, кучу технологий, они могут делать программы с мегапафосным интерфейсом использующие чужой код, но если им дать отсортировать массив (этому в школе учат, но если говорить объективно это должен уметь нормальный студент-программист на 3 неделе обучения), они этого сделать не смогут. Вопрос, можно ли назвать их программистами?
В данном вопросе все таки прошу поверить мне на слово, все таки пускай я еще не трушный программист, но наиболее компетентен в этом, так как уже 4 года в этом варюсь в универе и год на работе.


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 22:03:26
Щас я на пэхэпэ монстра рожу.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 22:10:32
Я вот в новом конкурсе по вождению тоже чувствую себя 0, но пытаюсь как-то с помощью логики отсеять лишние варианты и выбрать 1. Иногда даже получается.
В общем я по прежнему жду пожеланий от всех учасников.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 22:14:51
Я просто к чему, что у нас не Македония, тем более на нашем форуме, и как мне кажется количество участников в этом конкурсе будет стремится к нулю если будут просто вопросы, а готовые программки могли бы привлечь если не участников то хотя бы заинтересованных зрителей и как следствие в будущем увеличение количества участников конкурса... ))


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 22:24:50
Да, и может для разогрева пару заданий попроще для начала, не со строк начиная... ))
Глядишь народ разойдется... ))


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 22:29:31

Пример:
{[]<()>} - правильная
({[]} - неправильная
({<}>) - неправильная
Вот тут немного не понял, а разве в третьем варианте количество открывающих скобок не соответствует количеству закрывающих?


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 22:32:30
Вот тут немного не понял, а разве в третьем варианте количество открывающих скобок не соответствует количеству закрывающих?

Они вложены друг в друга неправильно.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 22:39:22
Они вложены друг в друга неправильно.
А в задании не указано насчет правильности вложенности скобок... ))
Или это должно само собой подразумеваться?


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 22:43:28
Да, вроде, указано.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 22:45:15
закрывающая скобка должна соответствовать открывающей
В этом собственно вся соль, иначе бы программа вобще в строчки 4 решалась, а сейчас она решается строчек в 5.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 22:47:46
Да, и может для разогрева пару заданий попроще для начала, не со строк начиная... ))
Глядишь народ разойдется... ))
Мне тяжело будет составить задания и тяжело оценивать если все ответы будут правильные, но если народ не против, я могу дать тебе провести такой конкурс, а за это от меня скидка на интернет как от модератора темы.


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 22:51:04
Цитировать
в строчки 4 решалась, а сейчас она решается строчек в 5

Я убогий, приближаюсь к сотне : )


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 22:54:33
Мне тяжело будет составить задания и тяжело оценивать если все ответы будут правильные, но если народ не против, я могу дать тебе провести такой конкурс, а за это от меня скидка на интернет как от модератора темы.
Не понял первой строки?
Если Вы организовываете конкурс, что значит Вам тяжело будет составить задания? Или я не понял смысл данного высказывания?
И почему тяжело оценивать правильные ответы? ))
Кто первый ответил тот и победун.... ))
Боюсь что я недостаточно компетентен в программировании чтобы давать задания... )) а скидку конечно хочется... ))


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 22:56:55
Цитировать
в строчки 4 решалась, а сейчас она решается строчек в 5

Я убогий, приближаюсь к сотне : )
Просто в конце напишите: (кол-во.Строк/20) и получится примерно такое же количество... :))


Название: Re:Конкурс. Программирование.
Отправлено: user4923 от 10 Июля 2011, 23:09:34
Уважаемые, или это я такой тупой, или задание слишком сложное... popel

Я вообще не понял ничего. Прочитал всю тему раз 5. Какие-то строки, закрывающие знаки, порядок их рассположения... Я никога неслышал, невидел и не нюхал ничего подобного. Я только несколько месяцев винду перебивать научился. А тут уже требуют програмы сочинять... superschnute

Дайте хоть ссылку, где можно почитать, что-бы понять о чем идет речь.


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 23:11:23
Уважаемые, или это я такой тупой, или задание слишком сложное... popel

Мои чувства при чтении автоконкурсов : )

Затрудняюсь выдать ссылку.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 23:11:28
У меня на фтп. Не понял скорее всего, потму что программированием не занимался.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 23:11:41
Один из вариантов реализации на делфи, работа со строками...
Если конечно Вы вообще хоть что-то программили в жизни... ))
http://www.delphi.int.ru/articles/118/
Извиняюсь если влез не по существу...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 10 Июля 2011, 23:11:45
Уважаемые, или это я такой тупой, или задание слишком сложное... popel

Мои чувства при чтении автоконкурсов : )

Затрудняюсь выдать ссылку.
+1


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 10 Июля 2011, 23:19:07
Такое чувство что это задание выиграет сам организатор... ))
Тогда конечно было бы интересно взглянуть на реализацию этого задания...


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 10 Июля 2011, 23:23:40
Создал монстра и не могу его победить. То вложенные одна в другую распознаются как правильный вариант, а стоящие пары рядом - нет. То наоборот.

Где же я налажал?
___
Нашел. Каждый раз, когда делаешь подобную ошибку, думаешь:"Тупее уже ошибиться нельзя". Но каждый следующий раз убеждает - можно, ещё и как!
___
Щас закомментирую и пришлю решение.


Название: Re:Конкурс. Программирование.
Отправлено: user4923 от 11 Июля 2011, 00:03:15
Вот, читал одну книгу о програмировании и там была эта каринка...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 11 Июля 2011, 00:31:25
Есть вот еще, как выучить язык Си за один день
(http://vseocomputere.ru/uploads/posts/2011-06/thumbs/1307168275_391cc8cece71.jpg)
Помню на работе был случай, когда тестировщий, менеджер проекта и программист, написавший программу не могли установить эту же программу в течении получаса)


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 11 Июля 2011, 00:32:14
Мне пришел первый вариант решения! Кул!


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 11 Июля 2011, 18:39:04
Мне пришел первый вариант решения! Кул!
Наконец-то...
Решение в студию, а то уже голова болит... ))


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 11 Июля 2011, 18:53:36
Наконец-то...
Решение в студию, а то уже голова болит... ))

Тебя ждёт ещё полтора дня мучений : )


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 11 Июля 2011, 19:54:03
Ну плиз, скинь в личку, я уже признал тебя победителем!!! ))
Просто интересно, а то не дотерплю... ))


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 12 Июля 2011, 23:13:58
ой и я хочу попробывать))) а на дельфи мона?)) big001.gif


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 12 Июля 2011, 23:21:02
Там на или не?) На всем можно. И список языков, которыми владеешь мне в лс.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 12 Июля 2011, 23:23:32
уже исправил)) НА. как тут 5 строчек...? мне что-то более громоздкое тут мерещется)))


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 12 Июля 2011, 23:25:34
5 строчек на каждый вид скобок) та то я образно про 5 сказал,  громоздкость кода на баллы не влияет.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 12 Июля 2011, 23:26:35
оооо)) так я завтра на дельфи вам выдам))) шо я зря весь год помогал лабы делать друзьям))) тренеровки для хвоста


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 09:10:55
если кому-то еще интересно, задача решена. время потраченное 10 мин. куда высылать? big001.gif


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 13:34:36
В приват Саше.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 14:48:45
Cat, мне от тебя каких-то попыток ждать, или вечером подводить итоги первого задания?


Название: Re:Конкурс. Программирование.
Отправлено: Catcatcat от 13 Июля 2011, 14:56:54
меня не жди, я еще слаб в таком деле


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 15:35:39
Cat, мне от тебя каких-то попыток ждать, или вечером подводить итоги первого задания?
Пожалуйста, подводи скорее. я сегодня вечером на море уезжаю не терпится узнать, как ты оценил мое решение?)))


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 15:37:52
Тогда результаты за первое задание следующие:
Proydoha - 5 баллов
Jeka - 3 балла
Сводные результаты по всем заданиям буду обновлять на первой странице темы.
Немного прокомментирую решения участников. Оба они выбрали единственно правильный алгоритм решения (который я опишу позже) и выбрали очень похожую его реализацию, однако немного недоработал/недотестировал свою программу Jeka(видимо все же 10 минут оказалось недостаточно))), в некоторых ситуациях она выдает неверные результаты и даже выбрасывает исключения. У Proydoha же на мой взгляд все работает идеально.
Решение от Proydoha
http://10.1.12.237/Show_Source.php?test_area/Contest_1.php - исходники
http://10.1.12.237/test_area/Contest_1.php - для тестирования
Код выглядит пугающим из-за специфический для PHP операций, знаю что Proydoha вносил в код какие-то визуальные изменения, но у меня не было возможности их посмотреть, учитывая что его предыдущий вариант и так заслуживал максимальную оценку, а красота кода не оценивается оставляю как есть) Надеюсь ошибок в новой версии не появилось)

Немного позже выложу свои комментарии по поводу самого задания.
Все участники обсуждения, не приславшие свои варианты получают + в репутацию.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 15:40:03
плиз на каких примерах исключения и неверные результаты?


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 15:43:47
плиз на каких примерах исключения и неверные результаты?
просто я тестировал и просто скобки и вложенные... все работало


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 15:50:02
У меня на работе билдер не установлен. Поганяй неправильные входные данные: закрывающих скобок больше чем открывающих, открывающих больше чем закрывающих, закрывающая не соответствует закрывающей.
И еще выкладывай плиз на более вменяемый хостин. К примеру rghost.ru


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 15:50:21
уже нашел в чем был бок. 1 строчка  big001.gif big13 menno


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 15:53:06
У Proydoha же на мой взгляд все работает идеально.

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

знаю что Proydoha вносил в код какие-то визуальные изменения, но у меня не было возможности их посмотреть

Предидущий вариант:
http://10.1.12.237/Show_Source.php?test_area/Contest_1a.php (http://10.1.12.237/Show_Source.php?test_area/Contest_1a.php) - Исходник
http://10.1.12.237/test_area/Contest_1a.php (http://10.1.12.237/test_area/Contest_1a.php) - Результат

Надеюсь ошибок в новой версии не появилось)

Тоже на это надеюсь : )


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 15:55:36
пройдоха ты шариш в пхп ООП? я пхп учил в этом году надо было лабу написать на скриптовом языке)) но я до ООП так и не добралсьо. чтото я его боюсь как волка) эти классы наследования методы ))


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 15:55:58
оу стесняюсь спросить) что нам дают баллы за конкурсы?)))


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 15:56:28
Если я правильно понял ты нашел когда эксепшн валился, но там еще были неправильные входные данные. Там кажется ситуация наоборот, когда открывающихся скобок больше, я вроде утром в коде понял почему так, но могу ошибиться, не планировал результаты на работе подводить.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 15:58:08
Я сегодня утром обнаружил, что если отправлять вперемешку со скобками русские буквы, то они возвращаются в неправильной кодировке : )
Ну я это как и бока с передачей по URL не считал.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 15:58:44
оу стесняюсь спросить) что нам дают баллы за конкурсы?)))
Возможность победить!!! Разве этого мало?)
Ну а вобще еще можно и скидкой на интернет обзавестись.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 16:00:22
скидка это хорошо)) победишь тут с такими знавцями пе ха пе))) шутю конечно)) ладно я пошел собирать сумку! На моря на моря!!! Всем удачи!! и до встречи!!! Саше риспект за тему b154


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 16:01:14
пройдоха ты шариш в пхп ООП? я пхп учил в этом году надо было лабу написать на скриптовом языке)) но я до ООП так и не добралсьо. чтото я его боюсь как волка) эти классы наследования методы ))

Я всесторонне безграмотный. У меня в электронном варианте есть книжка "PHP5 в подлиннике", я медитирую над ней до тех пор пока мне не привидится решение поставленной задачи. С ООП в пхп дел раньше не имел.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 16:04:44
что-то ты слишком самокритичен для победителя))) а я так интересно книжку по ПХП читал! загнал ее в телефон и за три дня пока ездил то в универ то на тренеровку в маршрутках, троллейбусах, остановках прочитал)) ну основное - переменные, константы, массивы, строки, ф-ции, работа с файлами\папками (задание по лабе было написать прогу для переименнования файлов в папке)
пхп классный! он мне напоминает смесь СИ и паскаля! там все как от так удобно)) синтаксис СИ как ностальгия по первому курсу)) понравилось что индекс в массивах могут быть не только целыми числами но и целыми строками))


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 16:05:20
У меня вопрос к участникам и потенциальным участникам.
По вашим заявкам следующий вопрос хотел сделать попроще, дать на него меньше времени и меньше баллов. Но так как человек внесший хоть какую-то интригу в конкурс, а именно Jeka, уезжает на море, проводить конкурс без него не лучшая идея. По сему какие варианты я вижу:
- Выдать вопрос полегче, но дать на него много времени
- Выдать тяжелый вопрос на длительное время
- Приостановить конкурс (а там может и Дима вернется)
- Выдать несколько заданий сразу и много времени
- Придумать сейчас легкий вопрос на скорую Jeka решит его за 10 минут, а когда вернется его уже будет ждать следующий и еще 10 минут времени)


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 16:06:30
ну а вдруг я не решу за 10 минут!! и опозорюсь на весь форум)))


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 16:07:14
У меня вопрос к участникам и потенциальным участникам.
По вашим заявкам следующий вопрос хотел сделать попроще, дать на него меньше времени и меньше баллов. Но так как человек внесший хоть какую-то интригу в конкурс, а именно Jeka, уезжает на море, проводить конкурс без него не лучшая идея. По сему какие варианты я вижу:
- Выдать вопрос полегче, но дать на него много времени
- Выдать тяжелый вопрос на длительное время
- Приостановить конкурс (а там может и Дима вернется)
- Выдать несколько заданий сразу и много времени
- Придумать сейчас легкий вопрос на скорую Jeka решит его за 10 минут, а когда вернется его уже будет ждать следующий и еще 10 минут времени)
решайте, hihi господа))


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 16:08:48
Цитировать
У меня вопрос к участникам и потенциальным участникам.

Я за приостанавливание.


Плюс, ещё предложение безотносительно к поставленному вопросу: может видоизменять первое сообщение в теме походу течения конкурса?

<Правила и условия>
---
<Первое задание>
<Результаты по первому заданию>
<Ссылки на варианты решений>
---
<Второе задание>
...

И так далее?


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 16:18:56
Задание #2
Время выполения 5 дней
Количество баллов: 2

Закодить такую вот формулу:
(http://s46.radikal.ru/i112/1107/b2/f2685ae4f84c.png) (http://www.radikal.ru)
Так как зрительно будет очень тяжело проверять правильность решения, обязательным условием этого задания является выполнимый файл (или веб-страница).


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 16:23:27
У меня вопрос к участникам и потенциальным участникам.
По вашим заявкам следующий вопрос хотел сделать попроще, дать на него меньше времени и меньше баллов. Но так как человек внесший хоть какую-то интригу в конкурс, а именно Jeka, уезжает на море, проводить конкурс без него не лучшая идея. По сему какие варианты я вижу:
- Выдать вопрос полегче, но дать на него много времени
- Выдать тяжелый вопрос на длительное время
- Приостановить конкурс (а там может и Дима вернется)
- Выдать несколько заданий сразу и много времени
- Придумать сейчас легкий вопрос на скорую Jeka решит его за 10 минут, а когда вернется его уже будет ждать следующий и еще 10 минут времени)
Всем привет!
Если ждать Jeka, то конкурс будет исключительно для двоих... ))
Давай попроще заданий, можно много сразу, чтобы были варианты, если не получается один, то хотя бы попробовать другой...
Так что мое мнение потихоньку продолжать... может еще найдутся любители, и не только, попрограммить...


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 16:43:07
Закодить такую вот формулу

Предвижу подвохи. Как в школе.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 16:47:13
Только что на работе в ворде накидал случайным образом эту формулу, чтобы дать возможность Jeka успеть сделать это задание.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 16:49:36
какого типа икс? целые? икс вводится пользователем ? икс может быть отрицательным? учитывать ОДЗ как исключительную ситуацию?


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 17:08:20
а есть смысл отнимать от целого 0,5? )
пользователем
может быть любым
все учитывать

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


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 17:15:52
ну видишь какой я простодушый big001.gif


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 17:17:41
скобка в знаменателе в степени икс куб или я недобачаю? или там умножить на икс куб?


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 17:22:48
В степени икс куб. И первый корень 3 степени, там тройка завышена.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 17:24:14
ясно. пытаюсь


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 17:31:01
Цитировать
И первый корень 3 степени, там тройка завышена.

Чёрт, я думал это ошибка наборщика : )
___
И, походу, забыл школьную математику.
___
Я провёл опрос среди знакомых и мы решили считать деление числа на ноль делением числа на очень, очень, очень маленькое число. И получать бесконечность.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 17:59:47
а что про выполняемый файл в связи с трудностью вычислений там сказано было?


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 18:37:17
А можно для сравнения правильности решения привести вариант ответа при определенном значении х, чтобы проверить свою программку... ))


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 18:49:21
А можно для сравнения правильности решения привести вариант ответа при определенном значении х, чтобы проверить свою программку... ))
При 0.5 будет ноль : )


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 18:49:54
а что про выполняемый файл в связи с трудностью вычислений там сказано было?
Там было сказано с тебя *.exe )
А можно для сравнения правильности решения привести вариант ответа при определенном значении х, чтобы проверить свою программку... ))
я пока что сам не реализовывал, но проверочных значений я давать не буду.
Я провёл опрос среди знакомых и мы решили считать деление числа на ноль делением числа на очень, очень, очень маленькое число. И получать бесконечность.
в идеале такие выражения берут в try...catch блок, но для меня достаточно простого if, главное чтобы программа не вываливалась и давала точные результаты.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 18:54:05
принимается ли результат в експоненциальной форме? в дельфи известны проблемы округления! а сегодня оно выпендривается как никогда раньше


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 18:55:35
да


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 18:56:32
Цитировать
И первый корень 3 степени, там тройка завышена.

Чёрт, я думал это ошибка наборщика : )
___
И, походу, забыл школьную математику.
___
Я провёл опрос среди знакомых и мы решили считать деление числа на ноль делением числа на очень, очень, очень маленькое число. И получать бесконечность.
ООО НЕТ НЕТ НЕТ!!! ноль абсолютный!!! на него делить незззяяя!!! никаких бмп! у нас не теория границ))) big13


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 19:07:45
Цитировать
ООО НЕТ НЕТ НЕТ!!! ноль абсолютный!!! на него делить незззяяя!!! никаких бмп! у нас не теория границ)))

Цитировать
в идеале такие выражения берут в try...catch блок, но для меня достаточно простого if, главное чтобы программа не вываливалась и давала точные результаты.

Так можно на ноль делить или нельзя? : )


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 19:09:26
ггг))) я б сказал можно если б знал что Саша скажет что нельзя и я победю\побежу))) а вообще то нельзя на него делить


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 19:09:57
ггг))) я б сказал можно если б знал что Саша скажет что нельзя и я победю\побежу))) а вообще то нельзя на него делить
в смысле на ноль а не на Сашу делить))


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 19:11:03
Цитировать
Так можно на ноль делить или нельзя? : )
нельзя


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 19:12:31
решение отправил) я уежаю через полчаса


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 19:23:02
Я обнаружил ещё одну интересную штуку. Если в качестве х ввести число больше, чем 6.74, то php будет считать, что в знаменателе бесконечность. Ну, там число действительно здоровенное ~1.46 * 10^308.


Название: Re:Конкурс. Программирование.
Отправлено: Jeka от 13 Июля 2011, 19:38:32
да комп не берет при икс 7 к примеру


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 19:50:50
В Маткаде бесконечность это 10^307.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 19:53:37
Прокомментирую первое задание.
Принцип действий такой: просматриваем строку по одному символу слева-направо. Если встречаем открывающуюся скобку запоминаем ее, если встречаем закрывающую скобку проверяем ее на соответствие последней запомненной открывающей и удаляем открывающую. Если скобки не соответствуют - ошибка. Если нет запомненных открывающих скобок - ошибка. Если мы дошли до конца строки и еще остались запомненные открывающие - ошибка.
Теперь перейдем к реализации. Буду использовать синтаксис языка Си. Для хранения открывающих скобок лучше всего использовать стек. Стек - это такая структура данных (структура или класс, см. ООП), для которой определены следующие операции:
PUSH - занести 1 элемент в стек
POP - извлечь 1 элемент из стека
При чем работает стек по принципу LIFO (last in first out), тоесть последний помещенный в стек элемент будет извлечен первым. Образно это можно представить в виде ящика с книгами, где последняя положенная в ящик книга будет извлечена первой, а чтобы добраться до книги, которая лежит на самом дне (первая попала в коробку) необходимо сначала извлечь все книги, которые лежат над ней. Стек так же можно реализовать в виде массива с счетчиком хранящихся в нем элементов. Proydoha и Jeka так и поступили. Посколько не все участники знакомы с ООП я тоже буду рассматривать такой вариант, хотя это усложнит алгоритм.
И так нужно объявить символьный массив и счетчик элементов с начальным значением -1, так как элементы в массиве нумеруются с 0, а в начале массив пуст.
В результате, когда мы встречаем открывающую скобку мы заносим ее в позицию mas[i+1] и увеличиваем значение счетчика на 1.
Когда встречаем закрывающую скобку сравниваем ее с последней запомненой открывающей, то есть, mas, и уменьшаем счетчик на 1, то есть перемещаем вершину стека (последний запомненный элемент) вниз на 1.
Если мы встретили закрывающую скобку, а счетчик равен -1, значит у нас нет соответствующей ей открывающей.
Если строка закончилась, а счетчик не равен -1, значит в стеке остались элементы, а значит количество открывающих скобой больше, чем количество закрывающих.
Не рассмотренной осталась часть сравнения скобок на соответствие закрывающих открывающим. Для этого воспользуемся оператором switch. Это аналог оператора if, который отличается тем, что имеет не 2 ветки, а более. Синтаксис его таков:
Код:
switch(выражение)
{
   case <значение 1>:
   {
      <операторы 1>
   }
   ...
   case <значение n>:
   {
      <операторы n>
   }
   default://попадем сюда, если не одно из значений не подходит
   {
      <операторы d>
   }
}
Теоретически, оператор switсh можно заменить оператором if таким образом:
Код:
if(выражение == значение 1)
{
   <операторы 1>
}
else
{
   ...
   if(выражение == значение 2)
   {
      <операторы n>
   }
   else
   {
       <операторы d>
   }

Допустим с - просматриваемый символ строки. Получим следующий код:
Код:
switch(c)
{
   case '(':
   {
      // заносим в стек
   }
   case '<':
   {
      // заносим в стек  
   }
   case '{':
   {
      // заносим в стек
   }
   case ')':
   {
      // последний элемент в стеке должен быть (
   }
   case '>':
   {
      // последний элемент в стеке должен быть <
   }
   case '}':
   {
      // последний элемент в стеке должен быть {
   }
}

Ну вот в принципе как-то так. А если что не так - извините, я старался!


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 20:01:51
Я обнаружил ещё одну интересную штуку. Если в качестве х ввести число больше, чем 6.74, то php будет считать, что в знаменателе бесконечность. Ну, там число действительно здоровенное ~1.46 * 10^308.
да комп не берет при икс 7 к примеру
Да, это мой бок, убираем x из последней степени. Задание я сейчас перезалью. В ответе Jeka исправлю сам. Приношу свои извинения, спешил написать задание, и не продумал эту ситуацию. Кстати кто скажет мне почему так?)


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 20:03:28
Кстати кто скажет мне почему так?)

Потому что флоат не резиновый.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 20:04:32
Обновил задание


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 20:06:20
Мда, видать я что-то накосячил в самом уравнении, у меня и больше 7 получается, хотя при значении х=0,5 равно 0... ((
Эх, а внешне так вроде ниче, симпатично выглядит...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 20:11:00
Кстати кто скажет мне почему так?)

Потому что флоат не резиновый.
К примеру в Си это происходит так. Допустим у нас есть тип, который принимает значения от -10 до 9. То если мы попытаемся занести в такой тип 10, то произойдет так называемое сворачивание, и в итоге в переменную попадет -10. Тоесть, мы как бы пошли по кругу. Если бы попытались занести 11, получилось бы -9, 12 будет -8 и так далее. Однако если мы пометим такой тип как unsigned, он сможет принять значения уже от 0 до 19. Современные языки программирования такие как PHP и C# научились по своему обрабатывать такие ситуации во избежания ошибок. Думаю то что в итоге получилась бесконечность и есть реакция языка на такую ситуацию.


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 20:21:11
то произойдет так называемое сворачивание

Я в курсе. В детстве мне оно нанесло душевную травму : ) Когда я играл в UFO, то при переполнении байтовой переменной, отвечающей за количество едениц хода бойца, он становился, считай, инвалидом.


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 20:25:14
то произойдет так называемое сворачивание
Я в курсе.
Я для всех)


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 20:35:25
А как выложить екзешник? Для просмотра так сказать...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 20:38:13
rghost.ru и ссылку мне в личку. исходники тоже.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 20:41:21
rghost.ru и ссылку мне в личку. исходники тоже.
А вроде говорили что код не имеет значения... а то мне стыдно такой код показывать... ))
Да, и rghost.ru не доступен сейчас, нет возможности зарегиться...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 13 Июля 2011, 20:44:55
Ну у тебя 5 дней есть.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 20:55:27
Отправил в личку ссылку на экзешник...
Добавил файл с исходником...


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 13 Июля 2011, 21:09:07
Я, кажется, тоже справился. Пока решал задачку собрал целый научный консилиум.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 21:15:05
Я, кажется, тоже справился. Пока решал задачку собрал целый научный консилиум.
Везет... а мне пришлось только инет шерстить...


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 13 Июля 2011, 22:15:54
Может пока добавить еще несколько несложных заданий, а то за 5 дней ожидания растеряешь навыки... ))


Название: Re:Конкурс. Программирование.
Отправлено: user4923 от 13 Июля 2011, 23:46:44
Капец!!! Ну и задания...  superschnute Я рад поучаствовать в этом конкурсе, но признаюсь честно, что у меня кишка тонка на такие вещи... popel


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 14 Июля 2011, 00:55:30
Капец!!! Ну и задания...  superschnute Я рад поучаствовать в этом конкурсе, но признаюсь честно, что у меня кишка тонка на такие вещи... popel

Да ну, второе, если не считать исключений, лёгкое совсем. Я больше тупил из-за того, что школьный курс математики забыл, чем над программой.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 14 Июля 2011, 16:56:39
Капец!!! Ну и задания...  superschnute Я рад поучаствовать в этом конкурсе, но признаюсь честно, что у меня кишка тонка на такие вещи... popel
Если конечно никогда не программировать, то практически любое задание будет тяжелым...
Вот просто задание, написать "Здравствуй мир!"... потом 20 раз подряд написать, потом через строчку, потом разным цветом... big162


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 14 Июля 2011, 18:14:54
Капец!!! Ну и задания...  superschnute Я рад поучаствовать в этом конкурсе, но признаюсь честно, что у меня кишка тонка на такие вещи... popel
Если конечно никогда не программировать, то практически любое задание будет тяжелым...
Вот просто задание, написать "Здравствуй мир!"... потом 20 раз подряд написать, потом через строчку, потом разным цветом... big162
Помню нас препод в универе гонял по циклам на таких заданиях: написать используя вложенные циклы и символ '*' какую нибудь букву.
Ну самое простое наверное I и все прямые буквы, потом буквы со скруглениями, потом уже всякие Ю. Задание может показывать глупым или простым, но в программировании в первую очередь важна именно практика, а для новичков такие вот задания с повышением сложности хорошо набивают руку.


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 14 Июля 2011, 18:20:35
Цитировать
Помню нас препод в универе гонял


А у нас в универе почти не было программирования : (

Полгода на первом курсе, полгода на последнем. Одна лента в неделю в обоих случаях. Всему, чему учили, уже был научен в школе.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 14 Июля 2011, 18:45:03
Так что, новые простые задания будут, чтоб не терять навыков? ))
Да и может уже подвести итоги 2-го задания, вряд ли уже кто-то еще будет участвовать...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 14 Июля 2011, 19:28:52
Ну, как говорится, кто на что учился.
Новых заданий не будет в ближайшие 4 дня. Через 4 дня будет легкое задание, которое очень очень сложно решить.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 14 Июля 2011, 19:48:37
Ну, как говорится, кто на что учился.
Новых заданий не будет в ближайшие 4 дня. Через 4 дня будет легкое задание, которое очень очень сложно решить.
А чего так долго ждать? Если не секрет конечно...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 14 Июля 2011, 19:49:14
Таким было условие


Название: Re:Конкурс. Программирование.
Отправлено: Proydoha от 14 Июля 2011, 20:25:11
Через 4 дня будет легкое задание, которое очень очень сложно решить.

Мне одному тут какое-то противоречие мерещится? : )


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 20 Июля 2011, 17:21:01
Мда, что-то тема заглохла...
Видать народу надо побольше чтоб модератору было интересно проводить конкурсы в этой ветке...
Эх, придется идти изучать автомобили, может там повезет что нить выиграть...


Название: Re:Конкурс. Программирование.
Отправлено: Sasha от 20 Июля 2011, 20:42:55
Прошу прощения за задержку. Завал на работе. Как только освоимся на новом форуме сразу же возобновим тему.


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 20 Июля 2011, 22:26:28
Что, опять новый форум!!!!
Так не успеешь и в избранное занести а уже менять адрес надо...


Название: Re:Конкурс. Программирование.
Отправлено: Catcatcat от 20 Июля 2011, 22:29:49
А кому легко, регистрируйся побыстрее, а то свободные места ограничены :).


Название: Re:Конкурс. Программирование.
Отправлено: timelimit от 20 Июля 2011, 23:05:38
А кому легко, регистрируйся побыстрее, а то свободные места ограничены :).
Как мне показалось, то с местами как раз наоборот... ))


Hosted by uCoz