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

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

<параметры>

 ::= 

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