Раунд окончен, надеюсь, вам понравилось. Разбор задач здесь.
Язык этого раунда — COBOL (диалект COBOL85), один из старейших языков программирования (1959 год "рождения", то есть вдвое старше меня). Несмотря на почтенный возраст, до сих пор активно используется, но не в спортивном программировании, так что для присутствующих должен стать сюрпризом :-)
Задача "A+B" (числа A и B заданы в отдельных строках) решается вот так:
IDENTIFICATION DIVISION.
PROGRAM-ID. SOLUTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(10) VALUE ZEROES.
01 B PIC 9(10) VALUE ZEROES.
01 STR PIC X(10).
PROCEDURE DIVISION.
ACCEPT STR
MOVE STR TO A
ACCEPT STR
MOVE STR TO B
ADD A TO B
DISPLAY B
STOP RUN.
С примерами программ на COBOL можно ознакомиться в статье в Прогопедии и статье на RosettaCode, а также в документации к OpenCOBOL.
Система тестирования использует OpenCOBOL версии 1.0. Для тестирования своих программ можно:
- воспользоваться вкладкой “Запуск” в интерфейсе контеста.
- воспользоваться ideone, язык COBOL. Напоминаю, что по умолчанию анонимно присланные коды показываются в recent codes, для сохранения спортивного интереса рекомендую зарегистрироваться и использовать опцию приватности "user's", или хотя бы использовать опцию “private”.
- установить его локально.
В Linux эта версия есть в репозиториях. После установки компилятора команда cobc -std=cobol85 -x <filename>
компилирует код и создает исполняемый файл.
В Windows, если у вас установлена Visual Studio C++ (протестировано с 2005 Express Edition):
- скачайте http://assets.codeforces.com/files/surprize-language-round-5.7z
- разархивируйте его с паролем fe8b058ca460d2 в каталог C: — к сожалению, в исполняемых файлах компилятора жестко прописаны пути C:\OpenCobol
- располагайте исходные тексты для компиляции и запуска в C:\OpenCobol, компилируйте их командой
compile.bat solution.cob
22 февраля вас ждет Surprise Language Round #5 — продолжение серии Unknown Language Round. Эпитет Unknown пал жертвой ребрендинга: едва ли можно гарантировать, что язык раунда будет неизвестен всем участникам, и чем больше раундов проводится, тем вероятнее, что какой-то из языков кому-то уже встречался.
Правила раунда:
- Индивидуальное нерейтинговое соревнование по правилам ACM ICPC.
- В раунде будет 5 задач, примерно отсортированных по сложности, и 2 часа на их решение.
- Решения задач принимаются только на одном языке, который будет объявлен в начале контеста. Пожалуйста, в начале контеста перечитайте этот пост целиком.
Контест получился небольшой и не такой головоломный, как прошлый — все-таки будний день, да и вообще, добрее надо быть :-) Всем удачи!
Спасибо, Nickolas! Очень соскучился по необычным контестам. =)
Nickolas метит на место natalia в топе по вкладу?
Я уже тоже нервничаю :о
А мне хорошо, я не нервничаю:)
Зато у тебя 7ое место по абсолютному вкладу :-D
Обязательно выкую себе медаль.
Hi I have a question. how I can learn the syntax and rules of that language in middle of the contest? is there any help in the contest?
thanks a lot. :)
The point of such contests is that you have to find the things you need to write the solutions yourself. You will be given the compiler/interpreter you have to use, and a very basic example of code, maybe a link to some more examples, but that's all, you'll have to find and explore any documentation you'll need on your own. The problems are simple so you need to care only about learning the language, not about figuring out the algorithm.
But... This is an existing language, or one created by yourself?
I think, that should be existing one. Otherwise how would you find any documentation. :)
Existing
Last time it was Befunge.
Hi everybody
I didn’t know that I’m not allowed to post in a non-English language …
My Blog Post
I have only translated an English post to my native language and my Contribution is -55 now.
What I have to do ?
thanks.
There is so much trolls in this site...
Для пользователей Windows при наличии установленной Visual Studio C++
А пользователям Windows без наличия установленной Visual Studio C++ предлагается её сейчас устанавливать?
Будут альтернативные способы запуска онлайн, из интерфейса контеста. Я бы со студией не возилась :-)
вопрос решился
Befunge was realy cool :)
What means "The round will be unrated" ? It won't affect our rating or what?
Yes, it won't affect our rating, I think. Good Luck! :)
Yes, it won't. It simply for fun.
Напомните, язык и компилятор дают за 15 минут или в начале контеста?
what about linux users?will compiler be provided later during the contest?
Use online compiler or install it from repositories.
i got the answer,,,:)
What to do if I have windows that does not have visual studio c++, only have codeblocks IDE?
Use online compiler access.
COBOL
ARE YOU KIDDING ME
Круто! Вспомним старину Коболу )
Как сказано в задаче "Код, приведенный в посте о раунде, эту задачу не решает." А мне одному кажется, что этот код вообще не складывает числа?
Ну когда я его запускаю, он именно складывает числа. А что он делает у вас?
В здешнем компиляторе он мне почему-то выдал первое введеное число
Угу :(
http://ideone.com/nHF2d
И в здешнем, и на ideone все в порядке: http://ideone.com/NZrOv После второго числа точно есть перевод строки?
Беру 1 пример
12 3
Ctrl+C, Ctrl+V
Читаем условие: "Задача “A+B” (числа A и B заданы в отдельных строках)"
Виной может быть Markup.
Как делаю я — нажимаю на 1 потом на 2 потом на Enter потом на 3. Правильно? Получается:
12 3
UPD. Копипастю я не свой текст, а текст из примеров к задаче.
Неправильно, так перевод строки съедается. Надо писать <br /> там, где хочешь строчку разорвать.
Ну это в Markup, а как во входных данных писать? Так же? O_O
А во входных просто дописать лишний перевод строки в конце, не?
Уже всё понял. Ем.
Откровенно говоря, мне немного неясно, каким волшебным способом вы смогли сделать этот перевод строки, а afix нет. Я в всматривался в оба ввода теста, я скопировал ваш тест, запустил его снова на здешнем компиляторе, но ни разницы, ни сложения двух чисел не обнаружил
У меня все волшебным образом заработало, когда тест стал выглядеть так (\n — перевод строки): "123\n456\n"
Он не считывает второе число =(
Да жаль что, с КОБОЛ-ом нельзя писать трудные математические проги . Но зато её понимает каждый.
Но зато её понимает каждый.
Лол ват? Конечно, изначально кобол задумывался как язык, на котором типа управленцы будут писать программы и программисты будут не нужны; но как будто мы не видим, что получилось в итоге.
The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense. (E. Dijkstra)
Контест очень понравился, буду ждать следующих серий; но такое количество гнусного мата в такой короткий промежуток времени от меня давно уже не исходило. :) Полбеды было бы отсутствие в интернете нормальных современных доков про этот язык, если был бы не сам язык.
— мне этот кошмар всю ночь сниться будет. :D
так как делать strlen в этом ужасе? length(string) не спасалоWIXYZIL 6
Не так понял вопрос, сорри
У меня другой вопрос — как адекватно отсекать ведущие нули? Я придумал только такое, но мне это СОВСЕМ не нравится, хоть и писалось не руками: 1217747
Ну про ведущие нули вот тут один из основных примеров, да и в гугле легко гуглится.
чтобы выводилось без нулей, надо объявить тип данных, с отображением другим:
Потом копируем в эту С наше Б и выводим С. Z означает, что если в разряде ничего нет или нуль, то ничего не выведет.
Это отсечет все нули или только ведущие?
z(10)9, вы видите, это равно ZZZZZZZZZZ9, все Z могут превратиться в пробел, а девятка в конце никогда не упадет
Только ведущие, но оно пишет вместо них пробелы — слава богу проверяющая система триммит пробелы и такие решения проходят :)
I feel sorry for the people that use COBOL for living :P
WHY C'S 14 FAILS ALL TIME?
RPU + 14 -> FDI
THE SECOND LINE IN THE INPUT IS OBVIOUS 0 NOT 14
"Note that numeric variables are read into strings and then converted into numbers — this is explained by the compiler specifics which reads numbers in different ways depending on whether they are read from cosole or from file redirected to the program input stream."
thanks a lot I tested from 0 to 25 in my console with no problem
Как хорошо, что такие языки — это давно пройденный этап развития.
Nickolas, спасибо за контест!
Here is my code for problem A. gl & hf. :P
Thanks for such a nice contest :)
I experienced a few annoying problems which I don't understand until now:
Sometimes the compiler just doesn't work. I used windows. I had to restart cmd once every five minutes.
Lots of "Error: syntax error, unexpected LITERAL, expecting EXTERNAL or GLOBAL". I tried to google but it didn't help.
Anyone experienced the same problems and understand how it happened? :)
I received that error (Error: syntax error, unexpected LITERAL, expecting EXTERNAL or GLOBAL) because i made a typo in a declaration
I put 01 str X(15).
But forgot to put the "pic":
I also looked for it on google, but didn't find much, some said that this error was caused by additional spaces, so i looked into that, and i noticed the missing pic keyword, which solved the issue.
Thanks. Seems like that was exactly what happened. During contest I was too frustrated and rewrote most of the codes :)) Cost me quite a lot of time :(
It tries to append something to your PATH each time you call it :) So eventually the PATH will become too long that Windows cannot process it.
Извините, но этот раунд рейтинговый или нет? нигде не было написанно.
В посте:
Правила раунда:
Извините, не увидел.
^
UPD. Интересный баг — история правок не сохраняется =\
Есть такое ощущение, что некоторым моим преподавателям в вузе по предметам, связанным с программированием, именно кобол повредил мозг и они так и остались ментально в каменном веке. С каждым курсом все страшнее и страшнее.
А фамилии не огласишь? :)
Ой
Thanks for the contest! At times it was a bit frustrating when I got lost in figuring out smaller details like removing the trailing zeros or concatenating strings without spaces in between. But I suppose that was to some extend intended :) Right now I have to admit that I would rather code in Befunge than in COBOL. There you have that really small set of possible operations which gives you the power to create complex structures (loops, etc.) yourself (which was fun) while COBOL provides all this — but you have to figure out what the right syntax is. This almost always took me longer than implementing it myself in Befunge last time.
http://codeforces.me/contest/153/standings/page/4 Дорешивают! Понравилось :)
Хм, впервые я рад, что пропустил раунд.
Язык ужасен. Befunge 100500 раз элегантнее.
А чекеры для таких раундов пишутся на языке раунда?
Нет, чекеры пишутся на стандартных языках, решение на языке раунда с чекером сверяется последним движением.
COBOL just like COLLECTION, neither of them is easy to learn. :<
If any of you are interested in participating in an external surprise language contest, there is a contest starting tomorrow(3rd march) at 12:30 Gmt.
Contest Link: http://chaos.techkriti.org