25.02.2017, 09:47 [+3 UTC]
в нашей команде: 1 815 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
24.02.2017, 15:28

Последний вопрос:
24.02.2017, 22:03

Последний ответ:
25.02.2017, 07:05

Последняя рассылка:
24.02.2017, 16:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
24.12.2015, 23:11 »
Primo
Спасибо большое очень помогли. Отдельно спасибо за отдельное объяснение. [вопрос № 188528, ответ № 273135]
12.10.2009, 11:26 »
[аноним]
Почтение и Уважение создателям этого сайта! Обзавелся новыми знаниями, здесь мне помогли решить много задач.

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 644
Асмик Гаряка
Статус: Советник
Рейтинг: 246
solowey
Статус: 5-й класс
Рейтинг: 221

Перейти к консультации №:
 

Консультация онлайн # 190334
Раздел: • С / С++
Автор вопроса: Nemesis (Посетитель)
Отправлена: 23.12.2016, 17:25
Поступило ответов: 1

Добрый день, уважаемые эксперты!
Помогите пожалуйста решить задачу: Создать абстрактный базовый класс с виртуальной функцией - корни уравнения. Создать производные классы: класс линейных уравнений и класс квадратных уравнений. Определить функцию вычисления корней уравнений.
Заранее спасибо!

Состояние: Консультация закрыта

Ответ # 274484 от solowey (5-й класс)

Здравствуйте, Nemesis!

#include <iostream>

using namespace std;

class BaseUravneniy
{
protected:
    double a, b;

public:
    BaseUravneniy();
    virtual ~BaseUravneniy(){}
    virtual void EquationRoot() = 0;
};

BaseUravneniy::BaseUravneniy()
{
    cout << "Vvedite znachenie A = ";
    cin >> a;
    cout << "Vvedite znachenie B = ";
    cin >> b;
}

/* линейное уравнение
 * Ax + B = 0
 */
class LineynoeUravnenie : BaseUravneniy
{
public:
    LineynoeUravnenie ();
    ~LineynoeUravnenie () {}
    void EquationRoot() override;
};

LineynoeUravnenie::LineynoeUravnenie()
{
    cout << "Uravnenie imeet vid " << a << "x + " << b << " = 0" << endl;
}

void LineynoeUravnenie::EquationRoot()
{
    double x;

    x = -b / a;

    cout << "Koren uravneniya raven x=" << x << endl << endl;
}

/* квадратичное уравнение
* Ax^2 + Bx + c = 0
*/
class KvadratichnoeUravnenie : BaseUravneniy
{
private:
    double c;

public:
    KvadratichnoeUravnenie();
    ~KvadratichnoeUravnenie() {}
    void EquationRoot() override;
};

KvadratichnoeUravnenie::KvadratichnoeUravnenie()
{
    cout << "Vvedite znachenie C = ";
    cin >> c;
    cout << "Uravnenie imeet vid " << a << "x^2 + " << b << "x +" << c << " = 0" << endl;
}

void KvadratichnoeUravnenie::EquationRoot()
{
    double x1, x2;
    // определяем дискриминант
    // D=b^2-4ac
    double d = b * b - 4 * a * c;
    if (d < 0)
    {
        cout << "Koren ne soderzet deystvikelnyh chisel" << endl << endl;
        return;
    }

    if (d == 0)
    {
        x1 = x2 = -b / (2 * a);
    }
    else if (d > 0)
    {
        x1 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
        x2 = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
    }
    
    cout << "Korni uravneniya ravny x1=" << x1 << ", x2=" << x2 << endl << endl;
}

int main(int argc, char *argv[])
{
    LineynoeUravnenie lU = LineynoeUravnenie();
    lU.EquationRoot();

    KvadratichnoeUravnenie kU = KvadratichnoeUravnenie();
    kU.EquationRoot();

    return 0;
}


Консультировал: solowey (5-й класс)
Дата отправки: 26.12.2016, 14:31

5
Спасибо!
-----
Дата оценки: 08.01.2017, 12:08

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

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос | интересные статьи

Время генерирования страницы: 0.14068 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн