КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Операции
Задание
1. В соответствии с приведенной ниже спецификацией реализовать тип «множество». Для тестирования в качестве значения для типаT выберите тип int.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
Спецификация типа данных «множество»
ADTTSet
Данные
Множества - это изменяемые неограниченные наборы элементов типа T. Содержимое множества изменяется следующими операциями:
· Опустошить (опустошение множества);
· Добавить (добавление элемента во множество);
· Удалить (извлечение элемента из множества).
Множество поддерживает следующую дисциплину записи и извлечения элементов: элемент может присутствовать во множестве только в одном экземпляре, при извлечении выбирается заданный элемент множества и удаляется из множества.
Операции
Операции могут вызываться только объектом «множество» (тип TSet), указатель на который передаётся в них по умолчанию. При описании операций этот объект в разделе «Вход» не указывается.
Таблица 1. Описание операций на ADT TSet.
Наименование Операции
| Описание
| Конструктор
|
| Начальные значения:
| Нет.
| Процесс:
| Создаёт пустое множество элементов типа T.
|
| Опустошить
|
| Вход:
| Нет.
| Предусловия:
| Нет.
| Процесс:
| Удаляет из множества все элементы.
| Выход:
| Нет.
| Постусловия:
| Множество - пусто.
|
| Добавить
|
| Вход:
| d – элемент типа Т.
| Предусловия:
| Нет.
| Процесс:
| Добавляет d во множество, если в нем нет такого элемента.
| Выход:
| Нет.
| Постусловия:
| Множество содержит элемент d.
|
| Удалить
|
| Вход:
| d – элемент типа Т.
| Предусловия:
| Нет.
| Процесс:
| Удаляет элемент d из множества, если d принадлежит множеству.
| Выход:
| Нет.
| Постусловия:
| Множество не содержит элемент d.
|
| Пусто
|
| Вход:
| Нет.
| Предусловия:
| Нет.
| Процесс:
| Определяет, содержит ли множество элементы. Возвращает значение True, если множество не пусто, False – в противном случае.
| Выход:
| Булевское значение.
| Постусловия:
| Нет.
|
| Принадлежит
|
| Вход:
| d – элемент типа Т.
| Предусловия:
| Нет.
| Процесс:
| Определяет, принадлежит ли элемент d множеству. Возвращает True, если d принадлежит множеству, False - в противном случае.
| Выход:
| Булевское значение.
| Постусловия:
| Нет.
|
| Объединить
|
| Вход:
| Множество q.
| Предусловия:
| Нет
| Процесс:
| Создаёт множество, полученное в результате объединения множества с множеством q.
| Выход:
| Множество.
| Постусловия:
| Нет.
|
| Вычесть
|
| Вход:
| Множество q.
| Предусловия:
| Нет.
| Процесс:
| Создаёт множество, полученное в результате вычитания из множества множество q.
| Выход:
| Множество.
| Постусловия:
| Нет.
|
| Умножить
|
| Вход:
| Множество q.
| Предусловия:
| Нет.
| Процесс:
| Создаёт множество, являющееся пересечением множества с множеством q.
| Выход:
| Множество.
| Постусловия:
| Нет.
|
| Элементов
|
| Вход:
| Нет.
| Предусловия:
| Нет.
| Процесс:
| Подсчитывает и возвращает количество элементов во множестве, если множество пустое - ноль
| Выход:
| Целое - количество элементов во множестве.
| Постусловия:
| Нет.
|
| Элемент
|
| Вход:
| j - номер элемента множества.
| Предусловия:
| Нет.
| Процесс:
| Обеспечивает доступ к элементу множества для чтения по индексу j так, что если изменять j от 1 до количества элементов во множестве, то можно просмотреть все элементы множества.
| Выход:
| Элемент множества типа Т.
| Постусловия:
| Множество не модифицируется
|
|