Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
кастр
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 7
#1

Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла - C++

24.06.2011, 10:28. Просмотров 591. Ответов 6
Метки нет (Все метки)

написать программу которая решает квадратное уравнение вида a*(x^2)+b*x+c=0 данные об a,b,c берутся из файла.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2011, 10:28     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла
Посмотрите здесь:

Описать класс, представляющий квадратное уравнение вида - C++
Описать класс, представляющий квадратное уравнение вида . Описать метод, вычисляющий решение этого уравнения и выбрасывающий исключение в...

нужно написать функцию, которая будет считать квадратное уравнение, данные с клавиатуры ввожу - C++
#include <conio.h> #include <iostream> #include <math.h> using std::cout; using std::endl; using std::cin; int a, b, c,...

Квадратное уравнение - C++
ПОМОГИТЕ ПЛИЗ ДОПИСАТЬ ЗАДАЧУ А ТО ЧТОТ ВАШПЕ НЕПОЛУЧАЕТСЯ , НЕРАБОТАЕТ ))*ЕСЛИ МОЖНО ТО С КОММЕНТАРИЯМИ 1)Написать программу решения...

Квадратное уравнение - C++
вопрос такой почему у меня все время ошибки в этом коде (Квадратное уравнение) Пишу в этот раздел тк я в C++ два дня #include...

Квадратное уравнение - C++
Написала программу, вроде все должно работать, как должно, ан нет... Условие: у=корень квадратный из (25-икс квадрат) + 2а/х-3 ...

квадратное уравнение - C++
Обработка исключительных ситуаций Функция вычисляет корень квадратного уравнения ax2+bx+c=0

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
24.06.2011, 10:29     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла #2
и в чем проблема?
sirserik
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 156
24.06.2011, 10:52     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла #3
Цитата Сообщение от кастр Посмотреть сообщение
написать программу которая решает квадратное уравнение вида a*(x^2)+b*x+c=0 данные об a,b,c берутся из файла.
из какого файла в чем суть задачи ?
JeyKip
53 / 45 / 2
Регистрация: 23.06.2011
Сообщений: 122
24.06.2011, 10:55     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла #4
файл должен сам создать и занести туда данные в следующем виде:
12
23
34
Записывай только числа...

вот листинг:

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
#include <iostream>
#include <conio.h>
#include <string>
#include <fstream>
#include <math.h>
using namespace std;
 
void main()
{
    setlocale(0,"");
    ifstream file("C:\\1.txt");
    if (!file)
        cout<<"Создай фал 1.txt в корне диска С: и запиши построчно a,b,c";
    else 
    {
        double * mas = new double [3];
        char * str = new char [10];
 
        for (int i=0; i<3; i++)
        {
            file.getline(str,10);
            mas[i] = atof(str);
        }
 
        double discr = mas[1]*mas[1]-4*mas[0]*mas[2];
        double x1 = (-mas[1]+sqrt(discr))/(2*mas[0]);
        double x2 = (-mas[1]-sqrt(discr))/(2*mas[0]);
 
        cout<<"X1 = "<<x1<<"\nX2 = "<<x2;
        delete [] mas;
        delete [] str;
    }
    getch();
}
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
24.06.2011, 11:05     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла #5
Вот запись в файл чисел:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdlib.h>
#include <stdio.h>  
main()
{
int k,i,n=3; 
  char fname[]="c:\\numbers.txt"; 
  FILE *fp; 
  fp = fopen(fname,"w"); 
  printf("Chisla budut zapisani f file %s\n",fname);
   for(i=0; i<n;i++)
    {
     scanf("%i",&k); 
     fprintf(fp,"%d ",k); 
    } 
   fclose(fp);
printf("Vvedenniyi chisla zapisani v file %s\n",fname);
system("pause"); 
}
ТС бы еще указать енто надо в с или с++?
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
24.06.2011, 11:23     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла #6
Тупо по приколу)

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream>
#include <cmath>
 
template<int A, int B, int C, int D>
struct Result
{
    static void apply(double* first_s, double* second_s)
    {
        *first_s = static_cast<double>((-B) + sqrt(static_cast<double>(D))) / (2 * A);
        *second_s = static_cast<double>((-B) - sqrt(static_cast<double>(D)))/ (2 * A);
    }
};
 
template<int A, int B>
struct Result<A, B, 0, 0>
{
    static void apply(double* first_s, double* second_s)
    {
        *first_s = static_cast<double>(-B) / (2 * A);
    }
};
 
