Г. Подарочный набор

advertisement
Примеры олимпиадных задач по информатике и
программированию
1. Группа «Пользователи»
Теоретическая часть
1) Какую комбинацию «горячих клавиш» нужно нажать в Word, чтобы вставить
скопированный блок текста
a) Shift+Ins
b) Shift+Enter
c) Ctrl+E
d) Ctrl+V
2) Применение формата по образцу позволяет копировать
a) размер и начертание символов
b) отступы и интервалы абзаца
c) размер межстрочных интервалов
d) формат выделенной части текста
3) Один Килобайт равен
a) 256 байт;
b) 1024 байт;
c) 1000 байт;
d) 1789 байт.
4) Количество значащих нулей в двоичной записи десятичного числа 126 равно
1)
2)
3)
4)
1
2
3
0
5) Для чего используется в компьютере сетевая плата (сетевой адаптер)?
a) Для подключения к сети Интернет
b) Для подключения компьютера к локальной сети
c) Для обмена информацией с другими компьютерами через телефонную сеть.
6) Полное имя файла – это
a) любой набор до 8 символов (собственно имя), точка, и набор из трех символов
(расширение)
b) последовательность имен каталогов, разделенных знаком \
c) последовательность имен каталогов, разделенных знаком \, начинающаяся именем
диска и заканчивающаяся именем файла
d) его собственное имя вместе с расширением, указывающим на тип фала
7) Назначение BIOS
a) тестирование и начальная загрузка компьютера
b) организация наиболее универсальных операций ввода – вывода
c) тестирование и начальная загрузка компьютера, организация наиболее
универсальных операций ввода – вывода
d) обработка команд, вводимых пользователем, и организация исполнения программ
8) Файлом называют
a) 8 бит
b) именованную совокупность битов
c) двоичный символ 0 или 1
d) наименьшее количество информации в компьютере
e) именованную совокупность байтов
9) Упорядочить этапы решения задач ЭВМ:
a) Отладка программы.
b) Разработка алгоритма.
c) Постановка реальной задачи.
d) Написание программы.
e) Построение математической модели.
10) Переменная, изображающая своё значение при каждом новом вхождении в цикл,
называется
a) Индексом.
b) Параметром цикла.
c) Размером шагом цикла.
d) Шагом цикла.
11) Ниже в табличной форме представлен фрагмент базы данных о результатах
тестирования учащихся (используется стобалльная шкала):
Фамилия
Аганян
Воронин
Григорчук
Роднина
Сергеенко
Черепанова
Пол
ж
м
м
ж
ж
ж
Математика
82
43
54
71
33
18
Русский язык
56
62
74
63
25
92
Химия
46
45
68
56
74
83
Сколько записей в данном фрагменте удовлетворяют условию
«Пол=’м’ ИЛИ Химия>Биология»?
1)
2)
3)
4)
5
2
3
4
12) Язык Delphi базируется на расширении языка:
a) PASCAL
b) FORTRAN
c) ASSEMBLER
Информатика
32
74
75
82
38
28
Биология
70
23
83
79
46
61
d) BASIC
13) В системе счисления с некоторым основанием число 17 записывается в виде 101.
Укажите это основание.
14) Формулой F=A V B выражается:
a) логическое сложение;
b) логическое умножение;
c) логическое вычитание;
d) логическое отрицание.
15) Для каждого термина из левой колонки, необходимо указать понятие в правой
колонке, являющейся его составной частью:
1. Байт
2. Запись
3. Гипертекст
4. Презентация
5. Меню
1. Поле
2. Ссылка
3. Пункт
4. Бит
5. Слайд
Практическая часть
Задания
1.
Ответить на тест по теоретической части (30 баллов).
2.
Данный текст оформить в Microsoft Word по образцу (30 баллов).
Свойства алгоритма.
При записи алгоритма необходимо обеспечить, чтобы он обладал рядом свойств.
Однозначность алгоритма, под которой понимается единственность толкования
исполнителем правил и порядка выполнения действий. Для этого алгоритм должен
быть записан командами из системы команд исполнителя. Для нашего примера
исполнитель должен понимать такую запись действий, как сложить числа А и В.
Конечность алгоритма – обязательность завершения каждого из действий и всего
алгоритма в целом. Наш алгоритм обладает этим свойством, так как запись действий
исполнителя завершается записью об окончании алгоритма.
Результативность алгоритма, предполагающая, что его выполнение завершится
получением определённых результатов. В нашем примере всегда для целых чисел А и В
может быть вычислена сумма.
Массовость, т.е. возможность применения алгоритма к целому классу задач, отвечающих
общей постановке задачи. Для того, чтобы алгоритм обладал свойством массовости,
следует составлять его с использованием обозначения величин и избегая конкретных
значений. Наш алгоритм позволяет правильно посчитать сумму не только для чисел 2 и 3,
но и для любой пары целых чисел.
Правильность алгоритма, под которой понимается способность алгоритма выдавать
правильные результаты решения поставленной задачи. В нашем примере используется
правильная формула сложения целых чисел, и для любой пары целых чисел результат
выполнения алгоритма будет равен их сумме.
Основные правила записи программы:
Все операторы записываются только латинскими буквами.
Все данные имеют имена (идентификаторы) и обозначаются только латинскими буквами
и цифрами. Разрешается использовать прописные и строчные буквы.Например, diaMEter,
Abba1, p23ef,s.
Целые числа записываются как обычно: 23;-17;+44;
Действительные числа (дробные) записываются с десятичной точкой (но не запятой!):
1.05, -15.75, или в экспоненциальной форме: 3.7Е+3 (3.7 умножить на 10 в степени 3, т.е.
3700). Действительное число может содержать только конечное число знаков после
запятой, поэтому все вычисления выполняются приближённо, то есть с некоторой
погрешностью.
Текстовые данные (слова, символы) записываются в апострофах (‘’) и внутри апострофов
можно использовать русские буквы. Например, ‘ф2’,’вычисленная площадь=’ и т.п.
Везде, где надо, можно вводить замечания, называемые комментариями. Комментарии
записываются в фигурных скобках {}. Например, {начало программы} или {blok nomer 1}
и т.п.
Программирование в системе Турбо Паскаль.
Язык Паскаль был разработан швейцарским учёным Никлаусом Виртом в начале 70-х годов, как язык
обучения программированию. Язык был назван в честь великого французского учёного Блеза Паскаля
(1623-1662), который создал первое в мире вычислительное устройство механического типа.
Язык Паскаль по достоинству считается важнейшим инструментом для обучения
методам структурного программирования. Для повышения качества и скорости
разработки программ в середине 80-х гг. была создана система программирования
Турбо Паскаль. Слово Турбо в названии системы программирования – это отражение
торговой марки фирмы-разработчика Borland International, Inc. (США).
Систему программирования Турбо Паскаль называют интегрированной средой
программирования, так как она объединяет в себе возможности ранее разрозненных
средств, используемых при разработке программ: редактора текстов, компилятора,
компоновщика, отладчика, и при этом обеспечивает программисту великолеп0ные
сервисные возможности.
3.
Выполнить предложенные задания Zadanie3.xls в Microsoft Excel (30 баллов).
4.
Создать базу данных в Microsoft Access (30 баллов).
А) Создать таблицу СТУДЕНТЫ со следующими полями
Номер
Фамилия
Имя
Отчество
Дата рождения
Пол
Группа
Дом. адрес
Б) Ввести 5 записей.
В) Создать форму для ввода данных, дополнить БД до 10 записей.
Г) Создать запрос-выборку студентов женского пола, не проживающих в
Новосибирске.
5.
Рассказать об основных возможностях 3-4 офисных приложений Microsoft Office и
сохранить в формате WEB-страницы. (40 баллов)
"Образец"
Свойства алгоритма .
  Однозначность алгоритма,
