Сибирский государственный университет телекоммуникаций и информатики.
Факультет заочного обучения.
Лабораторная работа №1 по дисциплине «Современные технологии программирования».
Выполнил:
Студент ФЗО СибГУТИ
Группы ЗП-71
Карнаухов Д.С.
Номер студенческого билета 092П-051
Проверил:
Зайцев М.Г.
Новосибирск 2011г.
Содержание.
1. Задание…………………….…………………………………………………………...3
2. Текст программы …………………………………………………………………….6
3. Тестирование ………………………………………………………………………...12
1. Задание.
Сформировать практические навыки: реализации абстрактных типов данных с помощью классов С++. Реализовать абстрактный тип данных «простая дробь», используя классы С++, в соответствие с приведенной ниже спецификацией.
Данные
Простая дробь (тип 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’) = 6/3 КонструкторСтрока (‘0/3’) = 0/3 |
Копировать: |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Создаёт копию самой дроби (тип TFrac) с числителем, и знаменателем такими же, как у самой дроби. |
Выход: |
Простая дробь (тип TFrac). Например: c = 6/3, Копировать(c) = 6/3 |
Постусловия: |
Нет. |
Сложить |
|
Вход: |
Простая дробь 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). |
Постусловия: |
Нет. |
Обратное |
|
Вход: |
Нет. |
Предусловия: |
Числитель дроби (a/b) не равен нулю (a<>0). |
Процесс: |
Создаёт и возвращает простую дробь (тип TFrac), полученное делением единицы на саму дробь: 1/((a/b) = b/a. |
Выход: |
Простая дробь (тип TFrac) |
Постусловия: |
Нет. |
Минус |
|
Вход: |
Простая дробь (q) (тип TFrac). |
Предусловия: |
Нет. |
Процесс: |
Создаёт простую дробь, являющуюся разностью простых дробей z и q, где z - простая дробь (0/1). |
Выход: |
Простая дробь (тип TFrac). |
Постусловия: |
Нет. |
Равно |
|
Вход: |
Простая дробь d (тип TFrac). |
Предусловия: |
Нет |
Процесс: |
Сравнивает саму простую дробь q и d. Возвращает значение True, если q и d - тождественные простые дроби, и значение False - в противном случае. |
Выход: |
Булевское значение. |
Постусловия: |
Нет. |
Больше |
|
Вход: |
Простая дробь d (тип TFrac). |
Предусловия: |
Нет. |
Процесс: |
Сравнивает саму простую дробь q и d. Возвращает значение True, если q > d, - значение False - в противном случае. |
Выход: |
Булевское значение. |
Постусловия: |
Нет. |
ВзятьЧислительЧисло |
|
Вход: |
|
Предусловия: |
Нет. |
Процесс: |
Возвращает значение числителя дроби в числовом формате. |
Выход: |
Целое значение. |
Постусловия: |
Нет. |
ВзятьЗнаменательЧисло |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Возвращает значение знаменателя дроби в числовом формате. |
Выход: |
Целое значение. |
Постусловия: |
Нет. |
ВзятьЧислительСтрока |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Возвращает значение числителя дроби в строковом формате. |
Выход: |
Строка. |
Постусловия: |
Нет. |
ВзятьЗнаменательСтрока |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Возвращает значение знаменателя дроби в строковом формате. |
Выход: |
Строка. |
Постусловия: |
Нет. |
ВзятьДробьСтрока |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Возвращает значение простой дроби, в строковом формате. |
Выход: |
Строка. |
Постусловия: |
Нет. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.