Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2021, 17:36   #1
Дмитрий212
Новичок
Джуниор
 
Регистрация: 12.06.2021
Сообщений: 1
Вопрос Описать тип struct Quadric, задающий квадратный трехчлен с коэффициентами a, b, c

Описать тип struct Quadric, задающий квадратный трехчлен с
коэффициентами a, b, c. Реализовать в виде отдельных функций
следующие операции над переменными этого типа: а) проверка
невырожденности трехчлена (неравенство нулю коэффициента при
старшей степени); б) проверка равенства двух трехчленов; в)
вычисление значения трехчлена для заданного значения
переменной; г) сложение двух трехчленов; д) вычисление корней
трехчлена; е) вычисление значения абсциссы, соответствующего
вершине параболы, описываемой трехчленом; ж) проверка,
представим ли трехчлен в виде квадрата линейного двучлена. С
использованием описанных типа и функций разработать
программу, которая для заданного набора из N трехчленов находит
1) трехчлен с максимальным произведением модулей корней; 2)
пару трехчленов с наиболее близкими, но не совпадающими
корнями, среди трехчленов, непредставимых в виде квадрата
линейного двучлена.

Есть наброски программы (есть 3 ошибки с объявлением)
Код:
#define _CRT_SECURE_NO_WARNINGS
#define EPS 1E-6
#include <stdio.h>
#include <windows.h>
#include <string.h>
 
typedef struct Quadric_t {
    double a;
    double b;
    double c;
} Quadric;
 
Quadric q = { 1,-2,4 };
Quadric p;
p.a = -1;
p.b = 4;
p.c = 2;
double value(Quadric q, double x0) {         //вычисление знач для некоторого х
    return q.a * x0 * x0 + q.b * x0 + q.c;
}
void main() {
    Quadric p = { 1, -2, 4 };
    double x0 = 0.1;
    double v = value(p, x0);
    printf("p(%1d)=%1d", x0, v);             //вычисление знач для некоторого х
}
Quadric sum(Quadric q, Quadric p) {          //сложение 2-х трехчленов
    Quadric r;
    r.a = q.a + p.a;
    r.b = q.b + p.b;
    r.c = q.c + p.c;
    return r;
}
void main() {
    Quadric u = { 1,-2,4 }, v = { 1.5,0,-1 }, w;
    w = sum(u, v);                          //сложение 2-х трехчленов
}
typedef struct Complex_t {                  //вычисление корней
    double re, im;
}Complex;
Complex root(Quadric q, int i) {
    double D = q.b * q.b - 4 * q.a * q.c;
    double s = (i == 1) ? -1 : 1;
    Complex c = { 0,0 };
    if (D >= 0)
        c.re = (-q.b + s * sqrt(D)) / (2 * q.a);
    else {
        c.re = -q.b / (2 * q.a);
        c.im = s * sqrt(fabs(D)) / (2 * q.a);
    }
    return c;                               //вычисление корней
}
void main() {
    Quadric u = { 14,12,2009 };
    Complex x1 = root(u, 1), x2 = root(u, 2);
    printf("x1 = %1f + %1f*i\n", x1.re, x1.im);
    printf("x2 = %1f + %1f*i\n", x2.re, x2.im); //вычисление корней
}
int is_roots_equal(Quadric q, Quadric p) {      //проверка равенства корней 2-х трехчленов
    return is_equal(root(q, 1), root(p, 1)) && is_equal(root(q, 2), root(p, 2));
}                                               //проверка равенства корней 2-х трехчленов
double parabola_x(Quadric q) {                  //Вычисление параболы
    return -q.b / (2 * q.a);
Нужна проверка на невырожденность трехчлена, трехчлен с максимальным произведением модулей корней, пару трехчленов с наиболее близкими, но не совпадающими
корнями, среди трехчленов, непредставимых в виде квадрата
линейного двучлена.
Дмитрий212 вне форума Ответить с цитированием
Старый 12.06.2021, 23:17   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Что-то многовато main'ов. Надо из них код поместить в один main. Не поверю, что вы справились с написанием поиска корней, но не смогли написать проверку на невырожденность.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать тип struct Complex Krasemal Общие вопросы C/C++ 2 13.08.2021 13:39
Описать тип struct staccy Общие вопросы C/C++ 69 08.06.2017 11:54
Реализовать struct Группа(group), в которой содержатся struct Студент(Student) TokaChan Помощь студентам 2 07.07.2016 07:22