В рамках Недели информатики была проведена командная олимпиада по программированию среди учащихся 8-9 классов. Были предложены следующие задачи:
Задача «Будильник»
Известный исследователь, устав от долгого путешествия по джунглям, лег спать в X часов вечера. Перед этим он завел будильник на Y часов следующего дня. На будильнике, имеющем 12-ти часовой циферблат, можно задать время до звонка только менее 12 часов.
Требуется написать программу, которая определяет, сколько часов успеет проспать исследователь, прежде чем будильник его разбудит.
Например, если ввести:
Х=10
Y=12
то в результате выполнения программа должна вывести:
2 часа
Задача «Строки в книге»
В книге на одной странице помещается k строк. Таким образом, на 1-й странице печатаются строки с 1-й по k-ю, на второй — с (k+1)-й по (2∙k)-ю и т.д. Всего в книге n страниц. Требуется написать программу, которая по номеру строки в тексте определяет номер страницы, на которой будет напечатана эта строка, и порядковый номер этой строки на странице.
Например, если ввести:
количество строк на одной странице k=20
номер строки в книге p=25
то в результате выполнения программа должна вывести:
на 2-й странице 5я строка
Задача «Справедливое распределение»
У Андрея было А грамм крупы, у Бориса – В грамм, а у Сергея вообще не было крупы. Ребята сварили кашу и разделили ее поровну на троих. Поскольку Сергей был без крупы, то в благодарность за кашу он отдал С конфет Андрею с Борисом. Требуется написать программу, которая определяет, как Андрей и Борис должны поделить конфеты по справедливости. Конфету делить на части нельзя.
Например, если ввести:
А=700
B=500
C=12
то в результате выполнения программа должна вывести:
у Андрея 9 конфет
у Бориса 3 конфеты
Задача «Планетоход»
В конструкторском бюро проектируют планетоход для исследования поверхности планеты Марс. Исследования должны проводиться на прямоугольной области планеты без препятствий внутри неё. Эта область разделена на единичные квадраты и имеет размеры MхN, где M – длина прямоугольника, а N – его ширина. Планируется, что планетоход должен работать по следующей программе. Вначале он садится в северо-западном углу заданной области в направлении на восток. После этого планетоход начинает обход и исследование выбранной области, двигаясь по спирали по часовой стрелке. При этом спираль постепенно «закручивается» вовнутрь, захватывая постепенно все клетки прямоугольника. Исследование
заканчивается, когда пройдены все клетки. Требуется написать программу, которая для заданных M и N определяет количество поворотов, которые должен выполнить планетоход в процессе исследования области.
Например, если ввести:
длина прямоугольника M=3
ширина прямоугольника N=4
то в результате выполнения программа должна вывести:
5 поворотов
Задача «Будильник»
Известный исследователь, устав от долгого путешествия по джунглям, лег спать в X часов вечера. Перед этим он завел будильник на Y часов следующего дня. На будильнике, имеющем 12-ти часовой циферблат, можно задать время до звонка только менее 12 часов.
Требуется написать программу, которая определяет, сколько часов успеет проспать исследователь, прежде чем будильник его разбудит.
Например, если ввести:
Х=10
Y=12
то в результате выполнения программа должна вывести:
2 часа
Задача «Строки в книге»
В книге на одной странице помещается k строк. Таким образом, на 1-й странице печатаются строки с 1-й по k-ю, на второй — с (k+1)-й по (2∙k)-ю и т.д. Всего в книге n страниц. Требуется написать программу, которая по номеру строки в тексте определяет номер страницы, на которой будет напечатана эта строка, и порядковый номер этой строки на странице.
Например, если ввести:
количество строк на одной странице k=20
номер строки в книге p=25
то в результате выполнения программа должна вывести:
на 2-й странице 5я строка
Задача «Справедливое распределение»
У Андрея было А грамм крупы, у Бориса – В грамм, а у Сергея вообще не было крупы. Ребята сварили кашу и разделили ее поровну на троих. Поскольку Сергей был без крупы, то в благодарность за кашу он отдал С конфет Андрею с Борисом. Требуется написать программу, которая определяет, как Андрей и Борис должны поделить конфеты по справедливости. Конфету делить на части нельзя.
Например, если ввести:
А=700
B=500
C=12
то в результате выполнения программа должна вывести:
у Андрея 9 конфет
у Бориса 3 конфеты
Задача «Планетоход»
В конструкторском бюро проектируют планетоход для исследования поверхности планеты Марс. Исследования должны проводиться на прямоугольной области планеты без препятствий внутри неё. Эта область разделена на единичные квадраты и имеет размеры MхN, где M – длина прямоугольника, а N – его ширина. Планируется, что планетоход должен работать по следующей программе. Вначале он садится в северо-западном углу заданной области в направлении на восток. После этого планетоход начинает обход и исследование выбранной области, двигаясь по спирали по часовой стрелке. При этом спираль постепенно «закручивается» вовнутрь, захватывая постепенно все клетки прямоугольника. Исследование
заканчивается, когда пройдены все клетки. Требуется написать программу, которая для заданных M и N определяет количество поворотов, которые должен выполнить планетоход в процессе исследования области.
Например, если ввести:
длина прямоугольника M=3
ширина прямоугольника N=4
то в результате выполнения программа должна вывести:
5 поворотов
Задача «Шахматный конь»
Как известно, в шахматах горизонтальные строки обозначаются цифрами от 1 до 8, считая от расположения белых фигур, стоящих внизу доски, а вертикальные столбцы – буквами латинского алфавита: A, B, C, D, E, F, G, H. На шахматной доске в клетке с заданными координатами находиться конь. Сначала делается первый ход конём, а затем – второй ход.
Требуется написать программу, которая определяет координаты всех клеток, куда можно пойти конём первым и вторым ходом.
Например, если ввести:
начальное положение шахматного коня: A1
то в результате выполнения программа должна вывести:
после 1го хода: С2 В3
после 2го хода: А1 C1 E1 D2 A3 Е3 B4 D4 A5 C5
Задача «Вирусы»
Для моделирования различных объектов часто применяются так называемые клеточные поля. В простейшем случае – это прямоугольные таблицы, характеризующие некоторую область, а в каждой ячейке таблицы записывается какаялибо информация об исследуемом объекте. В биологии для моделирования распространения вирусов на плоской области в каждой ячейке
помечается наличие вируса, а его распространение осуществляется в соседние ячейки по вертикали и горизонтали за одну единицу времени. Некоторые клетки обладают иммунитетом, заразить их невозможно и через них не распространяются вирусы. Требуется написать программу, которая определяет минимально возможное число вирусов, с помощью которых можно заразить всю исследуемую прямоугольную область (за исключением защищённых клеток).
Например, если ввести:
количество строк n=4
количество столбцов m=5
количество защищенных клеток k=3
координаты защищенных клеток (x,y):
1 3
2 1
2 2
то в результате выполнения программа должна вывести:
2 вируса
Задача «Роман в томах»
В романе известного писателя N глав. В i-той главе имеется ai страниц. Издатель хочет издать этот роман в K томах так, чтобы объем самого «толстого» тома был минимален. В каждом томе главы располагаются по порядку своих номеров. Требуется написать программу, которая вычисляет количество страниц в самом «толстом» томе.
Например, если ввести:
количество глав N=4
количество страниц в каждой главе:
1 2 1 1
количество томов K=3
то в результате выполнения программа должна вывести:
2 страницы
Задача «Сложение и вычитание в 3с»
Числа в позиционной троично-симметричной системе счисления (3с) записываются с использованием трех символов: +, –, 0. Например, такими числами являются:
а) + + 0 – 0
б) – – 0 +
в) – – –
Эти числа переводятся в десятичную систему как:
а) + + 0 – 0 = 1*34 + 1* 3 3 – 1*3 1 + 0*3 0
б) – – 0 + = – 1*3 3– 1*3 2+ 0 *3 1+ 1*3 0
в) – – – = – 1*3 2 – 1*3 1– 1*3 0
Над числами в позиционной троичносимметричной системе счисления можно выполнять два действия: сложение (+) и вычитание (–). Необходимо уметь вычислять результат для этих действий, если таблица Пифагора для сложения цифр в 3с имеет вид:
(+)
|
–
|
0
|
+
|
–
|
–+
|
–
|
0
|
0
|
–
|
0
|
+
|
+
|
0
|
+
|
+ –
|
Требуется написать программу, которая вычисляет сумму или разность чисел в 3с.
Например, если ввести:
+++0–(+)–0+
+++0–(–)–0+
то в результате программа должна вывести:
++000
+––––+
Попробуйте их решить .
Комментариев нет:
Отправить комментарий