Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_Taskbook.doc
Скачиваний:
17
Добавлен:
18.11.2019
Размер:
253.44 Кб
Скачать

Разбор выражений

Proc70.  Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом:

<выражение>  ::= <цифра> | <выражение>+<цифра>  | <выражение>–<цифра>

Proc71.  Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом:

<выражение>  ::= <терм> | <выражение>+<терм>  | <выражение>–<терм> <терм>  ::= <цифра> | <терм>*<цифра>

Proc72.  Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом:

<выражение>  ::= <терм> | <выражение>+<терм>  | <выражение>–<терм> <терм>  ::= <элемент> | <терм>*<элемент> <элемент>  ::= <цифра> | (<выражение>)

Proc73.  Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом:

<выражение>  ::= <цифра> | (<выражение><знак><выражение>) <знак>  ::= + | – | *

Proc74.  Проверить правильность выражения, заданного в виде строки S (выражение определяется по тем же правилам, что и в задании Proc73). Если выражение составлено правильно, то вывести True, иначе вывести False.

Proc75.  Проверить правильность выражения, заданного в виде строки S (выражение определяется по тем же правилам, что и в задании Proc73). Если выражение составлено правильно, то вывести 0, в противном случае вывести номер первого ошибочного (или лишнего) символа в строке S.

Proc76.  Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом ("T" — True, "F" — False):

<выражение>  ::= T | F | And(<операнды>) | Or(<операнды>) <операнды>  ::= <выражение>,<выражение>

Proc77.  Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом ("T" — True, "F" — False):

<выражение>  ::= T | F | And(<операнды>) | Or(<операнды>) <операнды>  ::= <выражение>  | <выражение>,<операнды>

Proc78.  Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом ("T" — True, "F" — False):

<выражение>  ::= T | F | And(<операнды>) | Or(<операнды>) | Not(<выражение>) <операнды>  ::= <выражение>  | <выражение>,<операнды>

Proc79.  Проверить правильность расстановки скобок в строке S. Текст в строке S определяется следующим образом:

<текст>  ::= <элемент>  | <элемент><текст> <элемент>  ::= a | b | c | (<текст>) | [<текст>] | {<текст>} Если текст составлен правильно, то вывести True, иначе вывести False.

Proc80.  Проверить правильность расстановки скобок в строке S (текст в строке S определяется по тем же правилам, что и в задании Proc79). Если текст составлен правильно, то вывести 0; в противном случае вывести номер первой ошибочной скобки или –1, если в строке недостаточно закрывающих скобок.

Деревья

Proc81.  Дано упорядоченное дерево глубины N (> 0), каждая внутренняя вершина которого имеет K (< 9) непосредственных потомков, которые нумеруются от 1 до K. Корень дерева имеет номер 0. Записать в текстовый файл с именем Name все возможные пути, ведущие от корня к листьям (каждый путь записывается в отдельной строке файла). Перебирать пути, начиная с "самого левого" и заканчивая "самым правым", при этом первыми заменять конечные элементы пути.

Proc82.  Дано упорядоченное дерево глубины N (> 0), каждая внутренняя вершина которого имеет K (< 9) непосредственных потомков, которые нумеруются от 1 до K. Корень дерева имеет номер 0. Записать в текстовый файл с именем Name все пути, ведущие от корня к листьям и удовлетворяющие следующему условию: никакие соседние элементы пути не нумеруются одной и той же цифрой. Каждый путь записывается в отдельной строке файла. Порядок перебора путей — тот же, что в задании Proc81.

Proc83.  Дано упорядоченное дерево глубины N (N > 0 — четное), каждая внутренняя вершина которого имеет два непосредственных потомка: A с весом 1 и B с весом –1. Корень дерева C имеет вес 0. Записать в текстовый файл с именем Name все пути от корня к листьям, удовлетворяющие следующему условию: суммарный вес элементов пути равен 0. Каждый путь записывается в отдельной строке файла. Порядок перебора путей — тот же, что в задании Proc81.

Proc84.  Дано упорядоченное дерево глубины N (N > 0) того же типа, что и в задании Proc83. Записать в текстовый файл с именем Name все пути от корня к листьям, удовлетворяющие следующему условию: суммарный вес элементов для любого начального отрезка пути неотрицателен1|неположителен2. Каждый путь записывается в отдельной строке файла. Порядок перебора путей — тот же, что в задании Proc81.

Proc85.  Дано упорядоченное дерево глубины N (N > 0 — четное) того же типа, что и в задании Proc83. Записать в текстовый файл с именем Name все пути от корня к листьям, удовлетворяющие следующим условиям: суммарный вес элементов для любого начального отрезка пути неотрицателен1|неположителен2, а суммарный вес всех элементов пути равен 0. Каждый путь записывается в отдельной строке файла. Порядок перебора путей — тот же, что в задании Proc81.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]