Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/48: Рейтинг темы: голосов - 48, средняя оценка - 4.92
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961

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

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

Студворк — интернет-сервис помощи студентам
Всем привет, подскажите плз, как можно реализовать программу решающую например: 5X + 10 = 20. Мне не нужен код, просто подскажите как это можно сделать, ну впринципе я немного начал писать, но пока не очень получается. Зарание спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2012, 10:43
Ответы с готовыми решениями:

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

Решение уравнений с одним неизвестным. Метод половинного деления.
Здравствуйте! Метод половинного деления. Помогите пожалуйста правильно записать первые две строчки программы... function f=nice(x) ...

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

12
154 / 138 / 34
Регистрация: 23.05.2009
Сообщений: 275
05.10.2012, 11:09
Нужно самому вывести способ вычисления неизвестной величины.
a*x + b = c
x = (c - b)/a
1
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
05.10.2012, 15:00
SeregaC++, Не забудь проверку на a != 0
1
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
05.10.2012, 16:42  [ТС]
А не подскажите как лучше произвести ввод? Я делал через строку, но там тогда неудобно переводить '1' в 1.
0
154 / 138 / 34
Регистрация: 23.05.2009
Сообщений: 275
05.10.2012, 16:59
Выкладывайте код
0
 Аватар для ReasonX7
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
05.10.2012, 17:50
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
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 11:27  [ТС]
ReasonX7, Чтобы пользователь вводил все уравнение, типа 5x + 10 = 20.
0
 Аватар для ReasonX7
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
06.10.2012, 18:04
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
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 19:35  [ТС]
ReasonX7, может мне кажется, но он не совсем правильно работает, но всё равно спасибо за помощь.
0
 Аватар для ReasonX7
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
06.10.2012, 19:36
SeregaC++, что именно не так?
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 19:39  [ТС]
ReasonX7, не пойму ответы.
0
 Аватар для ReasonX7
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
06.10.2012, 19:56
Ах, да. При проверке я забыл ввести х и он заработал. Там нужно условие перед 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
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
06.10.2012, 19:59  [ТС]
ReasonX7, ааа, я понял... Спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2012, 19:59
Помогаю со студенческими работами здесь

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

Решение алгебраического уравнения с одним неизвестным
Найти корень уравнения sin(2*x+1)-x*x=0 с точностью ε=10^ -4 ;в интервале изоляции корня методом Ньютона и методом дихотомии

Решение уравнения с одним неизвестным методом Ньютона
реализовать ПО решение уравнения с одной неизвестной,методом Ньютона в программу включить поиск отрезка локализации корня.

Решение уравнения с одним неизвестным методом подстановки
Не могу правильно написать решение уравнения в VBA методом подстановки в котором переменные А и В - это известные числа, которые будут...

Решение алгебраического уравнения с одним неизвестным.Численные методы.
Помогите пожалуйста! нужно решить задачу. Найти корень уравнения е^х-2(х-1)^2=0 с точностью Е=10^-4 в интервале изоляции корня методом...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru