Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 06.03.2018
Сообщений: 50
1

Решение квадратного уравнения

03.07.2018, 10:26. Показов 783. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать функцию, которая обеспечивает решение квадратного уравнения. Параметрами функции должны быть коэффициенты и корни уравнения (передаются по адресу, см. приложение 5). Значение, возвращаемое функцией, должно передавать в вызывающую программу информацию о наличии действительных корней: 3 — бесконечное множество корней, 2 – два разных корня, 1 – корень кратности 2, 0 – уравнение не имеет действительных корней.

Примечание: Функция, которую требуется написать в каждом задании, не должна самостоятельно осуществлять ввод или вывод каких-либо значений, а также не должна прерывать выполнение программы. Ввод всех исходных данных, вызов функции, а также вывод результата и обработка ошибок осуществляются в функции main(). Вывод данных должен быть как можно более подробным и может включать не только возвращаемое функцией значение. В этом разделе и далее, следует учитывать, что внутри функции может произойти неисправимая ошибка (например, ситуация когда функции необходимо вычислить квадратный корень из отрицательного числа). В этом случае функция должна возвращать признак (код ошибки). Более подробно такая техника описана в приложении 3. Например, если функция по смыслу задачи должна посчитать положительное число (площадь, количество и т.д.), то в качестве кода ошибки можно использовать отрицательные возвращаемые значения.

Добавлено через 7 минут
Все что нарешал, но не знаю как сделать передачу по адресу, да и впрочем ошибки может есть.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <stdlib.h>
 
 
int main()
{
    int x1 = 0;
    int x2 = 0;
    printf_s("Enter a:");
    int a = scanf_s("%d", &a);
    printf_s("Enter b:");
    int b = scanf_s("%d", &b);
    printf_s("Enter c:");
    int c = scanf_s("%d", &c);
 
    switch (SquareRoot(a, b, c, x1, x2))
    {
    case -1:
        printf_s("The original data is incorrect");
        break;
    case 0:
        printf_s("There is no solution among the real values ​​(the discriminant is less than zero)");
        break;
    case 1:
        printf_s("Has one root of the equation of multiplicity 2: ", x1);
        break;
    case 2:
        printf_s("It has two roots of the equation: the first root \n", x1, "second root ", x2);
        break;
    case 3:
        printf_s("An infinite set of roots is impossible!\n");
        break;
    case 4:
        printf_s("One root of equation: ", x1);
        break;
    }
    _getch();
}
 
static int SquareRoot(int a, int b, int c, int x1, int x2)
{
    double d = (b * b) - (4 * a * c);
    if (d < 0)
    {
        return 0;
    }
    else if (d == 0)
    {
        x1 = -b / (2 * a);
        if (x1 % 2 == 0)
        {
            return 1;
        }
        else
        {
            return 4;
        }
    }
 
    else if (d > 0)
    {
        x1 = -b / (2 * a) + sqrt(d) / (2 * a);
        x2 = -b / (2 * a) - sqrt(d) / (2 * a);
        return 2;
    }
    else
        return -1;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2018, 10:26
Ответы с готовыми решениями:

Решение квадратного уравнения
Используя заголовочный файл &lt;math.h&gt;, описать функцию int calculateSquareEquality(int a, int b, int...

Решение квадратного уравнения
Написать программу для решения квадратного уравнения с помощью форм

Решение квадратного уравнения
Где-то ошибка, не могу понять. Когда ввожу 0 пишет не то. Думаю ошибки с If...:pardon: например,...

Решение квадратного уравнения
Корни X1 и X2 - передаются по ссылке и &quot;возвращаются&quot; в main() сама функция QuadEqu() возвращает...

1
603 / 403 / 212
Регистрация: 30.04.2017
Сообщений: 743
04.07.2018, 09:08 2
DarkBoy9,
Астрологи объявили неделю указателей, количество звездочек в программах увеличилось вдвое.
Замени printf/scanf - на свои аналоги из visual studio...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
 
 
int SquareRoot(int *a, int *b, int *c, double *x1, double *x2);
 
int main()
{
    int a,b,c;
    double x1=.0d,x2=.0d;
    printf("Enter a:");
    //int a = scanf("%d", &a); - неа, не верно
    scanf("%d", &a);
    printf("Enter b:");
    scanf("%d", &b);
    printf("Enter c:");
    scanf("%d", &c);
 
    switch (SquareRoot(&a, &b, &c, &x1, &x2))
    {
    case -1:
        printf("%s","The original data is incorrect");
        break;
    case 0:
        printf("%s","There is no solution among the real values (the discriminant is less than zero)");
        break;
    case 1:
        printf("%s %lf","Has one root of the equation of multiplicity 2:", x1);
        break;
    case 2:
        printf("%s %lf %s %lf","It has two roots of the equation: the first root \n",
                                                            x1, "second root ", x2);
        break;
    case 3:
        printf("%s","An infinite set of roots is impossible!\n");
        break;
    case 4:
        printf("%s %lf","One root of equation: ", x1);
        break;
    }
    getch();
}
 
int SquareRoot(int *a, int *b, int *c, double *x1, double *x2)
{
    double eps = 0.001;
    double d = (*b * *b) - (4 * *a * *c);
    if (d < 0)
        return 0;
    else if (abs(d) < eps)
    {
        *x1 = -*b / (2 * *a);
        //if (int(*x1) % 2 == 0) x1 - double, нельзя проверить через %2
        if(*b%(2 * *a * 2) == 0)
            return 1;
        else
            return 4;
    }
    else if (d > 0)
    {
        *x1 = -(double)(*b) / (2 * *a) + sqrt(d) / (2 * *a);
        *x2 = -(double)(*b) / (2 * *a) - sqrt(d) / (2 * *a);
        return 2;
    }
    else
        return -1;
}
0
04.07.2018, 09:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2018, 09:08
Помогаю со студенческими работами здесь

Решение квадратного уравнения
Здравствуйте, ниже приведено задание и мое решение, хотелось бы проверить его на наличие ошибок...

Решение квадратного уравнения
Должен написать программу которая будет решать уравнения второго уровня на Си. (уравнения типа...

Решение квадратного уравнения
Подскажите, пожалуйста, что я здесь сделал не правильно: #include &lt;stdio.h&gt; #include&lt;math.h&gt;...

Решение квадратного уравнения с использованием функций
Задачка: найти решение квадратного уравнения, используя 3 функции: 1-ая печатает уравнение, 2-ая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru