Контрольная работа Абстрактный тип данных (ADT) «Полином»

Состав работы

material.view.file_icon
material.view.file_icon
material.view.file_icon Polynom.bpf
material.view.file_icon Polynom.bpr
material.view.file_icon Polynom.cpp
material.view.file_icon Polynom.exe
material.view.file_icon Polynom.obj
material.view.file_icon Polynom.res
material.view.file_icon Polynom.tds
material.view.file_icon UPoly.h
material.view.file_icon Контрольная.doc
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Тема: Классы С++, библиотека STL, библиотечный класс Tlist C++ Builder.
Цель: Сформировать практические навыки реализации абстрактных типов данных с помощью классов.
Задание:
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Протестировать каждую операцию, определенную на типе данных.
Спецификация абстрактного типа данных «Полином».
ADT TPoly

Данные
Полиномы Tpoly - это неизменяемые полиномы с целыми коэффициентами.
Операции
Операции могут вызываться только объектом «полином» (тип TPoly), указатель на который передаётся в них по умолчанию. При описании операций этот объект в разделе «Вход» не указывается.
Таблица 1. Описание операций на ADT TPoly.
Наименование операции  Описание
Конструктор 
Начальные значения: Коэффициент (с) и степень (n) одночленного полинома
Процесс: Создаёт одночленный полином с коэффициентом (с) и степенью (n), или ноль-полином, если коэффициент (с) равен 0 и возвращает указатель на него.
Например:
Конструктор(6,3) = 6x^3
Конструктор(3,0) = 3
Конструктор() = 0
Выход: Указатель на созданный полином.
Постусловия: Нет.

Степень 
Вход: Нет.
Предусловия: Нет.
Процесс: Отыскивает степень n полинома, т.е. наибольшую степень при ненулевом коэффициенте (c). Степень нулевого полинома равна 0.
Например:
a = (x^2+1), a.Степень = 2
a = (17), a. Степень = 0
Выход: n - целое число - степень полинома.
Постусловия: Нет.

Коэффициент 
Вход: n - целое число - степень полинома.
Предусловия: Полином – не нулевой.
Процесс: Отыскивает коэффициент (c) при члене полинома со степенью n (c*x^n). Возвращает коэффициент (c) найденного члена или 0, если n больше степени полинома.
Например:
p = (x^3+2x+1), p.Coeff (4) = 0
p = (x^3+2x+1), p.Coeff (1) = 2
Выход: Целое число.
Постусловия: Нет.

Очистить (Clear) 
Вход: q - полином.
Предусловия: Нет
Процесс: Удаляет члены полинома.
Выход: Полином.
Постусловия: q – нуль-полином.

Сложить 
Вход: q - полином.
Предусловия: Нет
Процесс: Создаёт полином, являющийся результатом сложения полинома с полиномом q и возвращает его.
Выход: Полином.
Постусловия: Нет.

Умножить 
Вход: q - полином.
Предусловия: Нет.
Процесс: Создаёт полином, являющийся результатом умножения полинома на полином q и возвращает его.
Выход: Полином.
Постусловия: Нет.

Вычесть 
Вход: q - полином.
Предусловия: Нет.
Процесс: Создаёт полином, являющийся результатом вычитания из полинома полинома q, и возвращает его.
Выход: Полином.
Постусловия: Нет.

Минус 
Вход: Нет.
Предусловия: Нет.
Процесс: Создаёт полином, являющийся разностью ноль-полинома, и полинома и возвращает его.
Выход: Полином.
Постусловия: Нет.

Равно 
Вход: q - полином.
Предусловия: Нет.
Процесс: Сравнивает полином с полиномом q на равенство. Возвращает значение True, если полиномы равны, т.е. имеют одинаковые коэффициенты при соответствующих членах, и значение False - в противном случае.
Выход: Булевское значение.
Постусловия: Нет.

Дифференцировать 
Вход: Нет.
Предусловия: Нет.
Процесс: Создаёт полином, являющийся производной полинома и возвращает его.
Например:
a = (x3+7x+5), a.Дифференцировать = 3x2+7
Выход: Полином.
Постусловия: Нет.

