Современные технологии программирования. Лабораторная работа №7. Для всех вариантов. Абстрактный тип данных (ADT) «полином»
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Тема: Классы Object Pascal, стандартный класс Tlist.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
Спецификация абстрактного типа данных Полином.
ADT TPoly
Данные
Полиномы Tpoly - это неизменяемые полиномы с целыми коэффициентами.
Операции
Операции могут вызываться только объектом «полином» (тип TPoly), указатель на который передаётся в них по умолчанию. При описании операций этот объект в разделе «Вход» не указывается.
Таблица 9. Описание операций на ADT TPoly.
end Tpoly
Рекомендации к выполнению
1. Тип данных реализовать, используя классы Object Pascal.
2. Полином можно рассматривать как список одночленных полиномов, поэтому для реализации полинома полезно реализовать абстрактный вспомогательный тип данных одночленный полином. Спецификация для него приведена ниже.
Спецификация абстрактного типа данных Одночлен.
ADT TMember
Данные
Одночлен TMember - это изменяемые одночленные полиномы с целыми коэффициентами. Коэффициент и степень хранятся в полях целого типа FCoeff и FDegree соответственно.
Операции
Операции могут вызываться только объектом «одночлен» (тип TMember), указатель на который передаётся в них по умолчанию. При описании операций этот объект в разделе «Вход» не указывается.
Таблица 10. Описание операций на ADT TMember.
end TMember
3. Для хранения членов полинома используйте список Tlist для этого класс Tpoly, реализующий тип данных полином, сделайте наследником от класса Tlist:
TPoly = class(TList)
private
function Get: String;virtual;
function GetMember(index: Cardinal): TMember;virtual;
procedure SetMember(index: Cardinal; E: TMember);virtual;
public
constructor Create(nc: Integer = 0; nd: Integer = 0);
destructor Destroy;override;
function Degree: cardinal;
function Coeff(n: Integer): Integer;
property Poly: String read Get;
function _Add(b: TPoly): TPoly;//Операция Сложить.
function Sub(b: TPoly): TPoly;// Операция Вычесть.
function Minus: TPoly;// Операция Минус.
function Mul(b: TPoly): TPoly;// Операция Умножить.
function Diff: TPoly;// Операция Дифференцировать.
function Eval(v: Real): Real;// Операция Вычислить.
function Eqval(b: TPoly): Boolean;// Операция Равно.
property Member[index: Cardinal]: TMember read GetMember;
//Операция Элемент.
private
procedure RemoveZero;//Удаляет члены с нулевыми //коэффициентами.
procedure Likeness;//Приведение подобных.
procedure Invar;//Преобразует полином к стандартному виду:
//упорядочен, приведены подобные, удалены нулевые //члены.
procedure AddCopies(b: TPoly; k: Integer);//добавляем копии //элементов b в хвост.
function MulNum(Num: TMember): TPoly;//Умножение //полинома на одночлен.
end;
4. Для реализации одночленного полинома (одночлена) создайте класс Tmember, в который вынесите все операции на членах полинома:
TMember = class
// Реализует одночлен вида FCoeff * X^ FDegree.
private
FDegree: Integer;//Степень одночлена.
FCoeff: Integer;//Коэффициент одночлена.
function Get: String;
//Операция ОдночленВСтроку.
function GetCoeff: Integer;
//Операция ЧитатьКоэффициент (поля FCoeff).
function GetDegree: Integer;
//Операция ЧитатьСтепень (поля FDegree).
procedure SetDegree(nd: Integer);
//Операция ПисатьСтепень (поля FDegree).
procedure SetCoeff(nc: Integer);
//Операция ПисатьКоэффициент (поля FCoeff).
public
function Diff: TMember;
//Операция Дифференцировать.Дифференцирование одночлена.
function Value(v: Real): Real;
//Операция Вычислить. Вычисляет значение одночлена.
property Coeff: Integer read GetCoeff write SetCoeff;
//Операция для чтения и записи коэффициента (поля FCoeff).
property Degree: Integer read GetDegree write SetDegree;
//Операция для чтения и записи степени (поля FDegree).
property Member: String read Get;
//Операция ОдночленВСтроку. Свойство для чтения одночлена в
//строковом формате.
function Eq(b: TMember): Boolean;
//Операция Равно. Сравнение одночлена с одночленом b.
constructor Create(nd: Integer = 0;nc: Integer = 0);
end;
5. После выполнения каждой операции приводите полином к нормализованному виду: упорядочить, привести подобные, удалить нулевые члены (члены с нулевыми коэффициентами).
6. Тип данных реализуйте в отдельном модуле UPoly.
Порядок выполнения
В режиме консольного приложения
• опишите класс 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. Задание.
2. Текст программы на Object Pascal.
3. Тестовые наборы данных для тестирования типа данных.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
Спецификация абстрактного типа данных Полином.
ADT TPoly
Данные
Полиномы Tpoly - это неизменяемые полиномы с целыми коэффициентами.
Операции
Операции могут вызываться только объектом «полином» (тип TPoly), указатель на который передаётся в них по умолчанию. При описании операций этот объект в разделе «Вход» не указывается.
Таблица 9. Описание операций на ADT TPoly.
end Tpoly
Рекомендации к выполнению
1. Тип данных реализовать, используя классы Object Pascal.
2. Полином можно рассматривать как список одночленных полиномов, поэтому для реализации полинома полезно реализовать абстрактный вспомогательный тип данных одночленный полином. Спецификация для него приведена ниже.
Спецификация абстрактного типа данных Одночлен.
ADT TMember
Данные
Одночлен TMember - это изменяемые одночленные полиномы с целыми коэффициентами. Коэффициент и степень хранятся в полях целого типа FCoeff и FDegree соответственно.
Операции
Операции могут вызываться только объектом «одночлен» (тип TMember), указатель на который передаётся в них по умолчанию. При описании операций этот объект в разделе «Вход» не указывается.
Таблица 10. Описание операций на ADT TMember.
end TMember
3. Для хранения членов полинома используйте список Tlist для этого класс Tpoly, реализующий тип данных полином, сделайте наследником от класса Tlist:
TPoly = class(TList)
private
function Get: String;virtual;
function GetMember(index: Cardinal): TMember;virtual;
procedure SetMember(index: Cardinal; E: TMember);virtual;
public
constructor Create(nc: Integer = 0; nd: Integer = 0);
destructor Destroy;override;
function Degree: cardinal;
function Coeff(n: Integer): Integer;
property Poly: String read Get;
function _Add(b: TPoly): TPoly;//Операция Сложить.
function Sub(b: TPoly): TPoly;// Операция Вычесть.
function Minus: TPoly;// Операция Минус.
function Mul(b: TPoly): TPoly;// Операция Умножить.
function Diff: TPoly;// Операция Дифференцировать.
function Eval(v: Real): Real;// Операция Вычислить.
function Eqval(b: TPoly): Boolean;// Операция Равно.
property Member[index: Cardinal]: TMember read GetMember;
//Операция Элемент.
private
procedure RemoveZero;//Удаляет члены с нулевыми //коэффициентами.
procedure Likeness;//Приведение подобных.
procedure Invar;//Преобразует полином к стандартному виду:
//упорядочен, приведены подобные, удалены нулевые //члены.
procedure AddCopies(b: TPoly; k: Integer);//добавляем копии //элементов b в хвост.
function MulNum(Num: TMember): TPoly;//Умножение //полинома на одночлен.
end;
4. Для реализации одночленного полинома (одночлена) создайте класс Tmember, в который вынесите все операции на членах полинома:
TMember = class
// Реализует одночлен вида FCoeff * X^ FDegree.
private
FDegree: Integer;//Степень одночлена.
FCoeff: Integer;//Коэффициент одночлена.
function Get: String;
//Операция ОдночленВСтроку.
function GetCoeff: Integer;
//Операция ЧитатьКоэффициент (поля FCoeff).
function GetDegree: Integer;
//Операция ЧитатьСтепень (поля FDegree).
procedure SetDegree(nd: Integer);
//Операция ПисатьСтепень (поля FDegree).
procedure SetCoeff(nc: Integer);
//Операция ПисатьКоэффициент (поля FCoeff).
public
function Diff: TMember;
//Операция Дифференцировать.Дифференцирование одночлена.
function Value(v: Real): Real;
//Операция Вычислить. Вычисляет значение одночлена.
property Coeff: Integer read GetCoeff write SetCoeff;
//Операция для чтения и записи коэффициента (поля FCoeff).
property Degree: Integer read GetDegree write SetDegree;
//Операция для чтения и записи степени (поля FDegree).
property Member: String read Get;
//Операция ОдночленВСтроку. Свойство для чтения одночлена в
//строковом формате.
function Eq(b: TMember): Boolean;
//Операция Равно. Сравнение одночлена с одночленом b.
constructor Create(nd: Integer = 0;nc: Integer = 0);
end;
5. После выполнения каждой операции приводите полином к нормализованному виду: упорядочить, привести подобные, удалить нулевые члены (члены с нулевыми коэффициентами).
6. Тип данных реализуйте в отдельном модуле UPoly.
Порядок выполнения
В режиме консольного приложения
• опишите класс 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. Задание.
2. Текст программы на Object Pascal.
3. Тестовые наборы данных для тестирования типа данных.
Дополнительная информация
Уважаемый слушатель, дистанционного обучения,
Оценена Ваша работа по предмету: Современные технологии программирования
Вид работы: Лабораторная работа 7
Оценка:Зачет
Дата оценки: 03.02.2015
Рецензия:Уважаемая ,
Зайцев Михаил Георгиевич
Оценена Ваша работа по предмету: Современные технологии программирования
Вид работы: Лабораторная работа 7
Оценка:Зачет
Дата оценки: 03.02.2015
Рецензия:Уважаемая ,
Зайцев Михаил Георгиевич
Похожие материалы
Современные технологии программирования. Абстрактный тип данных (ADT) «полином». Лабораторная работа № 7
wchg
: 26 августа 2013
Тема: Классы Object Pascal, стандартный класс Tlist.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание:
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
149 руб.
Современные технологии программирования. Лабораторная работа № 7 - Абстрактный тип данных (ADT) «полином»
JulDir
: 28 октября 2012
Лабораторная работа № 7
Абстрактный тип данных (ADT) «полином»
Задание
• Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
• Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
• Оттестировать тип данных в целом.
Спецификация абстрактного типа данных Полином.
ADT TPoly
Данные
Полиномы Tpoly - это неизменяемые полиномы с целыми коэффициентами.
Операции
Операции могут вызываться только объектом «полином» (тип TPoly), указатель на ко
39 руб.
Лабораторная работа №7. Современные технологии программирования. Абстрактный тип данных (ADT) «полином». Вариант 14
Udacha2013
: 3 марта 2016
Лабораторная работа. Абстрактный тип данных (ADT) «полином»
Тема: Классы Object Pascal, стандартный класс Tlist.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
Спецификация абстрактного типа данных Полином.
ADT TPoly
Дан
200 руб.
Абстрактный тип данных (ADT) «полином». Лабораторная работа № 7
new2011
: 2 марта 2013
Тема: Классы Object Pascal, стандартный класс Tlist.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
35 руб.
Лабораторная работа №7 По дисциплине: «Современные технологии программирования» Абстрактный тип данных (ADT) «полином» Вариант 1
Araxic
: 2 февраля 2017
Задание работы:
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
100 руб.
Лабораторная работа № 7 по дисциплине "Современные технологии программирования". Абстрактный тип данных (ADT) "полином". Вариант №1
xtrail
: 3 сентября 2013
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание:
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
Оттестировать тип данных в целом.
300 руб.
Лабораторная работа № 7 по дисциплине «Современные технологии программирования». Абстрактный тип данных (ADT) «полином». Вариант №1
xtrail
: 17 апреля 2013
Тема: Классы Object Pascal, стандартный класс Tlist.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание:
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
Контрольные вопросы
1. Чем определяется размер памяти, выделяемой под экземпляр класса?
2. Что такое RTTI класса?
3. Как
200 руб.
Современные технологии программирования. Лабораторная работа №7. Абстрактный тип данных "полином".
zhekaersh
: 20 февраля 2015
Тема: Классы Object Pascal, стандартный класс Tlist.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание
1. Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2. Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3. Оттестировать тип данных в целом.
Спецификация абстрактного типа данных Полином.
ADT TPoly
Данные
Полиномы Tpoly - это неизменяемые полиномы с целыми ко
70 руб.
Другие работы
Теплотехника 18.03.01 КубГТУ Задача 4 Вариант 15
Z24
: 23 января 2026
Две близко расположенные друг к другу пластины с температурами t1, t2 и степенью черноты ε1, ε2 обмениваются лучистой энергией. Определить: собственное излучение для каждой пластины; плотность результирующего теплового потока между пластинами; изменение плотности теплового потока после установки между пластинами плоского параллельного им экрана со степенью черноты εэ.
150 руб.
Витрати виробнцитва. Їх класифікація
VikkiROY
: 26 ноября 2012
ВСТУП
Одним з елементів цілісної системи управління є управління витратами підприємств і організацій. Раціональне управління витратами є запорукою фінансової стабільності та стійкості у роботі вітчизняних товаровиробників. Недооцінка ролі управління витратами зумовлює значні витрати підприємств і організацій, що у кінцевому випадку негативно впливає на рівень виробничих витрат та на результати господарювання.
Управління витратами передбачає управління процесами та факторами, що впливають на форм
10 руб.
Актуальные проблемы массовой коммуникации
Elfa254
: 3 марта 2013
Название документа: Актуальные проблемы массовой коммуникации . 9 Актуальные проблемы массовой коммуникации Введение Массовая коммуникация играет огромную роль в жизни людей, она буквально вплетена в ткань современного общества, в его экономику, политику и культуру, она охватывает международные, межгрупповые и межличностные отношения. Революционные преобразования, произошедшие в последние десятилетия, привели к росту воздействия
средств массовой информации (СМИ) на все области жизни, как челове
10 руб.
Гидромеханика ГУМРФ им. адм. С. О. Макарова 2017 Задача 5.19
Z24
: 28 октября 2025
По трубопроводу диаметром d0 = 48 мм движется вода в количестве 1 кг/с (рис. 5.1). Определите скорости воды в разветвлённых частях водопровода, если известно, что расход воды во второй ветви трубопровода диаметром d2 = 14 мм в два раза меньше, чем в первой ветви трубопровода диаметром d1 = 20 мм.
160 руб.