Глава 4. Олимпиады по информатике
4.1. Олимпиада - 89
r89_1 В конце XIX века в Европе появилась игра под названием "Ханойские башни". Реквизит игры состоит из 3 игл, на которых размещается башня из колец. Цель игры - перенести башню с левой иглы(1) на правую(3), причем за один раз можно переносить только одно кольцо, кроме того, запрещается помещать большее кольцо над меньшим. Составить алгоритм решения данной задачи (количества колец- N<10).
r89_2 Составить алгоритм поиска заданного слова в тексте. Слово и текст являются массивами символов заданной длины. Если заданное слово присутствует в тексте, то алгоритм должен возвращать номер позиции совпадения, в противном случае - значение -1.
r89_3 Составить алгоритм заполнения прямоугольной таблицы размером N*N целыми числами от 1 до N*N по спирали.
Пример для N=5.
1 |
2 |
3 |
4 |
5 |
16 |
17 |
18 |
19 |
6 |
15 |
24 |
25 |
20 |
7 |
14 |
23 |
22 |
21 |
8 |
13 |
12 |
11 |
10 |
9 |
r89_4 По кругу стоят N спортсменов с номерами от 1 до N. Начиная с какого-то человека, по кругу удаляется каждыйk-ый спортсмен. После каждого удаления круг смыкается. Составить алгоритм определения последовательности номеров удаляемых спортсменов.
r89_5 Дан какой-то язык программирования, в котором, кроме стандартных конструкций исполнителя, есть еще функция СИМВОЛ (переменная, N). Она выделит N-символ из переменной. Например, СТРОКА:='АБВГДЕЙКА' и А:=CИМВОЛ(СТРОКА,6). Тогда переменная А будет иметь значение Е. Написать программу нахождения первого появления слова КОТ в произвольной переменной СТРОКА, состоящей из 50 символов.
r89_6 Составить алгоритм подсчета количества способов, которыми можно разменять рубль медными монетами (достоинством 1, 2, 3, 5 копеек).
r89_7 Составить алгоритм поиска всех двузначных чисел, сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7, 8, 9.
r89_8 По правилам машинописи и полиграфии после запятой в тексте всегда должен стоять пробел (код 32). Составить алгоритм для исправления ошибок (отсутствия пробела после запятой). Текст является массивом символов произвольной длины, заканчивающийся нулевым символом (код 0 - признак конца текста).
r89_9 Составить алгоритм заполнения таблицы А(10,10) единицами и минус единицами в шахматном порядке.
о89_1 Составить алгоритм преобразования строки S в эквивалентное ей вещественное число. Алгоритм должен обрабатывать необязательный знак и вещественную точку, а также целую и дробную части, каждая из которых может как присутствовать, так и отсутствовать. Представление числа в строке может содержать ведущие пробелы и заканчиваться любым нецифровым символом. При решении считать строку массивом целых, содержащим коды символов. Для получения кода символа его следует заключить в апострофы ('). Например, строка " -327.45A", представленная в виде массива,
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
‘ ‘ |
‘ ‘ |
‘-‘ |
‘3’ |
‘2’ |
‘7’ |
‘.’ |
‘4’ |
‘5’ |
‘A’ |
преобразуется в число -327.45 .
При выполнении преобразований считать, что 'N'-'0'=N для N от 0 до 9.
Примечания: