Страницу Назад
Поискать другие аналоги этой работы
600 Лабораторные работы №1-3 по дисциплине: «Современные технологии программирования. Часть 1». Вариант №06.ID: 195844Дата закачки: 29 Октября 2018 Продавец: teacher-sib (Напишите, если есть вопросы) Посмотреть другие работы этого продавца Тип работы: Работа Лабораторная Сдано в учебном заведении: ДО СИБГУТИ Описание: Лабораторная работа 1. Абстрактный тип данных простая дробь Цель Сформировать практические навыки реализации абстрактных типов данных в соответствии с заданной спецификацией с помощью классов С++. Задание 1. Реализовать абстрактный тип данных «простая дробь», используя класс С++, в соответствии с приведенной ниже спецификацией. 2. Протестировать каждую операцию, определенную на типе данных одним из методов тестирования Спецификация типа данных «простые дроби». ADT TFrac Простая дробь (тип TFrac) - это пара целых чисел: числитель и знаменатель (a/b). Простые дроби изменяемые. Операции Операции могут вызываться только объектом простая дробь (тип TFrac), указатель на который в них передаётся по умолчанию. При описании операций этот объект называется «сама дробь». Конструктор Начальные значения: Пара целых чисел (a) и (b). Процесс: Инициализирует поля простой дроби (тип TFrac): числитель значением a, знаменатель - (b). В случае необходимости дробь предварительно сокращается. Например: Конструктор(6,3) = (2/1) Конструктор(0,3) = (0/3). Конструктор Начальные значения: Строковое представление простой дроби . Например: ‘7/9’. Процесс: Инициализирует поля простой дроби (тип TFrac) строкой f =’a/b’. Числитель значением a, знаменатель - b. В случае необходимости дробь предварительно сокращается. Например: Конструктор(‘6/3’) = 2/1 Конструктор (‘0/3’) = 0/3 Копировать: Вход: Нет. Предусловия: Нет. Процесс: Создаёт копию самой дроби (тип TFrac) с числителем, и знаменателем такими же, как у самой дроби. Выход: Простая дробь (тип TFrac). Например: c = 2/1, Копировать(c) = 2/1 Постусловия: Нет. Сложить Вход: Простая дробь d (тип TFrac). Предусловия: Нет. Процесс: Создаёт и возвращает простую дробь (тип TFrac), полученную сложением самой дроби q = a1/b1 с d =a2/b2: ((a1/b1)+(a2/b2)=(a1*b2 + a2*b1)/( b1* b2)). Например: q = 1/2, d = -3/4 q.Сложить(d) = -1/4. Выход: Простая дробь (тип TFrac). Постусловия: Нет. Умножить Вход: Простая дробь d (тип TFrac). Предусловия: Нет. Процесс: Создаёт простую дробь (тип TFrac), полученную умножением самой дроби q = a1/b1 на d = a2/b2 ((a1/b1)*(a2/b2)=(a1* a2)/( b1* b2)). Выход: Простая дробь (тип TFrac). Постусловия: Нет. Вычесть Вход: Простая дробь d (тип TFrac). Предусловия: Нет. Процесс: Создаёт и возвращает простую дробь (тип TFrac), полученную вычитанием d = a2/b2 из самой дроби q = a1/b1: ((a1/b1)-(a2/b2)=(a1* b2-a2*b1)/(b1*b2)). Например: q = (1/2), d = (1/2) q.Вычесть(d) = (0/1). Выход: Простая дробь (тип TFrac). Постусловия: Нет Делить Вход: Простая дробь d (тип TFrac). Предусловия: Числитель числа d не равно 0. Процесс: Создаёт и возвращает простую дробь (тип TFrac), полученное делением самой дроби q = a1/b1 на дробь d = a2/b2: ((a1/b1)/(a2/b2)=(a1* b2)/( a2*b1)). Выход: Простая дробь (тип TFrac). Постусловия: Нет. Квадрат Вход: Нет. Предусловия: Нет. Процесс: Создаёт и возвращает простую дробь (тип TFrac), полученную умножением самой дроби на себя: ((a/b)*(a/b)=(a* a)/( b* b)). Выход: Простая дробь (тип TFrac). Постусловия: Нет. Обратное Вход: Нет. Предусловия: Нет. Процесс: Создаёт и возвращает простую дробь (тип TFrac), полученное делением единицы на саму дробь: 1/((a/b) = b/a. Выход: Простая дробь (тип TFrac) Постусловия: Нет. Минус Вход: Нет. Предусловия: Нет. Процесс: Создаёт простую дробь, являющуюся разностью простых дробей z и q, где z - простая дробь (0/1), дробь, вызвавшая метод. Выход: Простая дробь (тип TFrac). Постусловия: Нет. Равно Вход: Простая дробь d (тип TFrac). Предусловия: Нет Процесс: Сравнивает саму простую дробь q и d. Возвращает значение True, если q и d - тождественные простые дроби, и значение False - в противном случае. Выход: Булевское значение. Постусловия: Нет. Больше Вход: Простая дробь d (тип TFrac). Предусловия: Нет. Процесс: Сравнивает саму простую дробь q и d. Возвращает значение True, если q > d, - значение False - в противном случае. Выход: Булевское значение. Постусловия: Нет. ВзятьЧислительЧисло Вход: Предусловия: Нет. Процесс: Возвращает значение числителя дроби в числовом формате. Выход: Вещественное значение. Постусловия: Нет. ВзятьЗнаменательЧисло Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение знаменателя дроби в числовом формате. Выход: Вещественное значение. Постусловия: Нет. ВзятьЧислительСтрока Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение числителя дроби в строковом формате. Выход: Строка. Постусловия: Нет. ВзятьЗнаменательСтрока Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение знаменателя дроби в строковом формате. Выход: Строка. Постусловия: Нет. ВзятьДробьСтрока Вход: Нет. Предусловия: Нет. Процесс: Возвращает значение простой дроби, в строковом формате. Выход: Строка. Постусловия: Нет. end TFracRatio Рекомендации к выполнению 1. Тип данных реализовать, используя класс C++. 2. Тип данных реализовать в отдельном модуле UFrac. Лабораторная работа 2. Абстрактный тип данных “комплексное число” Цель: Сформировать практические навыки реализации абстрактных типов данных в соответствии с заданной спецификацией с помощью классов С++. Синтаксис классов: инкапсуляция, простые свойства. Задание 1. Реализовать абстрактный тип данных «комплексное число», используя класс С++, в соответствии с приведенной ниже спецификацией. 2. Протестировать каждую операцию, определенную на типе данных одним из методов тестирования Спецификация типа данных «комплексное число». ADT TComplex Данные Комплексное число TComplex - это неизменяемая пара вещественных чисел, представляющие действительную и мнимую части комплексного числа (a + i*b). Операции Операции могут вызываться только объектом комплексное число (тип TComplex), указатель на который в них передаётся по умолчанию. При описании операций этот объект называется “само число”. Конструктор Начальные значения: Пара вещественных чисел (a) и (b). Процесс: Инициализирует поля комплексного числа (тип TComplex) значениями: действительную часть - a), мнимую - b. Например: Конструктор(6,3)=6 + i*3 Конструктор(3,0)=3 + i*0 Конструктор(0,0)=0 + i*0 Конструктор Начальные значения: Строка, представляющая комплексное число. Процесс: Инициализирует поля комплексного числа (тип TComplex) значениями представленными строкой f = ’a + i*b’: действительную частью значением a, комплексную часть - b. Например: Конструктор(‘6+i*3’) = 6+i*3 Конструктор(‘0+i*3’) = 0+i*3 Копировать: Вход: Нет. Предусловия: Нет. Процесс Создаёт и возвращает собственную копию - комплексное число (тип TComplex) с действительной и мнимой частями такими же как у самого числа. Выход: Комплексное число (тип TComplex). Например: c = 6+i3, Копировать(c) = 6+i3 Постусловия: Нет. Сложить Вход: Комплексное число d (тип TComplex). Предусловия: Нет. Процесс Создаёт и возвращает комплексное число, полученное сложением самого числа q = a1+i*b1 с числом d = a2+i*b2: ((a1+i*b1)+(a2+i*b2)=(a1+a2)+i*(b1+b2)). Например: q = (2 +i*1), d = (2 +i*1), q.Сложить(d) = (4 +i*2). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Умножить Вход: Комплексное число d (тип TComplex). Предусловия: Нет. Процесс Создаёт и возвращает комплексное число, полученное умножением самого числа q = a1+i*b1 на число d = a2+i*b2: ((a1+i*b1)*(a2+i*b2)=(a1*a2 - b1*b2)+i*(a1*b2+ a2*b1)). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Квадрат Вход: Нет. Предусловия: Нет. Процесс Создаёт и возвращает комплексное число (тип TComplex), полученное умножением числа на самого себя: ((a1+i*b1)*(a1+i*b1)=(a1*a1 - b1*b1)+i*(a1*b1+ a1*b1)). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Обратное Вход: Нет. Предусловия: Нет. Процесс Создаёт и возвращает комплексное число (тип TComplex), полученное делением единицы на само число 1/((a1+i*b1) = a1/(a1**2 + b1**2) - i* b1/( a1**2 + b1**2 )). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Вычесть Вход: Комплексное число d (тип TComplex).. Предусловия: Нет. Процесс Создаёт и возвращает комплексное число (тип TComplex), полученное вычитанием d = a2 + i b2 из самого себя q = (a1+i*b1): (a1+i*b1)-(a2+i*b2)=(a1-a2)+i*(b1-b2). Например: q = (2 +i*1), d = (2 +i*1)) q.Вычесть(d) = (0 + i0). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Делить Вход: Комплексное число (d). Предусловия: Нет. Процесс Создаёт и возвращает комплексное число (тип TComplex), полученное делением самого числа (q) на число (d) ((a1+i*b1)/(a2+i*b2)=(a1*a2 + b1*b2)/(a2**2 + b2**2)+i*(a2*b1 – a1*b2)/(a2**2 + b2**2)). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Минус Вход: Нет. Предусловия: Нет. Процесс Создаёт и возвращает комплексное число (тип TComplex), являющееся разностью комплексных чисел z и и самого числа, где z – комплексное число (0+i0). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Модуль Вход: Нет. Предусловия: Нет. Процесс Вычисляет и возвращает модуль самого комплексного числа (q). Например: q = (2 +i*1), q. Модуль = O(2*2+1*1). q = (i*17), q. Модуль = O(0*0+17*17). Выход: Вещественное число. Постусловия: Нет. УголРад Вход: Нет. Предусловия: Нет. Процесс Возвращает аргумент fi самого комплексного числа q (в радианах). fi = (arcTg(b/a), a>0; pi/2, a = 0, b > 0; arcTg(b/a) + pi, a < 0; -pi/2, a = 0, b <0 ). Например: q = (1 +i*1), q. УголРад = 0,79. Выход: Вещественное число. Постусловия: Нет. УголГрад Вход: Нет. Предусловия: Нет. Процесс Возвращает аргумент самого комплексного числа q (в градусах). Например: q = (1 +i*1), q. Град = 45. Выход: Вещественное число. Постусловия: Нет. Степень Вход: Целое (n). Предусловия: Нет. Процесс Возвращает целую положительную степень n самого комплексного числа q. qn = rn(cos(n*fi)+ i*sin(n*fi)). Выход: Комплексное число (тип TComplex). Постусловия: Нет. Корень Вход: Целое (n), целое (i). Предусловия: Нет. Процесс Возвращает i-ый корень целой положительной степени n самого комплексного числа q. On(q) = On(r)*(cos ((fi + 2*k*pi)/n)+ i*sin((fi + 2*k*pi)/n)). При этом коэффициенту k придается последовательно n значений: k = 0,1,2…, n - 1 и получают n значений корня, т.е. ровно столько, каков показатель корня. Выход: Комплексное число (тип TComplex). Постусловия: Нет. Равно Вход: Комплексное число (d). Предусловия: Нет. Процесс Сравнивает само комплексное число с числом (d). Возвращает значение True, если они - тождественные комплексные числа, и значение False - в противном случае. Выход: Булевское значение. Постусловия: Нет. НеРавно Вход: Комплексное число (d). Предусловия: Нет. Процесс Сравнивает само комплексное число с числом (d). Возвращает значение True, если само число <> d, - значение False - в противном случае. Выход: Булевское значение. Постусловия: Нет. ВзятьReЧисло Вход: Нет Предусловия: Нет. Процесс Возвращает значение действительной части самого комплексного числа в числовом формате. Выход: Вещественное значение. Постусловия: Нет. ВзятьImЧисло Вход: Нет. Предусловия: Нет. Процесс Возвращает значение мнимой части самого комплексного числа в числовом формате. Выход: Вещественное значение. Постусловия: Нет. ВзятьReСтрока Вход: Нет. Предусловия: Нет. Процесс Возвращает значение вещественной части самого комплексного числа в строковом формате. Выход: Строка. Постусловия: Нет. ВзятьImСтрока Вход: Нет. Предусловия: Нет. Процесс Возвращает значение мнимой части самого комплексного числа в строковом формате. Выход: Строка. Постусловия: Нет. ВзятьКомплексноеСтрока Вход: Нет. Предусловия: Нет. Процесс Возвращает значение самого комплексного числа в строковом формате. Выход: Строка. Постусловия: Нет. end TComplex Рекомендации к выполнению 1. Тип данных реализовать, используя класс С++. 2. Тип данных реализовать в отдельном модуле UComplex в консольном приложении. Лабораторная работа 3. Абстрактный тип данных (ADT) p-ичное число Цель: Сформировать практические навыки реализации абстрактного типа данных с помощью классов С++. Задание 1. Реализовать абстрактный тип данных «р-ичное число», используя класс, в соответствии с приведенной ниже спецификацией. 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) Процесс: Инициализирует поля p-ичного числа: система счисления (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. Тип данных реализовать, используя класс С++. 2. Число храните как поле вещественного типа. 3. Основание системы счисления храните как поле целочисленного типа. 4. Тип данных реализовать в отдельном модуле UPNumber в режиме консольного приложения. Комментарии: 2018 год. Новые метод. указания. Размер файла: 1,3 Мбайт Фаил: ![]() ------------------- Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные! Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку. Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот. -------------------
Скачано: 3 Коментариев: 0 |
||||
Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них. Опять не то? Мы можем помочь сделать!
К сожалению, точных предложений нет. Рекомендуем воспользоваться поиском по базе. |
||||
Не можешь найти то что нужно? Мы можем помочь сделать! От 350 руб. за реферат, низкие цены. Спеши, предложение ограничено ! |
Вход в аккаунт:
Страницу Назад
Cодержание / Современные технологии программирования / Лабораторные работы №1-3 по дисциплине: «Современные технологии программирования. Часть 1». Вариант №06.