Оптимальні програми обчислення виразів, Детальна інформація
Оптимальні програми обчислення виразів
Шауман А.М. Основы машинной арифметики. - 1979.
Малоземов В.Н. Певный А.Б. Рекуррентные вычисления. - Л., изд. ун-та, 1976.
Додаток 1.
Програмна реалізація алгоритмів POSTFIX та ITP.
Для демонстрації роботи алгоритмів POSTFIX та ITP було складено програму, котра, отримавши на вході список змінних разом із значеннями та арифметичний вираз у інфіксній формі, спочатку переводить вираз у постфіксну форму (функція ITP), а потім обчислює його значення (функція CalculatePostfix).
Обмеження, що накладаються програмою на вхідні дані:
всі змінні позначаються одним символом;
у виразі немає числових констант;
вираз не містить посилання на арифметичні функції;
вираз є правильно записаним (відсутні перевірки на правильність).
Для обчислення виразу в постфіксній формі функція CalculatePostfix використовує стек, реалізований в наступному модулі:
Unit Stack;
Interface
Var S:Array[1..100] Of Real;
Top:Integer;
Procedure Push(Number:Real);
Procedure Pop(Var Number:Real);
Function IsEmpty:Boolean;
Procedure ClearStack;
Implementation
Procedure ClearStack;
Begin
Top:=0;
End;
Procedure Push(Number:Real);
Begin
Inc(Top);
S[Top]:=Number;
End;
Procedure Pop(Var Number:Real);
Малоземов В.Н. Певный А.Б. Рекуррентные вычисления. - Л., изд. ун-та, 1976.
Додаток 1.
Програмна реалізація алгоритмів POSTFIX та ITP.
Для демонстрації роботи алгоритмів POSTFIX та ITP було складено програму, котра, отримавши на вході список змінних разом із значеннями та арифметичний вираз у інфіксній формі, спочатку переводить вираз у постфіксну форму (функція ITP), а потім обчислює його значення (функція CalculatePostfix).
Обмеження, що накладаються програмою на вхідні дані:
всі змінні позначаються одним символом;
у виразі немає числових констант;
вираз не містить посилання на арифметичні функції;
вираз є правильно записаним (відсутні перевірки на правильність).
Для обчислення виразу в постфіксній формі функція CalculatePostfix використовує стек, реалізований в наступному модулі:
Unit Stack;
Interface
Var S:Array[1..100] Of Real;
Top:Integer;
Procedure Push(Number:Real);
Procedure Pop(Var Number:Real);
Function IsEmpty:Boolean;
Procedure ClearStack;
Implementation
Procedure ClearStack;
Begin
Top:=0;
End;
Procedure Push(Number:Real);
Begin
Inc(Top);
S[Top]:=Number;
End;
Procedure Pop(Var Number:Real);
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021