- •Общее описание
- •Замечания о формулировках заданий
- •Ввод исходных данных и вывод результатов
- •Язык Паскаль
- •Язык Visual Basic
- •Языки платформы .Net (c# и vb.Net)
- •Ввод и вывод данных, оператор присваивания
- •1 Кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.
- •Целые числа
- •Логические выражения
- •X2, y2(целые числа, лежащие в диапазоне 1–8). Проверить истинность вы-
- •Условный оператор
- •Оператор выбора
- •Цикл с параметром
- •Вложенные циклы
- •Цикл с условием
- •Последовательности
- •Вложенные циклы
- •Функции с числовыми параметрами
- •Дополнительные задания на процедуры и функции
- •Минимумы и максимумы
- •Одномерные массивы
- •Формирование массива и вывод его элементов
- •Анализ элементов массива
- •Работа с несколькими массивами
- •Удаление и вставка элементов
- •Сортировка массива
- •Серии целых чисел
- •Множества точек на плоскости
- •Двумерные массивы (матрицы)
- •Формирование матрицы и вывод ее элементов
- •Анализ элементов матрицы
- •Преобразование матрицы
- •Диагонали квадратной матрицы
- •Анализ и преобразование слов в строке
- •Дополнительные задания на обработку строк
- •Двоичные файлы
- •Преобразование файла
- •Обработка нетипизированных двоичных файлов
- •Работа с несколькими числовыми файлами. Файлы-архивы
- •Cимвольные и строковые файлы
- •Использование файлов для работы с матрицами
- •Текстовые файлы
- •Основные операции с текстовыми файлами
- •Анализ и форматирование текста
- •Текстовые файлы с числовой информацией
- •Дополнительные задания на обработку текстовых файлов
- •Разбор выражений
- •Перебор с возвратом
- •3 Непосредственных потомка: a с весом 1, b с весом 0 и c с весом −1.
- •Динамические структуры данных
- •Очередь
- •Двусвязный список
- •InsertAfter(l, d), которая вставляет новый элемент со значением d по-
- •Список с барьерным элементом
- •Динамические структуры данных (.Net)
- •Очередь
- •Двусвязный список
- •Список с барьерным элементом
- •Литература
Разбор выражений
Во всех заданиях данного пункта предполагается, что исходные строки,
определяющие выражения, не содержат пробелов. При выполнении заданий
не следует использовать оператор цикла.
Recur14◦ . Вывести значение целочисленного выражения, заданного в виде
строки S. Выражение определяется следующим образом:
<выражение> ::= <цифра> | <выражение> + <цифра> |
<выражение> − <цифра>
Recur15◦ . Вывести значение целочисленного выражения, заданного в виде
строки S. Выражение определяется следующим образом:
<выражение> ::= <терм> | <выражение> + <терм> |
<выражение> − <терм>
<терм>
::= <цифра> | <терм> * <цифра>
Recur16◦ . Вывести значение целочисленного выражения, заданного в виде
строки S. Выражение определяется следующим образом:
<выражение> ::= <терм> | <выражение> + <терм> |
<выражение> − <терм>
<терм>
<элемент>
::= <элемент> | <терм> * <элемент>
::= <цифра> | (<выражение>)
Recur17◦ . Вывести значение целочисленного выражения, заданного в виде
строки S. Выражение определяется следующим образом:
<выражение> ::= <цифра> |
(<выражение><знак><выражение>)
<знак>
::= + | − | *
Recur18◦ . Проверить правильность выражения, заданного в виде непустой
строки S (выражение определяется по тем же правилам, что и в задании
114
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.6
Recur17). Если выражение составлено правильно, то вывести TRUE, иначе
вывести FALSE.
Recur19. Проверить правильность выражения, заданного в виде непустой
строки S (выражение определяется по тем же правилам, что и в зада-
нии Recur17). Если выражение составлено правильно, то вывести 0, в
противном случае вывести номер первого ошибочного, лишнего или недо-
стающего символа в строке S.
Recur20. Вывести значение целочисленного выражения, заданного в виде
строки S. Выражение определяется следующим образом (функция M воз-
вращает максимальный из своих параметров, а функция m — минималь-
ный):
<выражение> ::= <цифра> | M(<выражение> , <выражение>) |
m(<выражение> , <выражение>)
Recur21◦. Вывести значение логического выражения, заданного в виде стро-
ки S. Выражение определяется следующим образом («T» — TRUE, «F» —
FALSE):
<выражение> ::= T | F | And(<выражение> , <выражение>) |
Or(<выражение> , <выражение>)
Recur22. Вывести значение целочисленного выражения, заданного в виде
строки S. Выражение определяется следующим образом (функция M воз-
вращает максимальный из своих параметров, а функция m — минималь-
ный):
<выражение> ::= <цифра> | M(<параметры>) | m(<параметры>)
<параметры> ::= <выражение> | <выражение> , <параметры>
Recur23. Вывести значение логического выражения, заданного в виде стро-
ки S. Выражение определяется следующим образом («T» — TRUE, «F» —
FALSE):
<выражение> ::= T | F | And(<параметры>) | Or(<параметры>)
<параметры> ::= <выражение> | <выражение> , <параметры>
Recur24. Вывести значение логического выражения, заданного в виде стро-
ки S. Выражение определяется следующим образом («T» — TRUE, «F» —
FALSE):
<выражение> ::= T | F | And(<параметры>) |
Or(<параметры>) | Not(<выражение>)
<параметры> ::= <выражение> | <выражение> , <параметры>
Рекурсия