Страницу Назад
Поискать другие аналоги этой работы

120

Современные технологии программирования (часть 1-я). Лабораторные работы №1-3. Для всех вариантов (новые)

ID: 214985
Дата закачки: 28 Декабря 2020
Продавец: nik200511 (Напишите, если есть вопросы)
    Посмотреть другие работы этого продавца

Тип работы: Работа Лабораторная
Форматы файлов: Microsoft Word, C++
Сдано в учебном заведении: ДО СИБГУТИ

Описание:
Лабораторная работа 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 в режиме консольного приложения.


Комментарии: март 2020, зачтено без замечаний

Размер файла: 1,3 Мбайт
Фаил: Упакованные файлы (.rar)
-------------------
Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные!
Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку.
Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот.
-------------------

   Скачать

   Добавить в корзину


    Скачано: 3         Коментариев: 0


Не можешь найти то что нужно? Мы можем помочь сделать! 

От 350 руб. за реферат, низкие цены. Просто заполни форму и всё.

Спеши, предложение ограничено !



Что бы написать комментарий, вам надо войти в аккаунт, либо зарегистрироваться.

Страницу Назад

  Cодержание / Современные технологии программирования / Современные технологии программирования (часть 1-я). Лабораторные работы №1-3. Для всех вариантов (новые)
Вход в аккаунт:
Войти

Забыли ваш пароль?

Вы еще не зарегистрированы?

Создать новый Аккаунт


Способы оплаты:
UnionPay СБР Ю-Money qiwi Payeer Крипто-валюты Крипто-валюты


И еще более 50 способов оплаты...
Гарантии возврата денег

Как скачать и покупать?

Как скачивать и покупать в картинках


Сайт помощи студентам, без посредников!