См. также:


Результаты олимпиады

  Санкт-Петербургские Олимпиады по Информатике

Задачи 1-ой командной олимпиады школьников СПб 1993 года

Задача 1 Задача 2 Задача 3 Памятка участнику

Задача 1

Имеется условная шахматная доска в виде матрицы 8х8 элемен- тов. "белые" элементы матрицы имеют значение 0, "черные" - 1.

На эту доску выставляются три белые шахматные фигуры. Элементы матрицы имеющие значение 1 или "черные" клетки шахматной доски, находящиеся под боем этих фигур, обнуляются, т.е. элементам матрицы присваивается значение 0. Ваша программа должна подсчитать и вывести на экран дисплея общее количество оставшихся элементов матрицы, имеющих значение 1. Исходные данные находятся в ASCII-файле z1.dat в следующем формате:

  • В первой строке количество N наборов исходных данных.
  • В каждой из следующих N строк последовательность наименова- ния шахматных фигур и полей, на которых они располагаются, разделенная одним пробелом.

Для обозначения фигур используется кириллица: Кр - король, Ф - ферзь, Л - ладья, С - слон, К - конь, п. - пешка. Поле обозна- чается маленькой латинской буквой и цифрой. Количество одноимен- ных фигур не ограничено, может быть, например, и три ферзя. Все фигуры "бьют" по шахматным правилам. Исходные данные корректны, и их проверка не требуется.

Результаты выводятся на экран дисплея. Для каждого набора исход- ных данных выводится сам набор и ответ.

ПРИМЕР файла исходных данных Z1.DAT

2
п.c2 п.a2 п.b2
п.c2 п.a2 п.e2

В результате работы Вашей программы с данным файлом на экране дисплея должно быть:

      { Справочная информация }
п.c2 п.a2 п.b2  ответ: 30
п.c2 п.a2 п.e2  ответ: 32

Задача 2

Имеется "экран" 10х10 элементов. На "экране" может быть изображена буква Т или буква О или буква Х. Ваша программа дол- жна распознать образ буквы. Определение букв:

Буква О - заполненный прямоугольник с прямоугольным вырезом внутри.
Буква Т- два прямоугольника, причем один лежит на другом и верхний выступает относительно нижнего вправо и влево.
Буква Х- любое другое состояние экрана.

ПРИМЕЧАНИЕ. При состоянии "экрана", изображающим буквы О или Т, незанятые изображением элементы "экрана" - пустые.

ПРИМЕРЫ букв:

Буква О Буква ТБуква Х
0000111111
0000110111
0000111111
0000111111
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0111111100
0111111100
0000010000
0000010000
0000000000
0000000000
0000001111
0000001101
0000001111
0000000000
0000000000
0001111100
0000010000
0000010000
0000000000

Исходные данные находятся в ASCII-файле Z2.DAT в следующем формате:

  • В первой строке количество блоков данных (букв) в этом файле.
  • Каждый блок данных (буква) отделяется от другого пустой строкой.
  • Каждая буква определяется таблицей символов из десяти строк по десять символов в строке, 0 - пустые элементы "экрана", 1 - закрашенные элементы экрана.
  • Вывод результатов производится на экран дисплея в виде последовательности букв.

    Пример файла Z2.DAT:

    2
    0000000000
    0000000000
    0001111110
    0001100110
    0001111110
    0000000000
    0000000000
    0000000000
    0000000000
    0000000000
    
    0000000000
    0000000000
    0000000000
    0011111000
    0000100000
    0000100000
    0000100000
    0000000000
    0000001000
    0000000000

    В результате работы Вашей программы с данным файлом на экране дисплея должно быть

           { Справочная информация }
    Ответ: ОХ

    Задача 3

    Декларативная часть (описание переменных) во многих языках программирования высокого уровня выглядит красивее, если текст специальным образом отформатирован по колонкам. Ваша задача написать программу, которая форматирует декларативную часть, написанную на некотором языке программирования.

    Исходные данные состоят не более чем из 50 строк, каждая из которых содержит (в указанном порядке):

    • идентификатор (имя переменной);
    • символ двоеточие (:);
    • идентификатор (тип переменной);
    • символ точка с запятой (;);
    • необязательный комментарий, который начинается с двойного тире (--) и продолжается до конца строки.

    Пробелы между любыми двумя пунктами могут как отсутствовать, так и присутствовать в любом количестве. Идентификатор может состоять из больших и маленьких латинских букв, цифр и символа подчеркивания (_). Текст комментария содержит по крайней мере один символ.

    Программа должна отформатировать заданный текст описания по следующим правилам:

    • Имена переменных начинаются с третьей колонки.
    • Все двоеточия расположены в одной колонке, через одну после самого длинного имени переменной.
    • Идентификатор типа идет через пробел после двоеточия.
    • Точка с запятой расположена непосредственно после идентифи- катора типа, без пробелов.
    • Все символы начала комментария (--) расположены друг под другом, через две колонки после самого длинного описания ти- па.
    • Первое слово комментария начинается через пробел после сим- вола начала комментария (--).

    Исходные данные программа должна считывать из файла D:\PRINT.DAT, а отформатированный текст помещать в файл D:\PRINT.SOL.

    ПРИМЕР входного файла D:\PRINT.DAT:

    ----------------------------------------------------------------
     code: codeblock;
    ident:type;
     lines : integer;
     linenum :  integer ; -- line number counter for loop
                                           maxidentlen : integer ;
     dummy:                                              integer;
    list     :   array_of_real    ;  --This is a big list of things;
    ----------------------------------------------------------------

    ОБРАЗЕЦ выходного файла D:\PRINT.SOL для описанного примера:

    ----------------------------------------------------------------
      code        : codeblock;
      ident       : type;
      lines       : integer;
      linenum     : integer;       -- line number counter for loop
      maxidentlen : integer;
      dummy       : integer;
      list        : array_of_real; -- This is a big list of things;
    ----------------------------------------------------------------

    ПАМЯТКА УЧАСТНИКУ

    1) Для проведения тестирования Вы должны скопировать на диске- ту Жюри два файла z?.exe и z?.pas, тестируется только файл z?.exe, а файл z?.pas необходим жюри для контроля. Имена файлов:

    • Задача 1. - z1.exe и z1.pas
    • Задача 2. - z2.exe и z2.pas
    • Задача 3. - z3.exe и z3.pas

    2) Ваша программа должна выводить на экран дисплея следующую обязательную справочную информацию:

    • Наименование олимпиады
    • Наименование команды
    • Фамилия, имя, место учебы, класс (курс) всех членов команды
    • Номер задачи

    Пример:

    Городская командная олимпиада.
    Команда: ЛДП-1
         Петров Василий  1206 шк  11 кл
         Петров Иван     Техническая школа   11 кл
         Петров Роман    1206 шк  11 кл
         Петров Илья     ГУ 1 курс
    Задача 1

    3) Если при тестировании программа работает больше 2 минут, очки не начисляются.

    4) Все вопросы по задачам подаются представителю Жюри в письменном виде. Вопрос должен быть сформулирован так, что- бы на него можно было ответить односложно (да,нет).

  • Используются технологии uCoz