СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Задания школьного этапа олимпиады по информатике для 7-8 классов 2020 г.

Категория: Информатика

Нажмите, чтобы узнать подробности

Задания школьного этапа олимпиады по информатике для 7-8 классов 2020 г.

Просмотр содержимого документа
«Задания школьного этапа олимпиады по информатике для 7-8 классов 2020 г.»

Задания школьного этапа

всероссийской олимпиады школьников по информатике

2020/2021 учебный год

7-8 класс


Время выполнения: 180 минут.

Максимальное количество баллов: 500 (каждое задание 100 баллов)


Задача 1. Числа Фибоначчи. Условие

Профессор Бит Байтович Компьютеров чрезвычайно гордится своим гениальным, по его мнению, сыном, который родился в век создания компьютеров. Он любит рассказывать, что:

1) день рождения сына является числом Фибоначчи;

2) сумма цифр числа — дня рождения — и произведение его цифр также являются числами Фибоначчи;

3) хотя порядковый номер месяца, в котором родился сын, и не является числом Фибоначчи, зато является произведением двух не соседних чисел Фибоначчи;

4) год рождения сына представляет собой удвоенное число Фибоначчи.

Определите точную дату рождения сына уважаемого профессора, а именно, укажите соответствующий день, месяц и год его рождения. В ответе поясните свое решение.

Числами Фибоначчи, в данном случае, называют числа, образующие последовательность 1, 2, 3, 5, 8, 13, 21, 34, 55 …


Ответ: ________________________________________________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Решение

Из условия следует, что день рождения сына профессора — двузначное число. Так как номер дня месяца не может быть больше 31, то днем рождения может быть 13-е или 21-е число. Первое значение не подходит, так как сумма его цифр должна являться числом Фибоначчи. Значит, сын родился 21-го числа. (40 баллов)

Номер месяца, в котором родился сын профессора, не может быть больше 12. Из первых пяти чисел Фибоначчи (1, 2, 3, 5, 8) условию соответствуют “несоседние” числа 2 и 5, то есть мальчик родился в октябре. (30 баллов)

Ответ: искомая дата рождения — 21.10.1974.

(правильно определен год рождения – 30 баллов)

Задача 2. Робот. У словие

Робот, обозначенный стрелкой, находится в лабиринте и выполняет следующие инструкции.

Повторять:

если путь свободен, то

вперед на одну клетку;

иначе

если k=0, то повернуть на 90° против часовой стрелки, увеличить k на 1;

если k=1, то повернуть на 90° по часовой стрелке, уменьшить k на 1.

Каждое действие робота (поворот или переход на соседнюю клетку) длится 2 секунды. За какое время робот дойдет до клетки со звездочкой?

Подзадача 1 (50 баллов). Решите задачу, если в начале движения k = 0.

Подзадача 2 (50 баллов). Решите задачу, если в начале движения k = 1.

Ответ: 1) _____________________________________________

2) _____________________________________________

Решение

1) 18 секунд.

2) Робот никогда не дойдет до звездочки.


В задачах 3-5 решение записывается на одном из известных вам языков программирования
Задача 3. Дом кошек Условие

В доме n комнат. В каждой комнате четыре угла. В каждом углу четыре кошки. У каждой кошки четыре лапы. Сколько всего лап у этих кошек?

Входные данные

В первой строке записано целое число n — количество комнат в доме

(1 ≤ n ≤ 10).


Выходные данные В первой строке выведите одно целое число — общее количество лап у кошек в доме.

Пример входных и выходных данных

Ввод

Вывод

4

256


Решение В задаче требуется составить формулу, организовать ввод данных, вычисление по формуле и вывод данных. Решение на языке Python 3:

x = int(input())

k = x*4*4*4

print (k)


Решение на языке Python 3 (в одну строку):

print (int(input())*4*4*4)


