КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Операции
Задание
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 до количества элементов во множестве, то можно просмотреть все элементы множества.
| | Выход:
| Элемент множества типа Т.
| | Постусловия:
| Множество не модифицируется
|
|