/siaod_1_formulas_and_stack

1-я лабораторная работа по Структурам и алгоритмам обработки данных в ЭВМ. Реализует подсчёт формулы нахождения максимального и минимального элемента из двух заданных ЦИФР. Применяется структура Stack, написанная с использованием символьного массива. Основные функции стека написаны преподавателем (Pop(), Push(), Top(), IsEmpty()). Программа работает с файлом и считывает данные. Результат записывается в другой файл.

Primary LanguageC++

formulas_and_stack

Стек на статическом массиве

1-я лабораторная работа по Структурам и алгоритмам обработки данных в ЭВМ. 
Реализует подсчёт формулы нахождения максимального и минимального элемента из двух заданных ЦИФР.
Применяется структура Stack, написанная с использованием символьного массива. 
Основные функции стека написаны преподавателем (Pop(), Push(), Top(), IsEmpty()). 
Программа работает с файлом и считывает данные. Результат записывается в другой файл. 
  • Задание.

    Используя стек, решить следующую задачу. 
    В текстовом файле F записана без ошибок формула следующего вида:
    
    • <формула> ::= <цифра> | М(<формула>, <формула>) | m(<формула>, <формула>)
    • <цифра> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9,
    где М обозначает функцию max, а m - min. 
    Вычислить как целое число значение данной формулы. 
    Например, М(M(4,5),m(6,M(8,3))). Для реализации АТД Стек использовать массив.
    
  • Алгоритм решения задачи

  1. Считать символ из файла;
  2. В соответствии с функцией (M или m), вызвать данную функцию;
  3. Продолжать вызывать функцию рекуррентно, пока не встретим цифру;
  4. Как только встретили цифру, положить её в стек;
  5. Имея как минимум две цифры в стеке и встретив символ завершения перечисления параметров ‘)’, вынимаем два числа из стека;
  6. В соответствии с функцией сравниваем полученные два числа;
  7. Результат сравнения заносим обратно в стек;
  8. Выходим из функции и продолжаем пункт 3 до тех пор, пока не закончатся все символы завершения перечисления параметров ‘)’.
  • Программная реализация
    • Последовательность действий при программной реализации:
  1. Задать массив необходимого типа и размера, на котором будет реализована структура данных типа стек.
  2. Реализовать алгоритм решения поставленной задачи.
  3. Реализовать основные функции работы со стеком (Push, Pop, IsEmpty, Top).
  4. Реализовать в главной функции корректное считывание данных из файла;
  5. Реализовать функции нахождения минимума и максимума между двумя цифрами (M, m).