1[1]
под которой понимается единственность
толкования исполнителем правил и порядка выполнения действий. Для этого
алгоритм должен быть записан командами из системы команд исполнителя. Для
нашего примера исполнитель должен понимать такую запись действий, как сложить
числа А и В.
1[1]
Алгоритм-это последовательность команд, осуществляющая переход
от исходных данных к конечным результатам.
  Конечность алгоритма – обязательность завершения каждого из действий и
всего алгоритма в целом. Наш алгоритм обладает этим свойством, так как запись
действий исполнителя завершается записью об окончании алгоритма.
  Результативность алгоритма, предполагающая, что его выполнение
завершится получением определённых результатов. В нашем примере всегда для
целых чисел А и В может быть вычислена сумма.

Массовость, т.е. возможность применения алгоритма к целому классу задач,
отвечающих общей постановке задачи. Для того, чтобы алгоритм обладал свойством
массовости, следует составлять его с использованием обозначения величин и избегая
конкретных значений. Наш алгоритм позволяет правильно посчитать сумму не только
для чисел 2 и 3, но и для любой пары целых чисел.

Правильность алгоритма, под которой понимается способность алгоритма
выдавать правильные результаты решения поставленной задачи. В нашем примере
используется правильная формула сложения целых чисел, и для любой пары целых
чисел результат выполнения алгоритма будет равен их сумме.
Основные правила записи программы2[2]:
правило 1: правило 1: Все операторы записываются только латинскими буквами.
правило 2: правило 2: Все данные имеют имена (идентификаторы) и обозначаются
только латинскими буквами и цифрами. Разрешается использовать прописные и
строчные буквы. Например, diaMEter, Abba1, p23ef,s.
правило 3: правило 3: Целые числа записываются как обычно: 23;-17;+44;
правило 4: правило 4: Действительные числа (дробные) записываются с десятичной
точкой (но не запятой!): 1.05, -15.75, или в экспоненциальной форме: 3.7Е+3 (3.7
умножить на 10 в степени 3, т.е. 3700). Действительное число может содержать
только конечное число знаков после запятой, поэтому все вычисления выполняются
приближённо, то есть с некоторой погрешностью.
правило 5: правило 5: Текстовые данные (слова, символы) записываются в апострофах ('')
и внутри апострофов можно использовать русские буквы. Например,
‘ф2’,’вычисленная площадь=’ и т.п.
2[2]
Программа- это алгоритм на языке программирования.
ПРОГРАММИРОВАНИЕ В СИСТЕМЕ
ТУРБО ПАСКАЛЬ.
Язык Паскаль был разработан швейцарским учёным Никлаусом Виртом в начале 70-х годов, как язык
обучения программированию. Язык был назван в честь великого французского учёного Блеза Паскаля
(1623-1662), который создал первое в мире вычислительное устройство механического типа.
Язык Паскаль по достоинству считается важнейшим инструментом для обучения
методам структурного программирования. Для повышения качества и скорости
разработки программ в середине 80-х гг. была создана система программирования
Турбо Паскаль. Слово Турбо в названии системы программирования – это отражение
торговой марки фирмы-разработчика Borland International, Inc. (США).