template<int A, int B>
struct Result<A, B, 0, -1>
{
    static void apply(double* first_s, double* second_s)
    {
        *first_s = 0;
        *second_s = static_cast<double>(-B) / A;
    }
};
 
template<int A, int C>
struct Result<A, 0, C, -1>
{
    static void apply(double* first_s, double* second_s)
    {
        const double t = static_cast<double>(-C) / A;
        *first_s  = sqrt(t);
        *second_s = -sqrt(t);
    }
};
 
template<int A>
struct Result<A, 0, 0, -1>
{
    static void apply(double* first_s, double* second_s)
    {
        *first_s = 0;
        *second_s = 0;
    }
};
 
template<>
struct Result<0, 0, 0, -1>
{
    static void apply(double* first_s, double* second_s)
    {
        throw 0;
    }
};
 
 
template<int A, int B, int C>
struct Expression
{
    static void apply(double* first_s, double* second_s)
    {
        const int d = (B * B) - (4 * A * C);
        if ( d < 0)
        {
            Result<0, 0, 0, -1>::apply(0, 0);
        }
        else if ( d == 0)
        {
            Result<A, B, 0, 0>::apply(first_s, 0);
        }
        else
        {
            Result<A, B, C, d>::apply(first_s, second_s);
        }
    }
};
 
template<int A, int B>
struct Expression<A, B, 0>
{
    static void apply(double* first_s, double* second_s)
    {
        Result<A, B, 0, -1>::apply(first_s, second_s);
    }
};
 
template<int A, int C>
struct Expression<A, 0, C>
{
    static void apply(double* first_s, double* second_s)
    {
        Result<A, 0, C, -1>::apply(first_s, second_s);
    }
};
 
template<int A>
struct Expression<A, 0, 0>
{
    static void apply(double* first_s, double* second_s)
    {
        Result<A, 0, 0, -1>::apply(first_s, second_s);
    }
};
 
template<int B>
struct Expression<0, B, 0>
{
    static void apply(double* first_s, double* second_s)
    {
        throw 0;    
    }
};
 
template<int C>
struct Expression<0, 0, C>
{
    static void apply(double* first_s, double* second_s)
    {
        throw 0;
    }
};
 
template<>
struct Expression<0, 0, 0>
{
    static void apply(double* first_s, double* second_s)
    {
        throw 0;
    }
};
 
int main()
{
    double first_res = 0, second_res = 0;
    Expression<5,10,1>::apply(&first_res, &second_res);
    std::cout << first_res << ' ' << second_res << '\n';
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2011, 11:57     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла
Еще ссылки по теме:

Квадратное уравнение - C++
Прога работает, но неправильно считает корни, что не так??? #include &lt;stdio.h&gt; #pragma hdrstop #include &lt;math.h&gt; #include...

Квадратное уравнение - C++
Хотел написать программу которая решает квадратное уравнение.Выдает две ошибки. #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include...

квадратное уравнение - C++
написать функции вычисления квадрат.уравнения

Квадратное уравнение - C++
Все здраствуйте))Изучаю С++ второй день)решил написать программу для решения корней квадратного уравнения вида A*x^2+b*x+C=0. Все вроде...


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

Или воспользуйтесь поиском по форуму:
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.06.2011, 11:57     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла #7
Более полное решение, учитывает, что коэффициенты могут быть равны нулю.
Выводит количество корней и сами корни, если корней бесконечное количество выводит 0.
Здесь проходит все тесты.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
#include <iomanip>
int main(){
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    double a,b,c;
    std::cin >> a >> b >> c;
    if (!b&&!a&&!c) { std::cout << -1; return 0;}
    if (!c) {std::cout << "1\n0"; return 0;}
    if (!a&&!b){ std::cout << 0; return 0;}
    std::cout << std::fixed << std::setprecision(9);
    if (!a) {std::cout << "1\n" << 1.*-c/b; return 0;}
    if (!b&&-c/a<0) {std::cout << 0; return 0;}
    long double d=b*b-4.*a*c;
    if (d<0) { std::cout << 0;  return 0; }
    d=sqrt(d);
    if (d>0) std::cout << "2\n" << (-b+d)/(2*a) << '\n'<< (-b-d)/(2*a);
    if (!d) std::cout << "1\n" << -b/(2.*a);
    return 0;
}
Yandex
Объявления
24.06.2011, 11:57     Квадратное уравнение вида a*(x^2)+b*x+c=0, данные об a,b,c берутся из файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru