Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Андреев_Довгалюк_лабор_СДиА.doc
Скачиваний:
18
Добавлен:
26.03.2015
Размер:
527.87 Кб
Скачать

Входной файл

....

A,D RT ____ e123 &^-.9 _^&*( ()

;

-56

5.6E2; ; +55 6.1E-10

E _123 jkL cv+b; -5.0 5.E+3 .35E-10

Выходной файл

. - Ошибка

. - Ошибка

. - Ошибка

. - Ошибка

Перевод строки - ошибка

Перевод строки - ошибка

Перевод строки - ошибка

A - Ошибка

, - Ошибка

D - Ошибка

- Ошибка

R - Ошибка

T - Ошибка

- Ошибка

_ - Ошибка

_ - Ошибка

_ - Ошибка

_ - Ошибка

- Ошибка

e - Ошибка

123 - Целое десятичное со знаком

- Ошибка

& - Ошибка

^ - Ошибка

-.9 - Вещественное десятичное со знаком

- Ошибка

_ - Ошибка

^ - Ошибка

& - Ошибка

* - Ошибка

( - Скобка

- Ошибка

( - Скобка

) - Скобка

Перевод строки - ошибка

- Ошибка

- Ошибка

- Ошибка

; - Ошибка

Перевод строки - ошибка

-56 - Целое десятичное со знаком

- Ошибка

Перевод строки - ошибка

5.6 - Вещественное десятичное со знаком

E - Ошибка

2 - Целое десятичное со знаком

; - Ошибка

- Ошибка

; - Ошибка

- Ошибка

+55 - Целое десятичное со знаком

- Ошибка

6.1 - Вещественное десятичное со знаком

E - Ошибка

-10 - Целое десятичное со знаком

- Ошибка

- Ошибка

- Ошибка

- Ошибка

- Ошибка

- Ошибка

- Ошибка

- Ошибка

Перевод строки - ошибка

Перевод строки - ошибка

E - Ошибка

- Ошибка

_ - Ошибка

123 - Целое десятичное со знаком

- Ошибка

j - Ошибка

k - Ошибка

L - Ошибка

- Ошибка

c - Ошибка

v - Ошибка

+ - Ошибка

b - Ошибка

; - Ошибка

- Ошибка

- Ошибка

-5.0 - Вещественное десятичное со знаком

- Ошибка

5. - Вещественное десятичное со знаком

E - Ошибка

+3 - Целое десятичное со знаком

- Ошибка

.35 - Вещественное десятичное со знаком

E - Ошибка

-10 - Целое десятичное со знаком

    1. Содержание отчета

  1. Исходное задание.

  2. Цель работы.

  3. Алгоритм выполнения задания и оценка его временной эффективности.

  4. Диаграмма (граф) и таблица переходов, описывающая работу программы.

  1. Лабораторная работа № 4. Работа со стеком

Целью работы является изучение основных операций при работе со стеком и приобретение навыков программной реализации стека.

    1. Задание на работу

Изучить способы реализации стека при использовании массивов и связанных структур.

Написать два варианта программы, решающей задачу, полученную у преподавателя, на языке программирования C/C++. В программе инициализируется стек и затем выполняется заданная последовательность операций со стеком с данными, структура которых задается преподавателем. Первый вариант использует для организации стека динамический список, второй использует для организации стека шаблон std::stack<> из стандартной библиотеки C++.

Входные данные должны поступать из файла с именем «input.txt», результат записываться в файл с именем «output.txt».

Программа должна состоять из следующих частей:

  1. Заголовочный файл с объявлениями функций работы со стеком (lab_stack.h)

  2. Файл с реализацией функций работы со стеком (lab_stack.cpp)

  3. Файл с алгоритмом решения предложенной задачи (main.cpp)

Файл с алгоритмом решения должен работать со стеком только через функции, описанные в заголовочном файле. Программа должна быть спроектирована таким образом, чтобы способ реализации стека можно было бы изменить, заменив только файл lab_stack.cpp.

    1. Пример содержимого заголовочного файла lab_stack.H

// В данном случае в стеке хранятся данные типа int,

// поэтому функции работы со стеком принимают и возвращают

// данные этого типа

struct Stack;

// создание пустого стека

Stack *create();

// удаление стека

void clear(Stack *stack);

// включение элемента в стек

void push(Stack *stack, int Data);

// получение последнего элемента стека

int get(Stack *stack);

// выталкивание элемента из стека

void pop(Stack *stack);

// проверка стека на наличие элементов

bool empty(Stack *stack);