- PVSM.RU - https://www.pvsm.ru -

Конкурс для программистов

Конкурс для программистов
На днях исполняется год нашему блогу на Хабре. И мы решили отметить это дело! Нет, ну не так, как вы подумали. Хотя так, конечно, тоже. Но сейчас не об этом.

Нам очень хочется подарить всем нашим читателям какие-то подарки, но подарок у нас только один (зато хороший), поэтому мы решили разыграть его в небольшом конкурсе для программистов. Условия конкурса и описание приза — под катом. Задания не отнимут много времени, шанс выиграть есть у всех.

Приз

Приз мы хотели сделать не только ценным, но также уникальным и запоминающимся. В конце-концов, новую железку к компьютеру или телефон вы и без нас купите, а вот получить в качестве подарка развлечение на несколько килобаксов — событие памятное. Так что дарим мы VIP-билет программы Корпоративного гостеприимства УЕФА на матч Швеция-Франция, который будет проходить 19-го июня в Киеве в рамках чемпионата Евро-2012.

Билет включает включает в себя:

  • Места в отдельном секторе с отличным видом на стадион
  • Отдельный вход в VIP-зону
  • Развлекательная программа в специальной зоне корпоративного гостеприимства
  • Широкий выбор блюд и напитков
  • Пропуск на автостоянку
  • Памятный подарок

Матч Швеция-Франция начинается в 21.45, в то время, как развлекательная программа УЕФА начинается в 18.45, а также продолжится после завершения матча.

Задание

Итак, по поводу вышеуказанного события мы решили написать несколько программ, которые бы выводили текст «1 year on #habr!». Ну почти «Hello world!» то есть. Написать-то мы их написали, но вот, к сожалению, что-то в них не работает. Или работает не так. В общем, не выводят они то, что требуется. Нам кажется, что каждую из программ можно исправить фиксом в буквально одной строке. Возможно, вы сможете это сделать? Ах да, на каких языках мы писали — тоже уже забыли. Придётся догадываться по ходу. За каждую решенную задачу — 1 балл.

Задание 1

var howManyYears = 1;
howManyYears += "1";
howManyYears -= "1";
alert(howManyYears + " year on #habr!");

Задание 2

howManyYears = 1
if (howManyYears =! 0)
puts "#{howManyYears} year on #habr!"
end

Задание 3

#include <iostream>
#include <vector>

int main()
{
	std::vector<int> monthes;

	// we are here from 06/2011 - 12 monthes
	monthes.push_back(06); monthes.push_back(07);
	monthes.push_back(08); monthes.push_back(09);
	monthes.push_back(10); monthes.push_back(11);
	monthes.push_back(12); monthes.push_back(01);
	monthes.push_back(02); monthes.push_back(03);
	monthes.push_back(04); monthes.push_back(05);
		
	std::cout << monthes.size() / 12 << " year on #habr!";
    return 0;
}

Задание 4

[regex]::replace('1 year on $habr!','$','#')

Задание 5

#include <stdio.h>
int main()
{
	int years = 0;
	printf("%d year%s on #habr!", ++years, years == 1 ? "" : "s");
	http://www.infopulse.com.ua/eng/Career/Vacancies/Software-Development/
	return 0;
}

Задание 6

SET X, 0
:start
SET A, [string+X]
IFE A, 0
SET PC, end
BOR A, 0x7000
SET [0x8000+X], A
ADD A, 1
SET PC, start

:string dat "1 year on #habr!",0

:end
SET PC, end

Бонусное задание

Возможно, вы заметили ссылочку в задании №5 (кстати, почему её наличие не ломает компиляцию кода на этом языке?). Так вот, один дополнительный бонусный балл могут получить те люди, которые среди вакансий по этой самой ссылке [1] найдут интересную для себя и пришлют в период конкурса своё резюме по адресу habrahabr-contest@infopulse.com.ua (не забудьте указать твиттер-аккаунта, от которого было опубликовано основное решение). Если вам понравились задачи в этом конкурсе — понравятся и вакансии (там такие задачи встречаются ежедневно, даже намного интереснее). А нам нравятся люди, которые решают подобные задачи. Такой себе тест на взаимную симпатию. И один бонусный балл в конкурсе.

Правила конкурса

Ответы нужно опубликовать где-нибудь в Интернете (pastebin или Google Docs вполне сойдут), а ссылку на них бросить в твиттере. Твит со ссылкой должен содержать также текст "#habr @Infopulse_ukr". Ответ на каждую задачу должен быть в следующем формате:

№ задания
Язык программирования
№ строки с ошибкой (порядок нумерации строк - с единицы)
Исправленная строка
Объяснение исправления

Пример:

1
C++
12
printf("1");
Число "1" взято в двойные кавычки, поскольку первым аргументом функции printf является строка.

Ответы на задачи должна разделять пустая строка. Принимаются только ответы, отправленные вышеописанным образом в вышеописанном формате. Ответы в духе «написать в первой строке print и выход» или «сразу goto на строку с print» — не проходят, должна быть именно исправлена ошибка в оригинальном коде, с сохранением логики его алгоритма. Срок приёма ответов — 2 суток с момента публикации поста. Наличие аккаунта на Хабре для участия необязательно. Приз получит человек, набравший максимальное количество баллов (если таких будет несколько — первый из них). Победитель будет объявлен в воскресенье, 17-го июня. Приз будет вручен в понедельник, 18-го июня.

Всем удачи. Поехали.

Автор: tangro


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/9528

Ссылки в тексте:

[1] ссылке: http://www.infopulse.com.ua/eng/Career/Vacancies/Software-Development/