Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kurs_STP_13.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
70 Кб
Скачать
☆

Спецификация типа данных «Процессор».

ADT TProc

  • Данные. Процессор (тип TProc) выполняет двухоперандные операции TOprtn = (None, Add, Sub, Mul, Dvd) и однооперандные операции - функции TFunc = (Rev, Sqr) над значениями типа T. Левый операнд и результат операции хранится в поле Lop_Res, правый - в поле Rop. Оба поля имеют тип T. Процессор может находиться в состояниях: «операция установлена» - поле Operation не равно None (значение типа TOprtn) или в состоянии «операция не установлена» - поле Operation = None. Значения типа TProc - изменяемые. Они изменяются операциями: «Сброс операции» (OprtnClear), «Выполнить операцию» (OprtnRun), «Вычислить функцию» (FuncRun), «Установить операцию» (OprtnSet), «Установить левый операнд» (Lop_Res_Set), «Установить правый операнд» (Rop_Set), «Сброс калькулятора» (ReSet). На значениях типа T должны быть определены указанные выше операции и функции.

  • Операции

Конструктор

Начальные значения:

Нет

Процесс:

Инициализирует поля объекта процессор типа TProc. Поля Lop_Res, Rop инициализируются объектами (тип T) со значениями по умолчанию. Например, для простых дробей - 0/1. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None).

СбросПроцессора

Вход:

Нет.

Предусловия:

Нет.

Процесс:

Поля объекта процессор: Lop_Res, Rop инициализируются объектами (тип T) со значениями по умолчанию. Например, для простых дробей - 0/1. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None).

Выход:

Нет.

Постусловия:

Состояние процессора – «операция сброшена» (Operation = None).

СбросОперации

Вход:

Нет.

Предусловия:

Нет.

Процесс

Процессор устанавливается в состояние: «операция не установлена»: (Operation = None).

Выход:

Нет.

Постусловия:

Состояние процессора – «операция сброшена» (Operation = None).

ВыполнитьОперацию

Вход:

Нет.

Предусловия:

Нет.

Процесс

Вызывает выполнение текущей операции (записанной в поле Operation). Операция (Operation) выполняется над значениями, хранящимися в полях Rop и Lop_Res. Результат сохраняется в поле Lop_Res. Если Operation = None, никакие действия не выполняются. Состояние объекта не изменяется.

Выход:

Нет.

Постусловия:

Состояние процессора не изменяется.

ВычислитьФункцию

Вход:

Вид функции (Func: TFunc).

Предусловия:

Нет.

Процесс

Вызывает выполнение текущей функции (Func). Функция (Func) выполняется над значением, хранящимся в поле Rop. Результат сохраняется в нём же. Состояние объекта не изменяется.

Выход:

Нет.

Постусловия:

Состояние процессора не меняется.

ЧитатьЛевыйОперанд

Вход:

Нет.

Предусловия:

Нет.

Процесс

Создаёт и возвращает копию объекта, который хранится в поле Lop_Res.

Выход:

Объект типа T.

Постусловия:

Состояние процессора не изменяется.

ЗаписатьЛевыйОперанд

Вход:

Переменная Operand типа T.

Предусловия:

Нет.

Процесс

Создаёт копию объекта Operand и заносит её в поле Lop_Res.

Выход:

Нет.

Постусловия:

Состояние процессора не изменяется.

ЧитатьПравыйОперанд

Вход:

Нет.

Предусловия:

Нет.

Процесс

Создаёт и возвращает копию объекта, который хранится в Rop.

Выход:

Объект типа T.

Постусловия:

Состояние процессора не меняется.

ЗаписатьПравыйОперанд

Вход:

Переменная Operand типа T.

Предусловия:

Нет.

Процесс

Создаёт копию объекта Operand и заносит её в поле Rop.

Выход:

Нет.

Постусловия:

Состояние процессора не изменяется.

ЧитатьСостояние

Вход:

Нет.

Предусловия:

Нет.

Процесс

Копирует и возвращает значение поля Operation.

Выход:

Значение поля Operation.

Постусловия:

Состояние процессора не изменяется.

ЗаписатьСостояние

Вход:

Переменная Oprtn типа TOprtn.

Предусловия:

Нет.

Процесс

Заносит значение Oprtn в поле Operation.

Выход:

Нет.

Постусловия:

Состояние процессора изменяется на Oprtn.

Текст программы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]