С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
#1

Решение уравнений с одним неизвестным - C++

05.10.2012, 10:43. Просмотров 2266. Ответов 12
Метки нет (Все метки)

Всем привет, подскажите плз, как можно реализовать программу решающую например: 5X + 10 = 20. Мне не нужен код, просто подскажите как это можно сделать, ну впринципе я немного начал писать, но пока не очень получается. Зарание спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2012, 10:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение уравнений с одним неизвестным (C++):

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

Написать программу, которая решает уравнение с одним неизвестным и выводит в консоль значение неизвестного. Уравнение посимвольно вводится с клавиатур - C++
Заупутался :-(

18. Написать программу, которая решает уравнение с одним неизвестным и выводит в консоль значение неизвестного. Уравнение посимвольно вводится с клави - C++
#include <iostream> using namespace std; void main() { int urov1 = 0; int urov2 = 0; int urov3 = 0; float stad = 0; ...

Решение системы СЛАУ одним из методов Гаусса: исправить код - C++
Было задание решение системы СЛАУ одним из методов Гауса.(матрицы до 5 на 5). Код написал,работает вроде программа верно,но постоянно...

Решение уравнений - C++
Я только начал изучать C++. Вот решил сделать маленькую программку: #include <iostream> using namespace std; int main() { ...

Решение уравнений на С++ - C++
Помогите решить уравнение пожалуйста, под номером 16! Задание надо переписывать в сообщение!

12
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
05.10.2012, 11:09 #2
Нужно самому вывести способ вычисления неизвестной величины.
a*x + b = c
x = (c - b)/a
1
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
05.10.2012, 15:00 #3
SeregaC++, Не забудь проверку на a != 0
1
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
05.10.2012, 16:42  [ТС] #4
А не подскажите как лучше произвести ввод? Я делал через строку, но там тогда неудобно переводить '1' в 1.
0
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
05.10.2012, 16:59 #5
Выкладывайте код
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
05.10.2012, 17:50 #6
SeregaC++, как именно ты собирался организовывать ввод? Чтобы пользователь вводил все уравнение, типа 5x + 10 = 20? Или каждый коэффициент отдельно, что на подобии:
Введите коэф. а >> ? И нужна ли проверка ввода чисел?

Добавлено через 12 минут
Вот пример перевод строки, содержащей цело число, в число:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    char str_num[5];            // Строка, в которую будем вводить число.
    cout << "Enter number >> ";
    cin >> str_num; 
 
    int num = 0;                // Число
    size_t str_len = strlen(str_num);   // Длина строки.
 
    // Перевод строки в число.
    for (int i = 0; i < str_len; i++)
        num = num * 10 + str_num[i] - '0';  // Для перевода символа-цифры в число нужно от него отнять код нуля.
                                            // Чтобы напор символов-цифр в чило, нужно при каждой новой итерации домножать  
                                            // результат на 10.
 
    cout << num << endl;
    system("pause");
 
    return 0;
}
1
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 11:27  [ТС] #7
ReasonX7, Чтобы пользователь вводил все уравнение, типа 5x + 10 = 20.
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
06.10.2012, 18:04 #8
SeregaC++, если отбросить проверку правильности ввода, то тогда код будет где-то таким:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    char str_eq[20];            // Строка, в которую будем вводить число.
    cout << "Enter equtation (ax + b = c) >> ";
    cin >> str_eq; 
 
    size_t str_len = strlen(str_eq);   // Длина строки.
    int vars[3];    // Массив с коеф.
    int j = 0;      // Счетчик для vars.
    vars[0] = 0;
    vars[1] = 0;
    vars[2] = 0;
    for (size_t i = 0; i < str_len; i++)
    {
        while (1)   // Безконечный цикл.
        {
            if (str_eq[i] >= '0' && str_eq[i] <= '9')       // Если символ - число
            {                                               //
                vars[j] = vars[j] * 10 + str_eq[i] - '0';   // дописоваем его к j-тому коеф.
                i++;
            }
            else            // Иначе
            {               // 
                j++;        // переходим к следущумему коеф.
                break;      // и прерываем цикл while.
            }
        }
    }
 
    cout << "a = " << vars[0] << endl;
    cout << "b = " << vars[1] << endl; 
    cout << "c = " << vars[2] << endl;
    system("pause");
 
    return 0;
}
1
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 19:35  [ТС] #9
ReasonX7, может мне кажется, но он не совсем правильно работает, но всё равно спасибо за помощь.
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
06.10.2012, 19:36 #10
SeregaC++, что именно не так?
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 19:39  [ТС] #11
ReasonX7, не пойму ответы.
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
06.10.2012, 19:56 #12
Ах, да. При проверке я забыл ввести х и он заработал. Там нужно условие перед j++ добавить.

Добавлено через 7 минут
SeregaC++, в лоб, но работает:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    char str_eq[20];            // Строка, в которую будем вводить число.
    cout << "Enter equtation (ax + b = c) >> ";
    cin >> str_eq; 
 
    size_t str_len = strlen(str_eq);   // Длина строки.
    int vars[3];    // Массив с коеф.
    int j = 0;      // Счетчик для vars.
    vars[0] = 0;
    vars[1] = 0;
    vars[2] = 0;
    for (size_t i = 0; i < str_len; i++)
    {
        if (str_eq[i] >= '0' && str_eq[i] <= '9')       // Если символ - число                                              //
            vars[j] = vars[j] * 10 + str_eq[i] - '0';   // дописоваем его к j-тому коэф.
        else if (str_eq[i] == '+' || str_eq[i] == '=')  // Если знак операции/равенства             
            j++;                                        // перейти к следущему коэф.
    }
 
    cout << "a = " << vars[0] << endl;
    cout << "b = " << vars[1] << endl; 
    cout << "c = " << vars[2] << endl;
    system("pause");
 
    return 0;
}
Только вводить без пробелов, так как cin считает пробел концом ввода/строки.

Добавлено через 7 минут
Можно еще так:
C++
1
2
3
4
5
6
7
    for (size_t i = 0; i < str_len; i++)
    {
        if (str_eq[i] >= '0' && str_eq[i] <= '9')       // Если символ - число                                              
            vars[j] = vars[j] * 10 + str_eq[i] - '0';   // дописоваем его к j-тому коэф.
        else if (str_eq[i - 1] >= '0' && str_eq[i - 1] <= '9')  // Если предидущий символ - число,      
            j++;                                                // перейти к следущему коэф.
    }
1
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 19:59  [ТС] #13
ReasonX7, ааа, я понял... Спасибо за помощь.
0
06.10.2012, 19:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2012, 19:59
Привет! Вот еще темы с ответами:

Решение уравнений - C++
а) Решить уравнение 0,4+arctg(sqrt(x))-x=0 с точностью E=10^-4. Отрезок содержащий корень . б) Найти все натуральные числа, не...

Решение квадратных уравнений - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cmath&gt; using namespace std; void roots(float a, float b, float c) { ...

Решение кубических уравнений C++ - C++
Мне нужна помощь с программой по решению кубических уравнений вида ax^3+bx^2+cx+d=0. Я пытался сделать это методом Кардано- Тортали, но...

Решение Системы уравнений - C++
У меня задача - решать систему уравнений. матрица системы имеет порядок 3600. В будущем придется решать системы порядка 100 000. Мне дана...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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