Задачи на алгоритмизацию и программирование



Теоретические задания (6 задач - максимум 50 баллов)

№1 №2 №3 №4 №5 №6 итого
4 5 6 8 12 15 50

Для каждой задачи необходимо кроме ответа написать решение с пояснениями, почему этот ответ правильный, т.е. обосновать ответ на задачу. Ответ без пояснения не засчитывается!

 

Задача 1.

Угадай закономерность: 2, 9, 37, 149, …, ….

В ответе укажите следующие (пропущенные) два числа и алгоритм.

Ответ: 597, 2389, алгоритм *4+1.

Критерии:

если дан только алгоритм 2 балла, за каждое правильное число + 1 балл.

 

Задача 2.

В здании 16 этажей, лифт останавливается на каждом этаже, но в лифте всего две кнопки:

1. «ВВЕРХ НА ПЯТЬ»

2. «ВНИЗ НА ДВА».

Нажатие на первую кнопку поднимает лифт на пять этажей, нажатие на вторую кнопку опускает лифт на два этажа. Если при нажатии на кнопку лифт должен подняться выше 16 этажа или спуститься ниже 1, то лифт никуда не поедет. Петя находится на первом этаже. Как ему нужно нажимать на кнопки, чтобы оказаться на 12 этаже?

Ответ: 11221 или 12121 или 11212

Критерии: за одно из перечисленных правильных наборов команд - 5 баллов; если другой вариант - то его надо проверить на правильность.

 

Задача 3.

В классе 35 учеников, каждый из которых любит футбол, волейбол или баскетбол, а некоторые - два или даже три из этих видов спорта. 24 ученика любят футбол, 18 - волейбол, 12 - баскетбол. При этом 10 учеников одновременно любят футбол и волейбол. 8 - футбол и баскетбол, а 5 - волейбол и баскетбол. Сколько учеников этого класса любят все три вида спорта?

Ответ: 4

Решение:

24+18+12-10-8-5=31

35-31=4

Критерии: если алгоритм правильный, но допущена ошибка в вычислении, то - 3 балла.

 

Задача 4.

В бумагах одного чудака-математика была найдена его автобиография. Она начиналась следующими удивительными словами: “Я окончил курс университета 44 лет от роду. Спустя год, 100-летним молодым человеком, я женился на 34-летней девушке. Незначительная разница в возрасте - всего 11 лет - способствовала тому, что мы жили общими интересами и мечтами. Спустя немного лет у меня была уже и маленькая семья из 10 детей. Жалованья я получал в месяц всего 200 рублей, из которых 1/10 приходилось отдавать сестре, так что мы с детьми жили на 130 рублей в месяц.” и т.д.

Чем объяснить странные противоречия в числах этого отрывка? Какие на самом деле числа должны стоять вместо перечисленных?

Ответ: 5-ти ричная система счисления.

24 лет, 25 лет, 19 лет, 6 лет, 5 детей, 50 рублей, 1/5=40 рублей.

Критерии: за каждое правильно полученное число - 1 балл; если только алгоритм - 4 балла, при этом угаданы несколько чисел - каждое оценивается в 1 балл.

 

Задача 5.

Четыре девочки встали в круг. Девочек звали Галина, Людмила, Марина и Полина. Девочки отличаются цветом волос (блондинка, брюнетка, рыжая и шатенка). Какие волосы у Галины, если верны следующие утверждения: слева от блондинки брюнетка, справа от рыжей шатенка, слева от Полины блондинка, напротив Марины Людмила, по левую руку Галины стоит Марина.

Представить решение задачи в виде таблицы или графа. Записать ответ.

Ответ: Галина – брюнетка

  Бл Бр Р Ш
Г 0 1 0 0
Л 1 0 0 0
М 0 0 0 1
П 0 0 1 0

Критерии: за каждое несовпадение - минус 3 балла.

 

Задача 6.

Закодировали буквы русского алфавита (см. рисунок). Замени коды букв слова СЕТЬ по алгоритму и раскодируй получившиеся числа по этой же таблице кодировок. Что означает полученное слово?

 С Е Т Ь
       

 

 

 

 

Ответ: Граф.

“Графы являются способом определения отношений в совокупности элементов.” или “Граф — это набор узлов (вершин) и связей между ними (ребер).”

Решение:

С Е Т Ь
 19-15=4 Г 6+12=18 Р 20-19=1 А 30-8=28 Ф

Критерии:

Каждая неправильно угаданная буква минус 3 балла.

Если нет пояснения на полученное слово - минус 5 баллов (но в итоге не меньше 0).

 

Задачи на алгоритмизацию и программирование

(3 задачи - максимум 50 баллов)

 №1 №2 №3 итого
15 15 20 50

Необходимо написать алгоритм в виде блок-схемы или программу на языке высокого уровня в соответствующей среде разработке: Кумир, PascalABC, Freepascal, C++, Python.

Критерии оценивания:

За каждый тест баллы начисляются из расчета - общее количество баллов за задачу разделить на количество тестов.

 


 

Ограничение времени - 1 секунда

Ограничение памяти - 64Mb

Ввод - стандартный ввод или input.txt

Вывод - стандартный вывод или output.txt

 

Задача «Будильник»

Известный исследователь, устав от долгого путешествия по джунглям, лег спать в X часов вечера. Перед этим он завел будильник на Y часов следующего дня. На будильнике, имеющем 12-ти часовой циферблат, можно задать время только не более 12 часов.

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

Например, если ввести:

Х=10

Y=12

то в результате выполнения программа должна вывести:

2  часа.

 

Формат ввода

В каждой строке ввести два целых числа Х и Y (от 1 до 12).

 

Формат вывода

В одной строке вывести количество часов.

 

Пример

Ввод Вывод
10 12 2

 

Программа

var x,y,z:integer;

begin

 read(x,y);

 if (y>=x)

 then

z:=y-x

     else

     z:=12-x+y;

     write(z);

end.

Тесты

Ввод Вывод
1 10 12 2
2 5 5 0
3 7 1 6
4 9 8 11
5 2 7 5

 

 

Задача «Строки в книге»

В книге на одной странице помещается k строк. Таким образом, на 1-й странице печатаются строки с 1-й по k-ю, на второй — с (k+1)-й по (2∙k)-ю и т.д. Всего в книге n страниц.

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

Например, если ввести:

количество строк на одной странице k=20

номер строки в книге p=25

то в результате выполнения программа должна вывести два числа - номер страницы и номер строки на этой странице:

страница с номером - 2

номер строки на странице - 5

Формат ввода

В первой строке вводится целое число - количество строк на одной странице k (от 1 до 109). На следующей строке - номер строки в книге p (от 1 до 109).

 

Формат вывода

В каждой строке вывести два числа - номер страницы и номер строки на этой странице.

 

Пример

Ввод Вывод
20 25 2 5

 

Программа

var k, n, p, f: longint;

begin

read(k,p);

 

     f:=p mod k;

     n:=p div k;

     n:=n+1;

     if (k=p)then

     begin

n:=n-1;

f:=p;

end;

 

writeln(n);

writeln(f);

end.

Тесты

Ввод Вывод
1 20 25 2 5
2 13 1000000000 76923077 12
3 7 7 1 7
4 123456789 987654320 9 8
5 987654321 123456789 1 123456789

 

 


Дата добавления: 2022-01-22; просмотров: 24; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!