Задание 8 Урок 22 (вопрос по итерации выражения)
Primary tabs
Напишите функцию, которая получает на вход произвольную строку вида:
5*(3+4)-7*9+3*(2+(2-7))(арифметическое выражение со скобками любого уровня вложенности и операциями умножения, вычитания и сложения)
и в качестве ответа возвращает результат этого выражения.
Рекомендация: сначала убедитесь, что число открывающих скобок, равно числу закрывающих.
Примечание: алгоритмически похожая задача использовалась на собеседовании стажеров в DataArt.
var S :string; N :integer ; function recurseStringHandle(s: string; i: integer): string; begin if (i = length(s)) then begin result := s[i] end else begin result := s[i] + recurseStringHandle(s, i+1); end; end; begin //writeln('Vvedite virajenie'); //readln(S); S := '5*(3+4)-7*9+3*(2+(2-7))'; N := 1; writeln('resultat raven: '); writeln(recurseStringHandle(S, N)); readln(); end.
консоль:
resultat raven: 5*(3+4)-7*9+3*(2+(2-7))
- Log in to post comments
- 620 reads
vedro-compota
Fri, 01/05/2024 - 18:56
Permalink
как рекурсивное чтение и
как рекурсивное чтение и конкатенация строки работает, можно двигаться дальше, ближе к решению)
_____________
матфак вгу и остальная классика =)