Вариант 01 Лабораторная работа 03 |
250,00 ₽
Просмотров: 1202
|
Тип работы: | Лабораторная работа |
Название предмета: | Современные технологии программирования |
Тема/вариант: | Вариант 01 Лабораторная работа 03 |
Объем работы: | 10 |
ВУЗ: | СибГУТИ |
Дата выполнения: | 2013-08-20 |
Размер файла, тип файла: | 24.08 Kb, , PAS, DOC |
Прикрепленные файлы: |
Курс 280 Задание на курсовую работу по дисциплине «Современные технологии программирования» 8 семестр (3616 Kb)
|
1. Задание.
Лабораторная работа. Абстрактный тип данных: P-ичный процессор.
Тема: Классы Object Pascal, С++
Цель: Сформировать практические навыки: реализации абстрактного типа данных с помощью классов Object Pasca, С++.
Задание
1. В соответствии с приведенной ниже спецификацией реализовать абстрактный тип данных «P-ичный процессор», используя класс
· Object Pasca,
· С++.
2. Протестировать каждую операцию, определенную на типе данных одним из методов тестирования.
Спецификация типа данных «P-ичный процессор».
ADT TProc
Данные
P-ичный процессор (тип TProc) выполняет двухоперандные операции TOprtn = (None, Add, Sub, Mul, Dvd) и однооперандные операции - функции TFunc = (Rev, Sqr). Если операция или функция не может быть выполнена, в поле Error типа String заносится сообщение об ошибке. Левый операнд и результат операции хранится в поле Lop_Res, правый - в поле Rop. Оба поля имеют тип TPNumber. Процессор может находиться в состоянии «операция установлена»: поле Operation не равно None (значение типа TOprtn) или в состоянии операция не установлена: поле Operation = None. Значения типа TProc - изменяемые. Они изменяются операциями: Сброс операции (OprtnClear), Выполнить операцию (OprtnRun), Вычислить функцию (FuncRun), Установить операцию (OprtnSet), Установить левый операнд (Lop_Res_Set), Установить правый операнд (Rop_Set), Сброс калькулятора (ReSet).
Операции
Конструктор |
|
Начальные значения: |
система счисления (b), точность представления числа (c) |
Процесс: |
Создаёт объект p-ичный процессор типа TProc. Поля Lop_Res, Rop инициализируются объектами (тип TPNumber) со значением 0 в системе счисления (b), с точность представления числа (c). В поле Error заносится пустая строка. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None). |
|
|
СбросПроцессора |
|
Вход: |
система счисления (b), точность представления числа (c) |
Предусловия: |
Нет. |
Процесс: |
Поля объекта p-ичный процессор: Lop_Res, Rop инициализируются объектами (тип TPNumber) со значением 0 в системе счисления (b), с точность представления числа (c). В поле Error заносится пустая строка. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None). |
Выход: |
Нет |
Постусловия: |
Состояние процессора – «операция сброшена» (Operation = None). |
|
|
СбросОперации |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Процессор устанавливается в состояние: «операция не установлена»: (Operation = None). |
Выход: |
Нет |
Постусловия: |
Состояние процессора – «операция сброшена» (Operation = None). |
|
|
ВыполнитьОперацию |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Вызывает выполнение текущей операции (записанной в поле Operation). Операция (Operation) выполняется над значениями, хранящимися в полях Rop и Lop_Res. Результат сохраняется в поле Lop_Res. Если Operation = None, никакие действия не выполняются. Если операция не может быть выполнена, в поле Error заносится сообщение об ошибке. Состояние объекта не изменяется. |
Выход: |
Нет |
Постусловия: |
Состояние процессора не изменяется. |
|
|
ВычислитьФункцию |
|
Вход: |
Вид функции (Func: TFunc). |
Предусловия: |
Нет. |
Процесс: |
Вызывает выполнение текущей функции (Func). Функция (Func) выполняется над значением, хранящимся в поле Rop. Результат сохраняется в нём же. Если операция не может быть выполнена, в поле Error заносится сообщение об ошибке. Состояние объекта не изменяется. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не меняется. |
|
|
ЧитатьЛевыйОперанд |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Создаёт и возвращает копию объекта, указатель на который хранится в Lop_Res. |
Выход: |
Объект типа TPNumber. |
Постусловия: |
Состояние процессора не изменяется. |
|
|
ЗаписатьЛевыйОперанд |
|
Вход: |
Переменная (Operand) типа TPNumber. |
Предусловия: |
Нет. |
Процесс: |
Создаёт копию объекта Operand и заносит указатель на него в поле Lop_Res. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не изменяется. |
|
|
ЧитатьПравыйОперанд |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Создаёт и возвращает копию объекта, указатель на который хранится в Rop. |
Выход: |
Объект типа TPNumber. |
Постусловия: |
Состояние процессора не меняется. |
|
|
ЗаписатьПравыйОперанд |
|
Вход: |
Переменная (Operand) типа TPNumber. |
Предусловия: |
Нет. |
Процесс: |
Создаёт копию объекта Operand и заносит указатель на него в поле Rop. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не изменяется. |
|
|
ЧитатьСостояние |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Копирует и возвращает значение поля Operation. |
Выход: |
Значение поля Operation. |
Постусловия: |
Состояние процессора не изменяется. |
|
|
ЗаписатьСостояние |
|
Вход: |
Переменная (Oprtn) типа TOprtn. |
Предусловия: |
Нет. |
Процесс: |
Заносит значение Oprtn в поле Operation. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора изменяется на Oprtn. |
|
|
ЧитатьОшибку |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Копирует и возвращает значение поля Error. |
Выход: |
Значение поля Error. |
Постусловия: |
Состояние процессора не изменяется. |
|
|
СбросОшибки |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Очищает поле Error. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не изменяется. |
Рекомендации к выполнению
1. Тип данных TProc реализовать, используя класс Object Pascal, С++.
2. Число храните как поле типа TPNumber (см. лаб. Раб. Абстрактный тип данных - Р-ичные числа).
3. Для чтения состояния процессора, полей: «левый операнд-результат» (Lop_Res), «правый операнд» (Rop), «ошибка» ()Error используйте свойство (property).
4. Тип данных реализовать в отдельном модуле UProc.
В приведённой ниже таблице показана последовательность изменения состояния процессора при вычислении выражения...Сообщить другу