Главная

KCC 2 :: задачи

KCC 2 :: решения

KCC 2 :: результаты

KCC 1

KCC 1 :: задачи

KCC 1 :: решения

KCC 1 :: результаты

Что такое Kerch Coding Contest?

KCC — Керченское Состязание Программистов. Приглашаем всех желающих принять в нем участие. Если Вы знакомы с современными языками программирования, имеете голову на плечах и мозги в ней, регистрируйтесь и решайте задачи! Участвовать могут абсолютно все, независимо от возраста, профессии и вероисповедания, участие бесплатное. В конце мероприятия будут подведены итоги и будет опубликован Первый Рейтинг Керченских Программистов. Работодатели, не упустите свой шанс!

Первое соревнование начнется 7 августа и будет длиться неделю. За это время все желающие смогут ознакомиться с заданиями и выполнить их. Поскольку программирование очень многогранно, задания будут касаться самых разных его областей. Планируется 7 задач по числу дней: 1 по ассемблеру, 2 по PHP и 4 по C++. В условии задачи будет приведена часть кода и требования к полностью дописанному. Ваша цель — дописать код так, чтобы он стал соответствовать условиям. Задача считается решенной, только если она проходит все тесты.

Регистрируйтесь и добавляйте себе в подпись очередную картинку :):

Пример задания (ассемблер):

Дописать программу, которая считает среднее арифметическое двух целых чисел и выводит его.

.386
.model flat, stdcall
option casemap: none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

.data
	num1 dd 1024
	num2 dd 864
	
.data?
	s db 256 dup (?)

.code
start:

	; YOUR CODE WILL BE PLACED THERE

	invoke MessageBox, 0, addr s, addr s, MB_ICONASTERISK
	invoke ExitProcess, 0
end start

Программа должна выдать 944. Числа num1 и num2 могут изменяться, но их сумма всегда меньше 231.

Авторское решение

Пример задания (PHP):

Дописать программу так, чтобы она выводила через <br /> два числа, которые присваиваются переменным $a и $b в классе A.

<?php

class A {
	var $a = 344, $b = 111;
	
	function func1(){
		return $this->a * 3 + $this->b * $this->b;
	}
	
	function func2(){
		return $this->a - $this->b;
	}
}

class B {
	function func($c, $d){

		// YOUR CODE WILL BE PLACED THERE
		
	}
};


$obj1 = new A;
$obj2 = new B;

$obj2->func($obj1->func1(),
            $obj1->func2());

?>

В данном случае скрипт должен вывести в тело веб-страницы 344 и 111, разделенные переводом строки HTML.

Авторское решение

Пример задания (C++):

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

#include <conio.h>
#include <iostream>
#include <vector>
#include <string>

using namespace std;

class A {
public:
	double calc(vector<string> arg){

		// YOUR CODE WILL BE PLACED THERE

	}
};

int main(){
	vector<string> arg;
	arg.push_back("FA");
	arg.push_back("8B");
	arg.push_back("32");
	arg.push_back("9F");
	arg.push_back("3D");

	A a;
	cout << a.calc(arg) << endl;

	getch();
	return 0;
}

Для этого теста программа должна выдать 26466.8 или близкую величину. Все шестнадцатеричные числа представимы с помощью типа int.

Авторское решение

Технические условия

  • Решения будут тестироваться с помощью компиляторов MASM32 (язык ассемблера), Visual C++ 2003 (C++), PHP5 (PHP)
  • Обфускация решений запрещена! Обфускация — это умышленное затруднение чтения кода.
  • Решения проверяются вручную, при попытке нарушить безопасность системы участник будет дисквалифицирован.
  • Каждый участник имеет право отправлять любое количество решений, но проверяться будет только последнее отосланное.
  • Решение должно работать меньше 2 секунд на платформе Cel-1700.

Тесты для программистов

Этот тест поможет Вам оценить свои силы в области программизма и покажет, куда расти :)

  1. Что такое TDD?
  2. Созданием какого рода продуктов занимается компания Rational?
  3. На каком языке написана библиотека Boost?
  4. Приведите пример задачи, имеющей сложность O(N3/2)
  5. Что такое λ-функция?
© Izolda, 2007