Вариант 11 Лабораторная работа 01 |
250,00 ₽
Просмотров: 1025
|
Тип работы: | Лабораторная работа |
Название предмета: | Современные технологии программирования |
Тема/вариант: | Вариант 11 Лабораторная работа 01 |
Объем работы: | 10 |
ВУЗ: | СибГУТИ |
Дата выполнения: | 2013-08-20 |
Размер файла, тип файла: | 277.52 Kb, , DCU, PAS, ~PAS, CFG, DOF, DPR, EXE, RES, ~DPR, DDP, DFM, ~DDP, ~DFM, DOC |
Прикрепленные файлы: |
Курс 280 Задание на курсовую работу по дисциплине «Современные технологии программирования» 8 семестр (3616 Kb)
|
Тема: Классы Object Pascal, С++
Цель:
Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal С++.
Задание:
Реализовать абстрактный тип данных «простая дробь», используя классы Delphi, С++ в соответствии с приведенной ниже спецификацией.
Протестировать каждую операцию, определенную на типе данных одним из методов тестирования.
Протестировать тип данных в целом.
Спецификация типа данных «простые дроби».
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’) = 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).
Постусловия: Нет.
Обратное
Вход: Нет.
Предусловия: Нет.
Процесс: Создаёт и возвращает простую дробь (тип 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. Тип данных реализовать, используя классы Object Pascal.
2. Для записи и считывания полей простой дроби использовать свойства (property).
3. Тип данных реализовать в отдельном модуле UFrac.
Содержание отчета:
1. Задание.
2. Текст программы.
3. Тестовые наборы данных для тестирования типа данных.
Сообщить другу