Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 77 стр.

UptoLike

. Практикум по курсу «Алгоритмизация и программирование». Часть 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