Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник.docx
Скачиваний:
76
Добавлен:
11.05.2015
Размер:
1.02 Mб
Скачать

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

Во всех заданиях данного пункта предполагается, что исходные строки,

определяющие выражения, не содержат пробелов. При выполнении заданий

не следует использовать оператор цикла.

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(<выражение>)

<параметры> ::= <выражение> | <выражение> , <параметры>

Рекурсия