Задача 4. Дед Мазай Условие Как то раз, Дед Мазай поплыл за дровами в своей лодке. Вдруг он увидел, как по реке плывет бревно, на котором сидят зайчатки, жмутся друг к дружке и боятся упасть в воду. Жалко стало ему зайчат, подплыл он к бревну и всех зайчат к себе в лодку посадил. Плывет дальше, а там еще одно бревно, а потом еще одно и еще. «Хорошо, что у меня лодка большая» - подумал Дед Мазай. Так он плыл и собирал зайчат, а потом вывез их на сухое место и распустил. Мальчик Коля Н. наблюдал с берега за тем, как Дед Мазай зайцев спасал и записал себе в тетрадь сколько зайчат было на каждом бревне, с которого дед их снимал. Теперь Коля хочет посчитать сколько же всего зайцев спас добрый дед? Входные данные На вход программе подаются данные по строкам. В i-й строке информация о количестве зайцев, которых Дед Мазай снял с i-го бревна. В последней строке входных данных записано число 0. Выходные данные

Выведите одно число - количество зайцев, которых спас Дед Мазай. Гарантируется, что число зайцев, которых спас Дед Мазай меньше 109 , а количество записей у Коли не превышает 106


Пример входных и выходных данных

Ввод

Вывод

12

5

7

0

24

27

24

101

23

0

175


Решение В задаче требуется организовать ввод данных с использованием цикла while до тех пор, пока на вход не будет подано число 0. Сумма переданных на вход чисел – это ответ. Решение на языке Python 3:

s = 0

while True:

x = int(input())

if x == 0:

break

s += x

print(s)


Задача 5. Катание на лифте Условие

Дети поднимались на лифте с первого этажа. Для каждого ребенка известно, на каких этажах останавливался лифт. Строгий дядя Ваня заметил, что некоторые дети просто поднялись на лифте, а некоторые катались по этажам то вверх, то вниз. Он решил отругать только таких детей. Так как это дети, то дядя Ваня предполагает, что детей, которые только поднимались на лифте, меньше, чем тех, которые катались то вверх, то вниз (но в этом он не обязательно прав). У него есть список всех детей. Он решил вычеркнуть из него детей, которые ехали только вверх. Помогите дяде Ване составить этот список детей, которых нужно вычеркнуть.

Входные данные

Входные данные В первой строке записано натуральное число N – количество детей (1 ≤ N ≤100). В следующих строках описываются N поездок детей. Для каждого ребенка в отдельной строке указывается его имя (уникальное для каждого ребенка). Имя состоит из латинских букв. В следующей строке записано натуральное число Mi – количество остановок, которые сделал лифт, когда в нем ехал i-й ребенок (1 ≤ Mi ≤100). Далее в Mi строках перечислены натуральные числа – номера этажей, где останавливался лифт. Гарантируется, что номера этажей не превосходят 500.

Выходные данные

Необходимо вывести имена тех детей, которые только поднимались вверх. Имена детей нужно выводить в том порядке, в котором они указаны во входном файле.

Пример входных и выходных данных

Ввод

Вывод

3

Dima

4

2

4

5

8

Rita

3

6

1

7

Gera

1

5

Dima

Gera


Пояснение к примеру

Всего на лифте каталось три ребенка.

При поездке ребенка по имени Dima лифт останавливался на четырех этажах: 2, 4, 5, 8. Он ехал все время вверх.

При поездке ребенка по имени Rita лифт останавливался на трех этажах: 6, 1, 7. Она каталась то вверх, то вниз.

При поездке ребенка по имени Gera лифт остановился только на одном 5 этаже. Он ехал все время вверх. Вывести нужно имена первого и третьего ребенка.



Решение

В задаче требуется среди всех последовательностей чисел (этажи, на которых останавливался каждый из детей) выбрать те, которые являются возрастающими. При решении можно записывать каждую последовательность в отдельный массив, а можно это делать по ходу считывания данных, как приведено в авторском решении.

Решение на языке Python 3:

n=int(input())

allname=[]

for i in range(n):

name=input()

m=int(input())

d1=0

for i in range (m):

d2=int(input())

if d2

name=0

d1=d2

if name!=0:

allname.append(name)

for i in range (len(allname)):

print(allname[i])




Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!