Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абрамян - III - 1000 задач по программированию.doc
Скачиваний:
82
Добавлен:
29.08.2019
Размер:
295 Кб
Скачать
☆

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

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

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

<выражение>

 ::= 

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

<выражение> – <цифра>

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

<выражение>

 ::= 

<терм> | <выражение> + <терм> |

<выражение> – <терм>

<терм>

 ::= 

<цифра> | <терм> * <цифра>

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

<выражение>

 ::= 

<терм> | <выражение> + <терм> |

<выражение> – <терм>

<терм>

 ::= 

<элемент> | <терм> * <элемент>

<элемент>

 ::= 

<цифра> | (<выражение>)

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

<выражение>

 ::= 

<цифра> |

(<выражение><знак><выражение>)

<знак>

 ::= 

+ | – | *

Recur18º. Проверить правильность выражения, заданного в виде непустой строки S (выражение определяется по тем же правилам, что и в задании 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(<выражение>)

<параметры>

 ::= 

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