Решения районной олимпиады по программированию среди школьников

Тобольск, 2006 г.

Теоретический тур

1_1.

Основанием может быть число большее 7.

3  *1 5

4 3

*

* 5 0 * 4

1_2.

1) 

английский 10

 
С помощью диаграмм Эйлера – Венна

 

2)  Метод включений и исключений (дискретная математика):

N=25(ф)

N1=10(а)

N2=13(н)

N3=11

N12=4

N13=3

N23=4

N123=2

11-(3+4)+2=6

1_3.

физик

врач

юрист

имя

туризм

бег

регби

-

-

Å

Влад

-

-

Å

-

Å

-

Тимур

Å

-

-

Å

-

-

Юра

-

Å

-

Практический тур

2_1.

Рекомендации:

Организовать две функции:

function X (var i real) : real;

begin

x : = (3 * i) / 2;

end;

function z (var i, j : real) : real;

begin

z : = i – j / 3

end;

при этом тело программы может быть:

begin

x 2 : = x (8);

x 1 : = x (x 2);

x 0 : = x (x 1);

b : = z (0, x 0);

z 1 : = z (b, x 2);

z 2 : = z (b, x 1);

end.

Ответы: всего хозяйка сварила 27 шт., средний должен взять – 3 шт., младший – 5 шт.

2_2.

Рекомендации:

Суть: Бегущий отрезок на экране может получиться, если использовать оператор рисования точки сначала ярким цветом, а затем после задержки (пустой цикл) рисованием цвета фона

2_3.

Алгоритм решения задачи:

1.  Найти наименьший элемент в каждой строке.

2.  Найти наибольший элемент в каждом столбце.

3.  Найти седловые точки, т. е. проверить равенство наименьшего элемента в строке и наибольшего элемента в столбце.

Вычеркнуть седловые точки из исходного массива и распечатать полученный массив.

2_4.

При попытке получить число 2 11213 компьютер выдаёт ошибку. Она может быть решена через организацию массива, который содержит не более 11213 данных.

При этом

А (0) – единицы искомого числа

А (1) – десятки

А (2) – сотни и т. д.

Получение данных цифр осуществляется по общеизвестному правилу умножения целых чисел.

А (0) = 2

FOR k = 2 TO 11213

P = 0

FOR i = 0 TO 11212

A = A (i) * 2 + P

A (i) = A mod 10

P = (A – A(i)) / 10

NEXT i

NEXT k

A (0) = A (0) – 1

i = 11213

DO

i = i - 1

LOOP UNTIL A(i) < > 0

FOR k = 1 TO 0 STEP – 1

PRINT A (k)

NEXT k

L = 0

i = 0

WHILE I < 11212 and L = 0

IF A(i) = 9 and A (i + 1) = 9

THEN L = 1

END IF

i = i + 1

WHEND

IF L =1 THEN PRINT “имеется” ELSE PRINT “нет”

END IF

2_5.

Рекомендации:

Организовать двумерный массив размером: по горизонтали 9 (длина слова кроссворд), по вертикали 7. Внешний цикл программы: размещение слова «кроссворд» по горизонтали массива внутренний цикл, размещение остальных слов «АЛГОЛ», и «АВОСТ» по вертикали и слова «СЛОВО» по горизонтали.

2_6.

Решение данной задачи основывается на рекурсии:

для получения данного изображения необходимо задать начальное значение стороны внешнего квадрата, тогда длина стороны квадрата является диаметром вписанной в него окружности - d, построить окружность радиуса d/2; сторона следящего квадрата - d/2 и т. д.

2_7.

Решение данной задачи разбивается на две части: 1) год является високосным и 2) год не является високосным.

А).

- вычислить количество недель, для определения длины цикла;

- задать массив, в котором количество строк совпадает с величиной round(Е/(В/А)), количество столбцов – А;

- заполнить массив числами от 1 до В;

- каждый элемент массива сравнить с номерами праздничных дней, т. е. D1, D2, …, Dм, если элемент массива совпадает с Di, то S:=S+0, иначе S:=S+1;

- вычислить количество оставшихся рабочих дней, приходящихся на каждый день недели, сохранить значения в новом массиве (например, Р), где строки – года, столбцы – дни недели;

Б).

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

- если год является високосным, то в первой части решения необходимо изменить формулу вычисления длины цикла на round(Е/(В+1/А)) и аналогично сравнить элементы массива с праздничными днями, сохраняя результат во второй строке массива Р;

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