Страницу Назад
Поискать другие аналоги этой работы
1000 Лабораторные работы №1-5 по дисциплине: «Современные технологии программирования». Вариант №06.ID: 194934Дата закачки: 17 Сентября 2018 Продавец: teacher-sib (Напишите, если есть вопросы) Посмотреть другие работы этого продавца Тип работы: Работа Лабораторная Сдано в учебном заведении: ДО СИБГУТИ Описание: Лабораторная работа №1 Абстрактный тип данных (ADT) p - ичное число Задание 1. Реализовать абстрактный тип данных «р-ичное число», используя класс Object Pascal, C++, в соответствии с приведенной ниже спецификацией. 2. Протестировать каждую операцию, определенную на типе данных, одним из методов тестирования. Спецификация типа данных «р-ичное число». ADT TPNumber Данные Р-ичное число TPNumber - это действительное число (n) со знаком в системе счисления с основанием (b) (b в диапазоне 2..16), содержащее целую и дробную части. Точность представления числа c (c >= 0). Р-ичные числа изменяемые. Операции Операции могут вызываться только объектом р-ичное число (тип TPNumber), указатель на который в них передаётся по умолчанию. При описании операций этот объект называется «само число». КонструкторЧисло Начальные значения: Вещественное число (a) во внутреннем формате, система счисления (b), точность представления числа (c) Процесс: Создаёт p-ичное число: система счисления (b), точность представления (c). В поле (n) созданного числа заносится (a). Например: КонструкторЧисло(a,3,3) = число a в системе счисления 3 с тремя разрядами после троичной точки. КонструкторЧисло (a,3,2) = число a в системе счисления 3 с двумя разрядами после троичной точки. КонструкторСтрока Начальные значения: Строковое представление р–ичного числа (a), система счисления (b), точность представления числа (c) Процесс: Создаёт р-ичное число: система счисления (b), точность представления (c). В поле (n) созданного числа заносится результат преобразования строки (a) в числовое представление. b-ичное число (a) и основание системы счисления (b) представлены в формате строки. Например: КонструкторСтрока(‘20’,’3’,’6’) = 20 в системе счисления 3, точность 6 знаков после запятой. КонструкторСтрока (‘0’,’3’,’8’) = 0 в системе счисления 3, точность 8 знаков после запятой. Копировать: Вход: Нет. Предусловия: Нет. Процесс: Создаёт копию самого числа (тип TPNumber). Выход: р-ичное число. Постусловия: Нет. Сложить Вход: Р-ичное число d с основанием и точностью такими же, как у самого числа. Предусловия: Нет. Процесс: Создаёт и возвращает р-ичное число (тип TPNumber), полученное сложением полей (n) самого числа и числа d. Выход: р-ичное число. Постусловия: Нет Умножить Вход: Р-ичное число d с основанием и точностью такими же, как у самого числа. Предусловия: Нет. Процесс: Создаёт и возвращает р-ичное число (тип TPNumber), полученное умножением полей (n) самого числа и числа d. Выход: Р-ичное число (тип TPNumber). Постусловия: Нет. Вычесть Вход: Р-ичное число d с основанием и точностью такими же, как у самого числа. Предусловия: Нет. Процесс: Создаёт и возвращает р-ичное число (тип TPNumber), полученное вычитанием полей (n) самого числа и числа d. Выход: Р-ичное число (тип TPNumber). Постусловия: Нет. Делить Вход: Р-ичное число d с основанием и точностью такими же, как у самого числа. Предусловия: Поле (n) числа (d) не равно 0. Процесс: Создаёт и возвращает р-ичное число (тип TPNumber), полученное делением полей (n) самого числа на поле (n) числа d. Выход: Р-ичное число (тип TPNumber). Постусловия: Нет. Обратить Вход: Нет. Предусловия: Поле (n) самого числа не равно 0. Процесс: Создаёт р-ичное число, в поле (n) которого заносится значение, полученное как 1/(n) самого числа. Выход: Р-ичное число (тип TPNumber). Постусловия: Нет. Квадрат Вход: Нет. Предусловия: Нет. Процесс: Создаёт р-ичное число, в поле (n) которого заносится значение, полученное как квадрат поля (n) самого числа. Выход: Р-ичное число (тип TPNumber). Постусловия: Нет. ВзятьРЧисло Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение поля (n) самого числа. Выход: Вещественное значение. Постусловия: Нет. ВзятьРСтрока Вход: Нет. Предусловия: Нет. Процесс: Возвращает р-ичное число (q) в формате строки, изображающей значение поля (n) самого числа в системе счисления (b) с точностью (c). Выход: Строка. Постусловия: Нет. ВзятьОснованиеЧисло Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение поля (b) самого числа (q). Выход: Целочисленное значение Постусловия: Нет. ВзятьОснованиеСтрока Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение поля (b) самого числа в формате строки, изображающей (b) в десятичной системе счисления. Выход: Строка. Постусловия: Нет. ВзятьТочностьЧисло Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение поля (c) самого числа . Выход: Целое значение. Постусловия: Нет. ВзятьТочностьСтрока Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение поля (c) самого числа в формате строки, изображающей (c) в десятичной системе счисления. Выход: Строка. Постусловия: Нет. УстановитьОснованиеЧисло Вход: Целое число (newb). Предусловия: 2 <= newb <= 16. Процесс: Устанавливает в поле (b) самого числа значение (newb). Выход: Нет. Постусловия: Нет. УстановитьОснованиеСтрока Вход: Строка (bs), изображающая основание (b) p-ичного числа в десятичной системе счисления. Предусловия: Допустимый диапазон числа, изображаемого строкой (bs) - 2,,16. Процесс: Устанавливает значение поля (b) самого числа значением, полученным в результате преобразования строки (bs). Выход: Строка. Постусловия: Нет. УстановитьТочностьЧисло Вход: Целое число (newc). Предусловия: newc >= 0. Процесс: Устанавливает в поле (c) самого числа значение (newc). Выход: Нет. Постусловия: Нет. УстановитьТочностьСтрока Вход: Строка (newc). Предусловия: Строка (newc) изображает десятичное целое >= 0. Процесс: Устанавливает в поле (c) самого числа значение, полученное преобразованием строки (newc). Выход: Нет. Постусловия: Нет. end TPNumber Рекомендации к выполнению 1. Тип данных реализовать, используя класс • Object Pascal, • С++. 2. Число храните как поле вещественного типа. 3. Основание системы счисления храните как поле целочисленного типа. 4. Для чтения и записи р - ичного числа в вещественном и строковом формате используйте свойства (property). 5. Тип данных реализовать в отдельном модуле UPNumber. Содержание отчета 1. Задание. 2. Текст программы. 3. Тестовые наборы данных для тестирования типа данных. Контрольные вопросы 1. Что такое инкапсуляция? 2. Как синтаксически представлено поле в описании класса? 3. Как синтаксически представлен метод в описании класса? 4. Как синтаксически представлено простое свойство в описании класса? 5. Особенности описания методов класса? 6. Особенности описания и назначение конструктора класса? 7. Видимость идентификаторов в описании класса? 8. Особенности вызова методов применительно к объектам класса? Лабораторная работа №2 Абстрактный тип данных (ADT) «p - ичная память» 1. Задание. Тема: Классы Object Pascal, С++ Цель: Сформировать практические навыки: реализации абстрактного типа данных с помощью классов Object Pascal, С++. Задание 1. В соответствии с приведенной ниже спецификацией реализовать абстрактный тип данных «р-ичная память», используя класс • Object Pascal, • C++. 2. Протестировать каждую операцию, определенную на типе данных одним из методов тестирования. Спецификация типа данных «р-ичная память». ADT TMemory Данные Р-ичная память (тип TMemory, в дальнейшем - память) - это память для хранения объекта «р-ичное число» (тип TPNumber) и значения «состояние памяти». Объект «р-ичная память» - изменяемый. Он имеет два состояния, обозначаемых значениями: «Включена» (_On), «Выключена» (_Off). Её изменяют операции: Записать (Store), Добавить (Add), Очистить (Clear). Операции Конструктор Начальные значения: Основание системы счисления (b), точность представления числа (c). Процесс: Создаёт объект «память» типа TMemory. Создаёт и записывает в поле «р-ичное число» объекта «память» (тип TMemory) объект «р-ичное число» (тип TPNumber), инициализированный значениями: р-ичное число – 0, основание системы счисления - b, точность представления числа – c. Память устанавливается в состояние «Выключена», в поле «состояние памяти» заносится значение (_Off). Записать Вход: E – объект «р-ичное число» (тип TPNumber). Предусловия: Нет. Процесс: В объект «память» (тип TMemory) в поле «р-ичное число» записывается копия объекта Е. Память устанавливается в состояние «Включена», в поле «состояние памяти» заносится значение (_On). Выход: Нет. Постусловия: Состояние памяти – «Включена» (_On). Взять Вход: Нет. Предусловия: Нет. Процесс: Создаёт и возвращает копию объекта хранящегося в объекте «память» (тип TMemory) в поле «р-ичное число» (тип TPNumber). Выход: Объект типа TPNumber. Постусловия: Состояние памяти – «Включена» (_On). Добавить Вход: Е – р-ичное число (объект типа TPNumber). Предусловия: Нет. Процесс: В поле «р-ичное число» объекта «память» (тип TMemory) записывается объект «р-ичное число» (тип TPNumber), полученный в результате сложения числа (Е) и числа, хранящегося в памяти в поле «р-ичное число». Выход: Нет. Постусловия: Состояние памяти – «Включена» (_On). Очистить Основание системы счисления (b), точность представления числа (c). Вход: Нет. Предусловия: Состояние памяти – «Включена» (_On). Процесс: В поле «р-ичное число» объекта «память» (тип TMemory) записывается объект «р-ичное число» (тип TPNumber), инициализированный значениями: р-ичное число – 0, основание системы счисления - b, точность представления числа – c.. Память устанавливается в состояние «Выключена» (_Off). Выход: Нет. Постусловия: Состояние памяти – «Выключена» (_Off). ЧитатьСостояниеПамяти Вход: Нет. Предусловия: Нет. Процесс: Копирует и возвращает значение поля «состояние памяти» объекта «память» (тип TMemory) в формате строки. Выход: Значение поля «состояния памяти» (типа String). Постусловия: Нет. ЧитатьЧисло Вход: Нет. Предусловия: Нет. Процесс: Копирует и возвращает значение поля «р-ичное число» объекта «память» (тип TMemory) в формате строки. Выход: Значение объекта «р-ичное число» (тип String). Постусловия: Нет. end TCMemory Рекомендации к выполнению 1. Тип данных реализовать, используя класс Object Pascal, С++. 2. Число храните в поле типа TPNumber (см. лаб. Раб. Абстрактный тип данных - р-ичные числа). 3. Для чтения состояния памяти и хранимого значения используйте свойство (property). 4. Тип данных реализовать в отдельном модуле UMemory. Лабораторная работа №3 Абстрактный тип данных: Р – ичный процессор 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). Лабораторная работа №4 Редактор р-ичных чисел 1. Задание. Тема: Классы Object Pascal, С++ Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного программирования Object Pascal, С++. Задание 1. Разработать и реализовать класс TEditor «Редактор р-ичных чисел», используя класс • Object Pascal, • С++. На Унифицированном языке моделирования UML (Unified Modeling Language) наш класс можно обозначить следующим образом: РедакторР-ичныхЧисел строка: String числоЕстьНоль: Boolean добавитьЗнак: String добавитьР-ичную цифру(a: Integer): String добавитьНоль: String забойСимвола: String очистить: String конструктор читатьСтрокаВформатеСтроки: String (метод свойства) писатьСтрокаВформатеСтроки(a: String) (метод свойства) редактировать(a: Integer): String Обязанность: ввод, хранение и редактирование строкового представления р-ичных чисел 2. Класс должен отвечать за ввод и редактирование строкового представления р-ичных чисел. Значение р-ичного нуля - ‘0,’. Класс должен обеспечивать: • добавление символов, соответствующих р-ичным цифрам (р от 2 до 16); • добавление и изменение знака; • добавление разделителя целой и дробной частей; • забой символа, стоящего справа (BackSpace); • установку нулевого значения числа (Clear); • чтение строкового представления р-ичного числа; • запись строкового представления р-ичного числа; 3. Протестировать каждый метод класса. Рекомендации к выполнению 1. В классе TEditor опишите следующие атрибуты: • «строка» - строкового типа, содержит строковое представление редактируемого р- ичного числа, . 2. В классе опишите следующие операции: • «число есть ноль», операция возвращает булевское значение True, если «строка» содержит изображение числа равного 0, False – в противном случае; • «добавить знак», операция добавляет или удаляет знак «-» из «строка» и возвращает значение «строка»; • «добавить р-ичную цифру», операция получает целое число (числовое обозначение р-ичной цифры), преобразует его в символ и добавляет к «строка», если это допускает формат, возвращает значение «строка»; • «добавить ноль», операция добавляет ноль к «строка», если это допускает формат, возвращает значение «строка»; • «забой символа», операция удаляет крайний правый символ «строка» и возвращает значение «строка»; • «очистить», операция устанавливает в «строка» строку, изображающую р-ичный 0, возвращает значение «строка»; • «редактировать», операция получает номер команды редактирования, выполняет действия по её выполнению и возвращает значение «строка»; • «конструктор», создаёт объект типа TEditor; • «читать «строка» в формате строки» - строкового типа (метод свойства), возвращает значение «строка» в заданном пользователем формате; • «писать «строка» в формате строки», получает значение строкового типа (метод свойства) и заносит его в «строка»; 3. Класс реализуйте в отдельном модуле UEditor. В разделе описания констант опишите следующие константы: • «разделитель целой и дробной частей» строкового типа; • «строковое представление нуля» строкового типа. Содержание отчета 1. Задание. 2. Текст программы. 3. Тестовые наборы данных для тестирования класса. Контрольные вопросы 1. Что такое инкапсуляция? 2. Как синтаксически представлено поле в описании класса? 3. Как синтаксически представлен метод в описании класса? 4. Как синтаксически представлено простое свойство в описании класса? 5. Особенности описания методов класса? 6. Особенности описания и назначение конструктора класса? 7. Видимость идентификаторов в описании класса? 8. Особенности вызова методов применительно к объектам класса? Лабораторная работа №5 Управление калькулятором р-ичных чисел Управление калькулятором р-ичных чисел 1. Задание. 1. Разработать и реализовать класс «Управление калькулятором р-ичных чисел» тип TCtrl, используя класс • Object Pascal, • С++. На Унифицированном языке моделирования UML (Unified Modeling Language) наш класс можно описатьть следующим образом: УправлениеКалькуляторомР-ичныхЧисел (тип TCtrl) состояниеКалькулятора: TCtrlState редактор: TEditor процессор: TProc память: TMemory число: TPNumber выполнитьКомандуКалькулятора(a: Integer; var b, MState: String): String выполнитьКомандуРедактора(a: Integer): String выполнитьОперацию(a: Integer): String выполнитьФункцию(a: Integer): String вычислитьВыражение(a: Integer): String установитьНачальноеСостояниеКалькулятора(a: Integer): String выполнитьКомандуюПамяти(a: Integer; var MState: String): String очиститьПамять(var MState: String): String записатьВПамять(var MState: String): String считатьИзПамяти(var MState: String): String добавитьКЧислуВПамяти(var MState: String): String читатьПисатьСостояниеКалькулятора: TCtrlState (свойство, опирающееся на поле) выполнитьКомандуБуфераОбмена(a: Integer; var b: String): String записатьВБуферОбмена(a: Integer; var b: String): String читатьИзБуферОбмена(a: Integer; var b: String): String сменитьОснованиеСистемыСчисления(b: integer; var s:String) конструктор деструктор Обязанность: управление выполнением команд калькулятора 2. Класс должен отвечать за управление выполнением команд калькулятора. Класс должен обеспечивать: • управление вводом и редактированием р-ичных чисел; • управление выполнением операций, функций и выражений над р-ичными числами; • управление выполнением операций по работе с памятью, объёмом в одно значение типа р-ичное число; • управление работой с системным буфером обмена. 3. Протестировать каждый метод класса и класс в целом. Рекомендации к выполнению 1. Класс TCtrl реализуйте в отдельном модуле UControl. 2. В модуле опишите перечисляемый тип TCtrlState = (cStart, cEditing, FunDone, cValDone, cExpDone, cOpChange, cError) для обозначения состояний калькулятора: cStart (Начальное), cEditing (Ввод и редактирование), cExpDone (Выражение вычислено), cOpDone (Операция выполнена), cValDone (Значение введено), cOpChange (Операция изменена),. cError (Ошибка). 3. В классе опишите следующие атрибуты: • «редактор» - объект типа TEditior; • «процессор» - объект типа TProc (TCalc в предыдущей редакции); • «память» - объект типа TMemory; • «состояние калькулятора» - тип TCtrlState; • «число» - объект типа TPNumber (результат выполнения последней команды). 4. Набор основных операций класса определяется набором команд калькулятора, заданных пользователем. Кроме того, в классе будут определены вспомогательные операции, обеспечивающие реализацию основных операций. В классе опишите следующие операции: • «выполнитьКомандуКалькулятора» (управляет вызовом операций по работе с объектами: редактор (поле TEditor), процессор (поле TProc), память (поле TMemory), буфер обмена (глобальный объект ClipBoard)), операция получает целое число (номер команды пользователя), строку для буфера обмена, строку со значением состояния памяти и возвращает строку для буфера обмена, строку состояния памяти и строку результата; • «выполнитьКомандуРедактора» (управляет вызовом методов объекта редактор (тип TEditor)), операция получает целое число (номер команды пользователя и возвращает строку результата; • «выполнитьОперацию» (управляет вызовом методов объекта процессор (поле TProc)), операция получает целое число (номер команды пользователя и возвращает строку результата; • «выполнитьФункцию» (управляет вызовом методов объекта процессор (поле TProc)), операция получает целое число (номер команды пользователя и возвращает строку результата; • «вычислитьОперацию» (управляет вызовом методов объекта процессор (поле TProc)), операция получает целое число (номер команды пользователя и возвращает строку результата; • «вычислитьВыражение» (управляет вызовом методов объекта процессор (поле TProc)), операция получает целое число (номер команды пользователя и возвращает строку результата; • «установитьНачальноеСостояниеКалькулятора» (управляет вызовом методов для перевода объекта типа TCalc в состояние Start (см. ниже), операция получает целое число (номер команды пользователя и возвращает строку результата; • «выполнитьКомандуПамяти» (управляет вызовом методов объекта типа TCtrl, обеспечивающих выполнение команд памяти), операция получает целое число (номер команды пользователя), строку со значением состояния памяти и возвращает строку состояния памяти и строку результата; • «очистить память» (обеспечивает выполнение команды MC памяти), операция получает строку со значением состояния памяти и возвращает строку состояния памяти и строку результата; • «записать в память» (обеспечивает выполнение команды MS памяти), операция получает строку со значением состояния памяти и возвращает строку состояния памяти и строку результата; • «считать из памяти» (обеспечивает выполнение команды MR памяти), операция получает строку со значением состояния памяти и возвращает строку состояния памяти и строку результата; • «добавить к числу в памяти» (обеспечивает выполнение команды M+ памяти), операция получает строку со значением состояния памяти и возвращает строку состояния памяти и строку результата; • «выполнитьКомандуБуфераОбмена» (управляет вызовом методов объекта типа TClipBoard, обеспечивающих выполнение команд буфера обмена), операция получает целое число (номер команды пользователя), строку со значением буфера обмена и возвращает строку со значением буфера обмена и строку результата; • «записатьВБуферОбмена» (обеспечивает выполнение команды Вставить), операция возвращает строку со значением числа и строку результата; • «читатьИзБуферОбмена» (обеспечивает выполнение команды Копировать), операция получает строку со значением числа и строку результата; • «сменить основание системы счисления», операция получает новое значение основания системы счисления и возвращает строку, содержащую отображаемое число в новой системе счисления; • «читать | писать состояние калькулятора», возвращает значение типа TCtrlState (свойство, опирающееся на поле); • «конструктор», осуществляет создание объектов и инициализацию полей класса; • «деструктор», осуществляет освобождение памяти, занимаемой объектом класса и объектами, указатели на которые хранятся в полях объекта: «Редактор», «Процессор», «Память», «Число». Рекомендации к выполнению Логика работы объекта «управление калькулятором» класс TCtrl может быть описана с помощью таблицы переходов, которая отражает изменение состояния калькулятора и результат работы объекта под действием команд пользователя. Таблица переходов строится на основе анализа прецедентов (вариантов использования), приведённых в спецификации. Для построения таблицы переходов необходимо: 1. проанализировать спецификацию, приведённую в задании для калькулятора р-ичных чисел и выделить состояния калькулятора, например: Start (Начальное), Editing (Ввод и редактирование), ExpDone (Выражение вычислено), FunDone (Функция выполнена), ValDone (Значение введено), OpChange (смена операрации), Error (ошибка); 2. построить таблицу состояний следующего вида: Комментарии: Уважаемый слушатель, дистанционного обучения, Оценена Ваша работа по предмету: Современные технологии программирования Вид работы: Лабораторная работа 5 Оценка: Зачет Дата оценки: 07.03.2018 Рецензия:Уважаемый С* По всем вопросам пишите: currrent@yandex.ru Размер файла: 305,5 Кбайт Фаил: ![]() ------------------- Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные! Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку. Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот. -------------------
Коментариев: 0 |
||||
Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них. Опять не то? Мы можем помочь сделать!
Лабораторные работы №1-3 по дисциплине: «Современные технологии программирования. Часть 1». Вариант №06.
Ещё искать по базе с такими же ключевыми словами. |
||||
Не можешь найти то что нужно? Мы можем помочь сделать! От 350 руб. за реферат, низкие цены. Спеши, предложение ограничено ! |
Вход в аккаунт:
Страницу Назад
Cодержание / Современные технологии программирования / Лабораторные работы №1-5 по дисциплине: «Современные технологии программирования». Вариант №06.