ВУЗ:
Составители:
Рубрика:
. Практикум по курсу «Алгоритмизация и программирование». Часть 2
7. Дана символьная строка, которая содержит правильное скобочное вы-
ражение. Для каждой пары скобок (открывающей и соответствующей ей за-
крывающей) распечатать номера их позиций в строке, упорядочив пары:
а) по возрастанию номеров открывающих скобок;
б) по возрастанию номеров закрывающих скобок.
8. Дана символьная строка, содержащая правильно записанное математи-
ческое выражение следующего вида:
<формула>::=<цифра>|M(<формула>,<формула>)
|m(<формула>,<формула>)
M – операция вычисления max из двух выражений, m - операция вычисле-
ния min из двух выражений. Написать функцию вычисления значения этого
выражения.
9. Дана символьная строка, содержащая правильно записанное логиче-
ское выражение следующего вида:
<формула> ::= T | F | And(<формула> , <формула>) |
Or(<формула> , <формула>) | Not (<формула>)
And – операция логического И, Or – операция логического ИЛИ, Not -
операция логического НЕ.
Написать функцию вычисления этого выражения (функция должна воз-
вращать true, если значение выражения равно T, false – в противном слу-
чае).
10. Дана символьная строка, содержащая правильно записанное арифме-
тическое выражение. Написать функцию перевода выражения в постфиксную
форму. Постфиксной формой выражения называется такая запись, в которой
знак операции следует за операндами. Такая запись не содержит скобок.
Например, выражение a * b в постфиксной форме имеет вид ab *, a * b+c име-
ет вид ab * c +, a * (b + c) имеет вид abc + *.
Для решения задачи можно использовать следующий алгоритм. Рассмот-
риваются поочередно все символы строки. В стек записывается открывающая
скобка, и выражение далее анализируется посимвольно слева направо. Если
встречается операнд (число или переменная), то он сразу помещается в стро-
ку-результат. Если встречается открывающая скобка, то она заносится в стек,
а если встречается закрывающая скобка, то из стека извлекаются находящие-
77
. Практикум по курсу «Алгоритмизация и программирование». Часть 2
7. Дана символьная строка, которая содержит правильное скобочное вы-
ражение. Для каждой пары скобок (открывающей и соответствующей ей за-
крывающей) распечатать номера их позиций в строке, упорядочив пары:
а) по возрастанию номеров открывающих скобок;
б) по возрастанию номеров закрывающих скобок.
8. Дана символьная строка, содержащая правильно записанное математи-
ческое выражение следующего вида:
<формула>::=<цифра>|M(<формула>,<формула>)
|m(<формула>,<формула>)
M – операция вычисления max из двух выражений, m - операция вычисле-
ния min из двух выражений. Написать функцию вычисления значения этого
выражения.
9. Дана символьная строка, содержащая правильно записанное логиче-
ское выражение следующего вида:
<формула> ::= T | F | And(<формула> , <формула>) |
Or(<формула> , <формула>) | Not (<формула>)
And – операция логического И, Or – операция логического ИЛИ, Not -
операция логического НЕ.
Написать функцию вычисления этого выражения (функция должна воз-
вращать true, если значение выражения равно T, false – в противном слу-
чае).
10. Дана символьная строка, содержащая правильно записанное арифме-
тическое выражение. Написать функцию перевода выражения в постфиксную
форму. Постфиксной формой выражения называется такая запись, в которой
знак операции следует за операндами. Такая запись не содержит скобок.
Например, выражение a * b в постфиксной форме имеет вид ab *, a * b+c име-
ет вид ab * c +, a * (b + c) имеет вид abc + *.
Для решения задачи можно использовать следующий алгоритм. Рассмот-
риваются поочередно все символы строки. В стек записывается открывающая
скобка, и выражение далее анализируется посимвольно слева направо. Если
встречается операнд (число или переменная), то он сразу помещается в стро-
ку-результат. Если встречается открывающая скобка, то она заносится в стек,
а если встречается закрывающая скобка, то из стека извлекаются находящие-
77
Страницы
- « первая
- ‹ предыдущая
- …
- 75
- 76
- 77
- 78
- 79
- …
- следующая ›
- последняя »