Вычислить 
Вход: x – действительное число.
Предусловия: Нет.
Процесс: Вычисляет значение полинома в точке x и возвращает его.
Например:
a = (x2+3x), а.Вычислить(2) = 10
Выход: Действительное число.
Постусловия: Нет.

Элемент 
Вход: i - целое число - номер члена полинома.
Предусловия: Нет.
Процесс: Обеспечивает доступ к члену полинома с индексом i для чтения его коэффициента (c) и степени (n) так, что если изменять i от 0 до количества членов в полиноме минус один, то можно просмотреть все члены полинома.
Выход: Коэффициент – целое число, степень – целое число.
Постусловия: Полином не модифицируется.
end Tpoly
Рекомендации к выполнению
1. Тип данных реализовать, используя классы C++ и библиотеку STL.
2. Полином можно рассматривать как список одночленных полиномов, поэтому для реализации полинома полезно реализовать абстрактный вспомогательный тип данных одночленный полином. Спецификация для него приведена ниже.
Спецификация абстрактного типа данных Одночлен.
ADT TMember

Данные
Одночлен TMember - это изменяемые одночленные полиномы с целыми коэффициентами. Коэффициент и степень хранятся в полях целого типа FCoeff и FDegree соответственно.
Операции
Операции могут вызываться только объектом «одночлен» (тип TMember), указатель на который передаётся в них по умолчанию. При описании операций этот объект в разделе «Вход» не указывается.
Таблица 2. Описание операций на ADT TMember.
Наименование операции Описание
Конструктор 
Начальные значения: Коэффициент (с) и степень (n) одночленного полинома
Процесс: Создаёт одночленный полином с коэффициентом (с) и степенью (n), или ноль-полином, если коэффициент (с) равен 0 и возвращает указатель на него.
Например:
Конструктор(6,3 = 6x^3
Конструктор(3,0) = 3
Конструктор() = 0
Выход: Указатель на созданный одночленный полином.
Постусловия: Нет.

ЧитатьСтепень 
Вход: Нет.
Предусловия: Нет.
Процесс: Возвращает степень n одночленного полинома (содержимое поля FDegree). Степень нулевого полинома равна 0.
Например:
a = (1x^2), a.Степень = 2
Выход: n - целое число - степень полинома.
Постусловия: Нет.

ПисатьСтепень 
Вход: n - целое число - степень полинома.
Предусловия: Нет.
Процесс: Записывает степень n одночленного полинома в поле FDegree.
Выход: Нет.
Постусловия: Поле FDegree = n.

ПисатьКоэффициент 
Вход: c - целое число - коэффициент полинома.
Предусловия: Нет.
Процесс: Записывает коэффициент c одночленного полинома в поле FCoeff.
Выход: Нет.
Постусловия: Поле FCoeff = c.

Равно 
Вход: q - одночлен.
Предусловия: Нет.
Процесс: Сравнивает одночлен с одночленом q на равенство. Возвращает значение True, если одночлены равны, т.е. имеют одинаковые коэффициенты и степени, и значение False - в противном случае.
Выход: Булевское значение.
Постусловия: Нет.

Дифференцировать 
Вход: Нет.
Предусловия: Нет.
Процесс: Создаёт одночлен, являющийся производной одночлена и возвращает его.
Например:
a = (x3), a.Дифференцировать = 3x2.
Выход: Одночлен.
Постусловия: Нет.

Вычислить 
Вход: x – действительное число.
Предусловия: Нет.
Процесс: Вычисляет значение одночлена в точке x и возвращает его.
Например:
a = (1x2), а.Вычислить(2) = 4.
Выход: Действительное число.
Постусловия: Нет.

ОдночленВСтроку 
Вход: Нет.
Предусловия: Нет.
Процесс: Формирует строковое представление одночлена.
Выход: Строка.
Постусловия: Нет.
end TMember

3. Члены полинома храните в контейнере STL. Проанализируйте операции на полиноме и выберите тип контейнера.
4. Для реализации одночленного полинома (одночлена) создайте класс Tmember, в который вынесите все операции на членах полинома. После выполнения каждой операции приводите полином к нормализованному виду: упорядочить, привести подобные, удалить нулевые члены (члены с нулевыми коэффициентами).
5. Тип данных реализуйте в отдельном модуле UPoly.

Пример реализация полинома с помощью классов C++ Builder.
Для реализации полинома на C++ Builder можно использовать его библиотечный класс TList, который представляет собой список указателей на объекты класса TObject. Класс TObject является предком всех классов в модели ООП реализованной в C++ Builder.

Рисунок 1. Диаграмма UML – описание реализации полинома.

Порядок выполнения
В режиме консольного приложения
• опишите класс TMember, реализуйте класс и оттестируйте каждый метод.
• опишите класс TPoly, реализуйте класс и оттестируйте каждый метод и класс в целом.


Тестовые наборы поместите в таблицу следующего вида:
Таблица 11. Тестовый набор для тестирования операции Умножить на типе полином.

Тестовый набор для тестирования операции Умножить полиномы
Номер теста Исходные данные Ожидаемый результат
 Вход Полином Возвращаемое значение Полином
1 0*X^0 0*X^0 0*X^0 0*X^0
2 0*X^0 1*X^0 0*X^0 1*X^0
3 1*X^0 1*X^0 1*X^0 1*X^0
4 1*X^0 2*X^1 2*X^1 2*X^1
5 1*X^0 2*X^1+3*X^2 2*X^1+3*X^2 2*X^1+3*X^2
6 1*X^0+1*X^1 1*X^0-1*X^1 1*X^0-1*X^2 1*X^0-1*X^1

Дополнительная информация

Уважаемый слушатель, дистанционного обучения,
Оценена Ваша работа по предмету: Современные технологии в программировании (часть 1)
Вид работы: Контрольная работа 1
Оценка:Зачет
Дата оценки: 14.04.2016
Контрольная работа по дисциплине "Современные технологии программирования" Абстрактный тип данных (ADT) Полином.
Контрольнаяая работа по дисциплине «Современные технологии в программировании (часть 1)» Абстрактный тип данных (ADT) «Полином» . Современные технологии в программировании (часть 1) Тема: Классы С++, библиотека STL, библиотечный класс Tlist C++ Builder. Цель: Сформировать практические навыки реализации абстрактных типов данных с помощью классов. Задание: Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. Протестировать каждую операцию, определенную на типе данных. Спе
User Wei : 30 ноября 2017
100 руб.
Контрольная работа по дисциплине "Современные технологии программирования". Абстрактный тип данных (ADT) «Полином».
Тема: Классы С++, библиотека STL, библиотечный класс Tlist C++ Builder. Цель: Сформировать практические навыки реализации абстрактных типов данных с помощью классов. Задание: 1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. 2. Протестировать каждую операцию, определенную на типе данных. Спецификация абстрактного типа данных «Полином». ADT TPoly Данные Полиномы Tpoly - это неизменяемые полиномы с целыми коэффициентами. Операции Операции могут вызываться только объ
User Doctor_Che : 29 мая 2013
40 руб.
Абстрактный тип данных (ADT) «полином». Лабораторная работа № 7
Тема: Классы Object Pascal, стандартный класс Tlist. Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal. Задание 1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. 2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования. 3. Оттестировать тип данных в целом.
User new2011 : 2 марта 2013
35 руб.
Абстрактный тип данных (ADT) «Полином» . Современные технологии в программировании (часть 1)
Контрольнаяая работа по дисциплине «Современные технологии в программировании (часть 1)» Абстрактный тип данных (ADT) «Полином» . Современные технологии в программировании (часть 1) Тема: Классы С++, библиотека STL, библиотечный класс Tlist C++ Builder. Цель: Сформировать практические навыки реализации абстрактных типов данных с помощью классов. Задание: Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. Протестировать каждую операцию, определенную на типе данных. Спе
User rmn77 : 19 октября 2017
50 руб.
Абстрактный тип данных (ADT) «Полином» . Современные технологии в программировании (часть 1) promo
Современные технологии программирования. Абстрактный тип данных (ADT) «полином». Лабораторная работа № 7
Тема: Классы Object Pascal, стандартный класс Tlist. Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal. Задание: 1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. 2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования. 3. Оттестировать тип данных в целом.
User wchg : 26 августа 2013
149 руб.
Современные технологии программирования. Лабораторная работа № 7 - Абстрактный тип данных (ADT) «полином»
Лабораторная работа № 7 Абстрактный тип данных (ADT) «полином» Задание • Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. • Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования. • Оттестировать тип данных в целом. Спецификация абстрактного типа данных Полином. ADT TPoly Данные Полиномы Tpoly - это неизменяемые полиномы с целыми коэффициентами. Операции Операции могут вызываться только объектом «полином» (тип TPoly), указатель на ко
User JulDir : 28 октября 2012
39 руб.
Современные технологии программирования. Лабораторная работа №7. Для всех вариантов. Абстрактный тип данных (ADT) «полином»
Тема: Классы Object Pascal, стандартный класс Tlist. Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal. Задание 1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. 2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования. 3. Оттестировать тип данных в целом. Спецификация абстрактного типа данных Полином. ADT TPoly Данные Полиномы Tpoly - это неизменяемые полиномы с целыми коэфф
User nik200511 : 27 февраля 2015
76 руб.
Лабораторная работа № 8 по дисциплине "Современные технологии программирования.". Абстрактный тип данных (ADT) «полином».
Тема: Классы Object Pascal, стандартный класс Tlist. Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal. Задание: 1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией. 2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования. 3. Оттестировать тип данных в целом. Спецификация абстрактного типа данных Полином. ADT TPoly Данные Полиномы Tpoly - это неизменяемые полиномы с целыми к
User Doctor_Che : 9 февраля 2012
40 руб.
Разъемные соединения Соединения резьбовые Задание № 7 Вариант 14
Дано: конструктивный фон и материал деталей, из которых состоит конструктивный фон, параметры крепежных деталей – болта, винта и шпильки. Требуется: - выполнить сборочный чертеж резьбовых соединений крепежными деталями в соответствии с ГОСТ 2.311-68 и с упрощенным изображением головок болтов и гаек по ГОСТ 2.315-68 Вариант 14 НГАУ чертеж в 16 компасе Файлы компаса можно просматривать и сохранять в нужный формат бесплатной программой КОМПАС-3D Viewer. Если есть какие-то вопросы или нужно друг
User Laguz : 4 сентября 2024
120 руб.
Разъемные соединения Соединения резьбовые Задание № 7 Вариант 14
Экзамен по дисциплине: макроэкономика. Билет №2
1. Фаза кризиса характеризируется: а) падением цен, переполнением рынка товарами. б) резким сокращением объемов производства. в) массовым банкротством и гибелью множества предприятий. г) ростом безработицы и снижением заработной платы. д) паникой на фондовой бирже и массовым падением курса акций. е) кризисом кредитной системы, массовым банкротством банков и резким ростом ссудного процента. Практические задания. 1. Реальный ВНП России в 1996 г. составил 46% от уровня 1991 г. Цены за этот период в
User xtrail : 5 апреля 2013
120 руб.
Лабораторная работа №1 по дисциплине: Операционные системы. Вариант общий. СибГУТИ ДО.
Выполнить указанные действия. Создать отчет, в котором отразить выполняемое задание, команды, с помощью которых выполняются указанные действия и результат, полученный после выполнения команды (в виде скриншотов). 1. Создать файл a1 с помощью команды cat; ввести в файл текст из 6-ти строк вида (строка начинается с цифры порядкового номера строки): 1. my name is ... 2. my surname is ... 3. login is ... 4. <текст произвольного содержания (не менее 2-х слов)> 5. <текст произвольного содержания (не
User лодырьномер1 : 29 мая 2022
299 руб.
ДЕТАЛИ МАШИН. Конспект лекций
1. Механические передачи 2. Элементы, обеспечивающие вращательное движение (валы и подшипники) 3. Соединения 4. Муфты приводов Цель курса ДМ и ОК: изучение, расчёт и проектирование деталей общемашиностроительного назначения - т.е. основы проектирования машин и механизмов.
User elementpio : 12 февраля 2011
2 руб.
up Наверх