Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Академик
Рейтинг: 8743
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Профессор
Рейтинг: 3036
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2542
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / C/C++

Номер выпуска:1699
Дата выхода:26.11.2011, 03:00
Администратор рассылки:Киселёва Алёна aka Verena (Профессор)
Подписчиков / экспертов:280 / 163
Вопросов / ответов:1 / 1

Консультация # 184483: Здравствуйте! У меня возникли сложности с таким вопросом: Требуется написать программу из области объектно-ориентированного программирования на С++. В Microcoft Visual Studio 2005. Код прокомментировать. Буду благодарна за помощь. первая часть задания сделана но некоторые функции не работали или не совсем так как требовали. про...


Консультация # 184483:

Здравствуйте!
У меня возникли сложности с таким вопросом:

Требуется написать программу из области объектно-ориентированного программирования на С++. В Microcoft Visual Studio 2005. Код прокомментировать. Буду благодарна за помощь.

первая часть задания сделана но некоторые функции не работали или не совсем так как требовали.
просьба исправить их и переделать выделение памяти со статической на динамическую.
Задача:
Разработать класс «полином » в соответствии со следующим заданием:
Состояние класса-
Полином задается значениями коэффициентов типа double и определяется степенью полинома и значениями коэффициентов, например полином 4*х**2+7.5*х -3.9 задается степенью 2 и значениями коэффициентов{4.0,7.5.-3.9}. пункт 3. было(Память под полином выделяется статически, во время компиляции, и задается массивом фиксированного предельного значения (например, максимальная степень полинома равна 20).)
Протокол класса –
Определяет возможности создания и инициализации экземпляров класса и правила использования их (методы класса).
Предусмотреть следующие возможности:
-пустой конструктор для инициализации экземпляров и массивов экземпляров класса по умолчанию;
-создание экземпляров класса с инициализацией полинома нулевой степени («константа»)
- создание экземпляров класса с инициализацией степенью полинома и значениями его коэффициентов;
-ввод экземпляров класса из входного потока и вывод их значений в выходной поток (с помощью перегруженных оператор >> и <<);
-выполнение операции сложения двух полиномов (с помощью перегруженного оператора сложения + ). должен получаться новый экземпляр класса не изменяя исходного. с выводом на экран. плюс пользователь должен ввести второй полином.
-вычисление значения полинома в некоторой заданной точке;
-получение полинома для производной от данного полинома (с помощью перегруженного оператора () ); производная от исходного полинома. тоже дол жен получиться отдельный экземпляр класса. с выводом на экран
-деление многочлена на двучлен вида(x-b)(то есть, для деления задается только коэффициент b);результатом деления является новый полином и остаток (значение типа double); также новый экземпляр класса. и с вывод на экран.
-определение нуля полинома на заданном промежутке (то есть, значение аргумента х ,при котором полином обращается в нуль; для определения существования и единственности корня на отрезке проверить условие сохранения знака первой и второй производных) методом половинного деления. функция bool. если корни есть возвращает корень. или что корней нет.
2.проектирование класса рекомендуется начать с представления состояния класса, учитывающего заданные операции, а затем реализации конструкторов и перегруженного оператора вывода. Для отладки и исчерпывающего тестирования других методов разработанного класса реализовать диалоговую программу, которая позволяет вводить параметры, отлаживаемых методов. Для обработки ошибочных ситуаций использовать механизм исключительных ситуаций.
3.разработку класса при условии, что память под полином необходимой длины выделяется динамически, во время выполнения программ(с помощью оператора new;память задается указателем на double в состоянии класса)
Дополнить интерфейс следующими возможностями:
-создание экземпляра класса с его инициализаций другим экземпляром класса(копирующий конструктор;) вроде сделано, проверить
-переопределение экземпляра класса(с помощью перегруженного оператора присваевания) вроде сделано, проверить
4.написать прикладную программу, использующую разработанный класс.

в функии main сделать циклично меню с выполнением всех нужный пунктов.

Дата отправки: 17.11.2011, 02:17
Вопрос задал: Tigresska (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Киселёва Алёна aka Verena (Профессор):

Здравствуйте, Tigresska!
Вот вариант решения Вашей задачи. Для деления использована схема сокращённого деления Горнера. Для поиска корней - метод простых итераций.
Чтобы суммирование возвращало новый экземпляр, сделала его дружественной функцией (можно было, конечно, и в методе так сделать, но так красивее мне показалось).
Код в приложении, из комментариев должно быть всё ясно. Будут вопросы, обращайтесь.

Удачи!

Приложение:

Консультировал: Киселёва Алёна aka Verena (Профессор)
Дата отправки: 25.11.2011, 15:09

5
Сделали все просто отлично))) спасибки))
-----
Дата оценки: 26.11.2011, 01:56

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное