Проанализировать некоторое символьное выражение a$ с входящими в него скобками - QBasic
Формулировка задачи:
Нужно решить задачку, помогите, кто чем может).
Проанализировать некоторое символьное выражение a$ с входящими в него скобками (типа: "(",")","[","]","{","} на правильность расстановки скобок ( возможно вложенных). Вывести ответ в форме: "верно/неверно". Исходная информация ( символьные выражения a$) вводятся с клавиатуры.
Решение задачи: «Проанализировать некоторое символьное выражение a$ с входящими в него скобками»
textual
Листинг программы
- DECLARE FUNCTION Fun% (S AS STRING)
- DIM S AS STRING
- CLS
- INPUT S
- R = Fun(S)
- CLS
- PRINT S
- IF R > 0 THEN
- LOCATE 2, R: PRINT "^"
- ELSE
- LOCATE 2, 1: PRINT "OK"
- END IF
- FUNCTION Fun% (S AS STRING)
- DIM I AS INTEGER, J AS INTEGER, R AS INTEGER, K AS INTEGER
- FOR I = 1 TO LEN(S)
- SELECT CASE MID$(S, I, 1)
- CASE "("
- K = 1
- FOR J = I + 1 TO LEN(S)
- IF MID$(S, J, 1) = "(" THEN
- K = K + 1
- END IF
- IF MID$(S, J, 1) = ")" THEN
- K = K - 1
- END IF
- IF K = 0 THEN
- R = Fun(MID$(S, I + 1, J - I - 1))
- IF R > 0 THEN
- R = R + I
- END IF
- I = J + 1
- EXIT FOR
- END IF
- NEXT J
- IF K > 0 THEN
- R = I
- END IF
- CASE ")"
- R = I
- CASE "["
- K = 1
- FOR J = I + 1 TO LEN(S)
- IF MID$(S, J, 1) = "[" THEN
- K = K + 1
- END IF
- IF MID$(S, J, 1) = "]" THEN
- K = K - 1
- END IF
- IF K = 0 THEN
- R = Fun(MID$(S, I + 1, J - I - 1))
- IF R > 0 THEN
- R = R + I
- END IF
- I = J + 1
- EXIT FOR
- END IF
- NEXT J
- IF K > 0 THEN
- R = I
- END IF
- CASE "]"
- R = I
- CASE "{"
- K = 1
- FOR J = I + 1 TO LEN(S)
- IF MID$(S, J, 1) = "{" THEN
- K = K + 1
- END IF
- IF MID$(S, J, 1) = "}" THEN
- K = K - 1
- END IF
- IF K = 0 THEN
- R = Fun(MID$(S, I + 1, J - I - 1))
- IF R > 0 THEN
- R = R + I
- END IF
- I = J + 1
- EXIT FOR
- END IF
- NEXT J
- IF K > 0 THEN
- R = I
- END IF
- CASE "}"
- R = I
- END SELECT
- IF R > 0 THEN EXIT FOR
- NEXT I
- Fun = R
- END FUNCTION
Объяснение кода листинга программы
Этот код на языке QBasic анализирует символьное выражение, представленное в переменной S. Он ищет определенные символы и подсчитывает количество скобок (), [], {}), встречающихся в выражении. Вот список действий, которые выполняет этот код:
- Входные данные (символьное выражение) хранятся в переменной S.
- Функция Fun% принимает символьное выражение в качестве входного параметра и возвращает позицию первого открывающего скобка в выражении. Если в выражении нет скобок, функция возвращает 0.
- В основной программе мы сначала вводим символьное выражение, затем вызываем функцию Fun%, чтобы найти позицию первого открывающего скобка.
- Затем мы выводим символьное выражение и, если найдена открывающая скобка, выводим
^
в позицию, соответствующую этой скобке. В противном случае выводимOK
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д