↑ вверх

Помощь дистанционщикам!
ДО СибГУТИ (www.do.sibsutis.ru),
ДО СибАГС (www.sapanet.ru),
ДО НГУЭиУ (sdo.nsuem.ru),
ДО СибУПК (sdo.sibupk.su) и др ВУЗы

Этот сайт продаётся. По всем вопросам обращаться по +7 913 923-45-34 (Денис)
Корзина пуста!
Обратная связь




Вариант 01 Лабораторная работа 03

25000
      
Просмотров: 1201
Тип работы: Лабораторная работа
Название предмета: Современные технологии программирования
Тема/вариант: Вариант 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.

В приведённой ниже таблице показана последовательность изменения состояния процессора при вычислении выражения...

ЗАКАЗАТЬ РАБОТУ
Отправь нам своё задание, и мы поищем твою работу в нашей базе готовых работ. А если не найдем, то порекомендуем партнеров, которые качественно смогут выполнить твой заказ.
(doc, docx, rtf, zip, rar, bmp, jpeg) не более 5 Мб