—©…§®
Выполните задания по оформлению текста:
1) 1) Выделите заголовки разделов и основные термины в тексте (формат шрифта;
абзацные отступы)
2) 2) Свойства алгоритма оформите в виде маркированного списка. В качестве
маркера используйте символ  из набора Symbol. Сделайте маркер красного цвета;
шрифтом 16пт; отступ маркера на 1 см; отступ текста на 0.5 см.
3) 3) Правила записи программы оформите в виде нумерованного списка. Нумерацию
используйте такую: правило 1: правило 2: правило 3: и т.д.
Номера правил оформите полужирным шрифтом, синего цвета, рамер шрифта-14 пт.
Положение номера- на 0,5 см; по центру; отступ текста 1 см.
4) 4) Вставьте колонтитулы (курсив; 12пт)
a) a) Верхний: Некоторые правила языка Паскаль
b) b) Нижний: НГПУ кафедра информатики
вставьте дату (с помощью панели колонтитула)
5) 5) Вставьте сноски в заголовках (курсив; 12пт; нумерация I, II, III)
a) a) К слову АЛГОРИТМ: последовательность команд, осуществляющая переход
от исходных данных к конечным результатам.
b) b) К слову ПРОГРАММА: алгоритм на языке программирования
6) 6) Вставьте номера страниц (номер внизу и справа; начать с 6 стр.)
7) 7) Вставьте в конце документа символы с помощью меню ВСТАВКА | СИМВОЛ:
(размер 18пт; полужирный шрифт; цвет зелёный)
a) a)      (из набора Symbol)
b) b) длинное тире, авторское право, многоточие, параграф, охраняемый
знак (из набора специальные символы)
8) 8) Вставьте разрыв страницы перед пунктом программирование в системе Турбо
Паскаль.
9) 9) Сделайте предварительный просмотр документа.
2. Группа «Непрофессиональные программисты»
А. Когда я стану миллионером?
Входной файл:
Выходной файл:
INPUT.TXT
OUTPUT.TXT
2 секунды на
Ограничение времени:
тест
Максимальная оценка: 15 баллов
Буратино нашел монеты на сумму в N рублей. Лиса Алиса и кот Базилио уговорили
Буратино отдать деньги в банк под хороший процент годовых – P. Помогите Буратино
подсчитать, через сколько лет он станет миллионером.
Входные данные
В первой строке записано целое число N (1 ≤ N ≤ 10 000).
Во второй строке указан процент годовых P (Целое число, 1<= P <= 100).
Выходные данные
Записать в выходной файл одно число, равное количеству лет, после которых у Буратино
на счету будет больше или ровно 1000 000 рублей.
Пример входного и выходного файлов
INPUT.TXT
10000
OUTPUT.TXT
7
100
Б. Какая тенденция?
Входной файл:
Выходной файл:
Ограничение времени:
Максимальная оценка:
INPUT.TXT
OUTPUT.TXT
2 секунды на тест
20 баллов
Изучается тенденция поведения курса доллара за некоторый период, падает или нет.
Будем считать, что если за текущий период, дней падений курса было больше, чем дней
когда курс не менялся или рос, то тенденция к падению имеет место.
Входные данные
В первой строке записано число N (1 ≤ N ≤ 1000), количество дней.
Далее в N строках курс доллара в рублях за i- день.
Выходные данные
Записать в выходной файл одно слово – ‘YES’, если дней когда курс падал больше и
‘NO’ – в противном случае.
Примеры входного и выходного файлов
INPUT.TXT
6
30
29
28
29
30
29
OUTPUT.TXT
YES
В. Совершенство
Входной файл:
Выходной файл:
Ограничение времени:
Максимальная оценка:
INPUT.TXT
OUTPUT.TXT
2 секунд на тест
35 баллов
Натуральное число называется «совершенным», если оно равно сумме всех своих
делителей, отличных от него. Проверьте данное число на «совершенство».
Формат входных данных
В первой строке указано число (2<= N <=1000000).
Формат выходных данных
Выведите в выходной файл одно слово – ‘YES’, если число «совершенно»,
‘NO’ – в противном случае.
Пример
INPUT.TXT
OUTPUT.TXT
6
YES
Г. Подарочный набор
Входной файл:
Выходной файл:
Ограничение времени:
Максимальная оценка:
INPUT.TXT
OUTPUT.TXT
2 секунд на тест
10 баллов
В подарочный набор школьника входит три ручки, один набор фломастеров, 4 общие
тетради. В наличии имеются A ручек, B наборов фломастеров и C общих тетрадей.
Сколько может получиться подарочных наборов.
Формат входных данных
В первой строке даны три целых числа A, B, C.
Формат выходных данных
Выводится целое число, равное количеству полученных подарочных наборов.
Пример
Input.txt
Output.txt
19 7 23
5
3. Группа «Профессионалы»
Задача 1. “Жадные дарители подарков”
Максимальная
оценка:
Имя входного файла:
Имя выходного
50 баллов
input.txt
output.txt
файла:
Ограничение по
времени:
Ограничение по
памяти:
1 секунда на тест
16 Мб
На праздники принято дарить друг другу подарки. Каждый человек откладывает на
покупку подарков некоторую сумму денег и делит ее поровну среди тех людей, которым
он хочет их подарить. Однако, всегда найдутся люди, которые могут потратить больше,
чем другие (или, по крайней мере, имеют больше знакомых).
Рассмотрим некоторые группу людей. Для каждого члена этой группы указана
сумма денег, которую он планирует потратить на подарки, и дан список друзей, кому он
эти подарки хочет подарить. Вам нужно написать программу, которая вычислит, на
сколько больше (или меньше) каждый человек отдает, нежели получает взамен.
Входные данные
В первой строке входного файла записано целое число N — количество членов в
группе (1  N  10).
В следующей строке записано через пробел N имен членов группы. В следующих N
строках дана информация о каждом члене группы. Каждая строка содержит имя человека,
количество денег, которые он хочет потратить на подарки, количество людей, кому он эти
подарки дарит, и, наконец, перечень имен этих людей.
Все имена записаны маленькими латинскими буквами, их длина не превышает 12.
У каждого человека сумма денег — это неотрицательное целое число, не превышающее
2000.
Выходные данные
В выходной файл для каждого члена группы на отдельной строке нужно
напечатать его имя и через пробел чистую прибыль (или потерю), которую он получит
(или истратит). Имена в группе нужно писать в том же порядке, в котором они впервые
появляются во входном файле.
Все числа целые. Каждый человек отдает одинаковую максимально возможную
целую сумму денег каждому своему другу. Все не розданные деньги остаются у их
хозяина в качестве прибыли.
Примеры
input.txt
output.txt
5
dave 302
dave laura owen vick amr
laura 66
dave 200 3 laura owen vick
owen -359
owen 500 1 dave
vick 141
amr 150 2 vick owen
amr -150
laura 0 2 amr vick
vick 0 0
3
liz -3
liz steve dave
steve -24
liz 30 1 steve
dave 27
steve 55 2 liz dave
dave 0 2 steve liz
Задача 2. " Брошюра"
Максимальная оценка:
Имя входного файла:
Имя выходного файла:
Ограничение по времени:
Ограничение по памяти:
50 баллов
input.txt
output.txt
1 секунда на тест
16 Мб
При печати документов, как правило, первой печатается первая страница, затем вторая,
третья и т.д. При создании брошюр порядок печати страниц изменяется. А именно: на одном листе
бумаги распечатывается 4 страницы, по две на каждой стороне листа. Страницы располагаются таким
образом, что когда вы сложите все листы по порядку, затем свернете их все вместе пополам, то
страницы будут расположены в правильном порядке, как в обычной книге.
Например, 4-х страничная брошюра может быть распечатана на одном листе бумаге так, как
показано на рисунке ниже. Лицевая сторона будет содержать страницы 4 и 1, оборотная – 2 и 3.
Лицевая сторона листа
------------|
|
|
| 4 | 1 |
|
|
|
-------------
Оборотная сторона листа
------------|
|
|
| 2 | 3 |
|
|
|
-------------
Напишите программу, которая по заданному количеству страниц брошюры указывает порядок
их печати.
Входные данные
Входной файл содержит положительное целое число n (n  100) — количество
страниц брошюры.
Выходные данные
В выходной файл требуется вывести последовательность строк, содержащих
номера страниц, которые печатаются на каждой стороне листа так, как показано в
примерах. Если заданное количество страниц не заполняет полностью лист бумаги, то
вместо номера требуется напечатать слово Blank. Если лицевая или оборотная стороны
листа оказываются полностью пустыми, то в выходном файле не требуется создавать
строку для этой стороны листа. Причем, строки указываются в возрастающем порядке по
листам, сначала указываются страницы лицевой стороны, затем оборотной. Каждая
строка начинается со слова Sheet, за которым через пробел следует номер листа, затем
указывается сторона листа: front — лицевая, back — оборотная, а далее — номера
страниц брошюры. Не забывайте ставить также запятые и двоеточие, как указано в
примерах!
Примеры
input.txt
output.txt
1
14
Sheet 1, front: Blank, 1
Sheet
Sheet
Sheet
Sheet
Sheet
Sheet
Sheet
1,
1,
2,
2,
3,
3,
4,
front:
back :
front:
back :
front:
back :
front:
Blank, 1
2, Blank
14, 3
4, 13
12, 5
6, 11
10, 7
Sheet 4, back : 8, 9
4
Sheet 1, front: 4, 1
Sheet 1, back : 2, 3
Задача 3. " О многоугольнике"
Максимальная
оценка:
Имя входного
файла:
Имя выходного
файла:
Ограничение по
времени:
Ограничение по
памяти:
50 баллов
input.txt
output.txt
1 секунда на тест
16 Мб
На координатной плоскости X, Y задан прямоугольник P с целочисленными
координатами вершин и со сторонами, параллельными координатным осям. Рассмотрим
выпуклый многоугольник S, заданный последовательностью его вершин, координаты
которых целочисленные. Эта последовательность вершин упорядочена обходом вдоль S
по часовой стрелке S = s1, s2, … , sn. Известно, что прямоугольник P может пересекаться с
многоугольником S лишь в вершинах многоугольника (никакая часть стороны
прямоугольника P не лежит ни на какой стороне многоугольника S). Требуется написать
программу нахождения части многоугольника S, лежащей внутри прямоугольника P.
Входные данные
В первой строке входного файла записано четыре числа — координаты двух
противоположных вершин прямоугольника P. Во второй строке находится одно целое
число n — количество вершин многоугольника S (2 < n < 10). В следующих n строках
даны координаты его вершин, по два целых числа в строке, записанные через пробел. Все
координаты по модулю не превосходят 100.
Выходные данные
В первую строку выходного файла необходимо записать целое число L —
количество сторон многоугольника S, находящихся внутри прямоугольника P. В
следующие K строк нужно вывести эти стороны многоугольника в порядке их появления
во входном файле. Каждая сторона задается двумя целыми числами — номерами вершин
многоугольника S, указанными в порядке обхода его по часовой стрелке.
Пример
input.txt
output.txt
2 1 10 6
5
9
3 4
3 6
4 5
5 7
5 6
6 6
6 7
7 4
9 1
7 3
5 1
2 2
1 3
2 5
2 (5, 7)
1 (3, 6)
3 (6, 6)
(10, 6)
9 (2, 5)
4 (7, 4)
8 (1, 3)
5 (7, 3)
Задача 4. " Сплетницы "
Максимальная
оценка:
Имя входного
файла:
Имя выходного
файла:
Ограничение по
времени:
Ограничение по
памяти:
50 баллов
input.txt
output.txt
1 секунда на тест
16 Мб
Домохозяйки проводят много времени за телефонными разговорами с подругами.
Как только одной из них становится что-нибудь известно, она садится за телефон и
сообщает свежую сплетню подругам. С каждой из своих подруг домохозяйка заканчивает
разговор через разное время.
Напишите программу, вычисляющую минимальное время, за которое сплетня
дойдет от домохозяйки-распространительницы свежей сплетни, живущей в дома N, до
другой, живущей в доме M.
Входные данные
В первой строке файла input.txt содержится целое число K — количество
домохозяек (1 ≤ K ≤ 100). Во второй строке записаны целые числа N и M (1 ≤ N, M ≤ 100).
В каждой из следующих строк располагаются по три целых числа, из которых
первые два числа — это номера домов домохозяек, которые любят разговаривать по
телефону друг с другом, третье число — время разговора между ними.
Выходные данные
В файл output.txt
необходимо выдать целое число — минимальное время
телефонных разговоров, за которое сплетня из дома N дойдет в дом M. Если же сплетня
не может дойти до адресата, то выведите слово ‘NO’.
Пример
input.txt
output.txt
6
3
1 7
1 2 2
1 3 1
3 6 1
3 7 2
6 7 1
2 4 1
Задача 5. “Расстановка ладей”
Максимальная
оценка:
Имя входного файла:
Имя выходного
файла:
Ограничение по
времени:
Ограничение по
памяти:
50 баллов
input.txt
output.txt
10 секунд на тест
16 Мб
В шахматах ладья может ходить вдоль по вертикали или горизонтали на любое количество
клеток. Мы рассмотрим уменьшенную шахматную доску (размером не более 4×4) со стенками, через
которые ладья не может проходить. Задача состоит в расстановке на такой доске как можно большего
количества ладей, таким образом, чтобы они не были под ударом. Ладьи, расположенные на одной
вертикали или горизонтали не находятся под ударом, если между ними есть хотя бы одна стенка.
На рисунке показана доска с правильно (слева) и с неправильно (справа) расположенными
ладьями.
Обозначает
стенку
Напишите программу, которая по заданному описанию доски вычисляет, какое максимальное
количество ладей, не находящихся под ударом, может быть расставлено.
Входные данные
В первой строке файла input.txt целое число N (1 ≤ N ≤ 4). Следующие N строк описывают
строки доски, '.' описывает пустую клетку, 'X' — стену.
Выходные данные
В файл output.txt необходимо вывести максимальное количество ладей, которые можно
расставить на данной шахматной доске.
Пример
input.txt
4
.X..
....
XX..
....
output.txt
5
Download