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

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

Войти
Регистрация
Восстановить пароль
 
shogunuz
4 / 4 / 0
Регистрация: 02.03.2015
Сообщений: 383
#1

Написать программу решения системы тригонометрических уравнений (разветвляющиеся алгоритмы) - C++

01.01.2016, 15:00. Просмотров 659. Ответов 4
Метки нет (Все метки)

Здравствуйте уважаемые форумчане, требуется ваша помощь. Я немного затрудняюсь в написании кода разветвляющихся алгоритмов, очень прошу помочь. Ниже я прилагаю пример(задачу) и её решение(код). Правда я не знаю, правильно ли составил код программы. Можете пожалуйста проверить все ли правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
int main () {
    float y,d,b,c;
    int a,x;
    float y1,y2;
        cout<<"d=";cin>>d;
        cout<<"a=";cin>>a;
        cout<<"b=";cin>>b;
        cout<<"x=";cin>>x;
        cout<<"c=";cin>>c;
    y1=(d*sin(a*M_PI/180.)+b*cos(x*M_PI/180.)+c*c*c)/(a*a-b*b*c);
    y2=(2*log(x)-log(a*x))/(a*c*b+c*c);
    if (sin(a*M_PI/180.)>0) cout<<"y1= "<<y1<<endl;
    else cout<<"y1 !="<<endl;
    if ((a-x)<0) cout<<"y2= "<<y2<<endl;
    else cout<<"y2 !="<<endl;
    _getch();
    return 0;
}
p.s. Задача на узбекском, слово "агар" означает "если".
0
Миниатюры
Написать программу решения системы тригонометрических уравнений (разветвляющиеся алгоритмы)  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2016, 15:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать программу решения системы тригонометрических уравнений (разветвляющиеся алгоритмы) (C++):

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

Написать программу для решения системы нелинейных уравнений - C++
Не могу сделать прогу на С++. Кто сделает - огромное спасибо. sin(9x)+cos(7y)-5z*z=10, cos(x)+y-tan(2x)=17, cos(x)+6y-cos(z)=23; ...

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

Написать программу для решения системы уравнений методом Гаусса (c++) - C++
Добрый вечер! Нужно написать программу для решения системы уравнений методом Гаусса. Уравнений всего два: a11*x1 + a12*x2 = z1...

Составить программу решения системы уравнений - C++
составить программу решения системы уравнений ax+by+c=0 a1x+b1y+d=0

Помогите исправить программу решения системы уравнений - C++
Выводит неопределенность # include &lt;stdio.h&gt; #include &lt;iostream&gt; # include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; ...

4
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
01.01.2016, 15:56 #2
1. Если нет явного требования float, лучше использовать double
2. Несогласованность аргументов тригонометрических функций и логарифма
3. Вычислять функцию имеет смысл только при выполнении условия
1
shogunuz
4 / 4 / 0
Регистрация: 02.03.2015
Сообщений: 383
01.01.2016, 16:21  [ТС] #3
Цитата Сообщение от Tulosba Посмотреть сообщение
1. Если нет явного требования float, лучше использовать double
2. Несогласованность аргументов тригонометрических функций и логарифма
3. Вычислять функцию имеет смысл только при выполнении условия
1. Использовал флоат для уменьшения памяти программы(от нас этого требуют)
2. Всмысле а и х я использовал и для лог и для син\кос? Так я же там сделал перевод радиан в градусы. Или для каждого из них нужно создавать свою переменную?
3. Это я сделал для себя, чтобы знать, если условие не выполняется, значит ответа нет. А за совет спасибо, учту на будущее!

з.ы. И под конец, правильно ли вообще, в целом решил ли я правильно эту задачу? Ведь каждую из функций я решал по отдельности, а эта ведь система, вот именно этого я и побаиваюсь(сомневаюсь в правильности своего решения).
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
01.01.2016, 16:40 #4
Цитата Сообщение от shogunuz Посмотреть сообщение
Использовал флоат для уменьшения памяти программы(от нас этого требуют)
Как сравнивал разницу?
Цитата Сообщение от shogunuz Посмотреть сообщение
Так я же там сделал перевод радиан в градусы.
Вопрос в том, почему ты думаешь, что один и тот же аргумент нужно переводить из градусов в радианы для sin, и не надо в log.
Цитата Сообщение от shogunuz Посмотреть сообщение
если условие не выполняется, значит ответа нет.
Видимо, ты меня неправильно понял. По твоей программе если условие для y1(y2) не выполняется, ты его не выводишь, но всё равно вычисляешь. Я предлагаю так:
C++
1
2
3
4
5
6
7
if ((a-x)<0) {
  y2 = // вычисляем y2
  cout<<"y2= "<<y2<<endl; // выводим значение
}
else {
  cout<<"y2 !="<<endl; // значение y2 не используется
}
Цитата Сообщение от shogunuz Посмотреть сообщение
Ведь каждую из функций я решал по отдельности, а эта ведь система
Это не система в том понимании, что ты не неизвестную величину ищешь, а просто производишь вычисления.
1
shogunuz
4 / 4 / 0
Регистрация: 02.03.2015
Сообщений: 383
01.01.2016, 19:00  [ТС] #5
Цитата Сообщение от Tulosba Посмотреть сообщение
Как сравнивал разницу?
флоат=32бит против даббл=64. По сути, конкретно для этой задачи, если заменить флоат дабблом, размер не особо поменяется, просто, привычка. А вообще, как опытный эксперт по с++, можете сказать почему именно лучше использовать даббл? Ведь дело не только в размерности этих переменных, нет?

Цитата Сообщение от Tulosba Посмотреть сообщение
Вопрос в том, почему ты думаешь, что один и тот же аргумент нужно переводить из градусов в радианы для sin, и не надо в log.
В задачах или вообще в математике когда мы пишем ln(a), в с++ это будет log(a). Но если в математике sin(a) то, в с++ a-является радианом, которое надо перевести вградусы, разве нет? (Походу, я начинаю тормозить... )

Цитата Сообщение от Tulosba Посмотреть сообщение
Видимо, ты меня неправильно понял. По твоей программе если условие для y1(y2) не выполняется, ты его не выводишь, но всё равно вычисляешь. Я предлагаю так:
А вот за это, реально, большущее спасибо. Великолепный совет, я читал это в учебнике, но из-за того, что не использовал во время на практике, так и позабыл. Спасибо еще раз.
Цитата Сообщение от Tulosba Посмотреть сообщение
Это не система в том понимании, что ты не неизвестную величину ищешь, а просто производишь вычисления.
Значит в подобных задачках так и должно быть, два ответа?(в данном случае y1 и y2) Это я так, ради 100% уверенности спрашиваю .
0
01.01.2016, 19:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.01.2016, 19:00
Привет! Вот еще темы с ответами:

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

Написать программу для решения уравнений - C++
Не могу сделать прогу на С++. Кто сделает - огромное спасибо. Необходимо выбрать 3 уравнения и написать для них программу на С++. ...

написать программу по решению системы уравнений - C++
проблема в том,что после практики на ВЦ пришлось дома перейти с 6 на 10 версию ВС. возможно требуется исправить ошибки преобразования,и...

Пример кода для решения системы уравнений - C++
Здравствуйте. Нужен код на С или С++, решающий системы уравнений. Подскажите, плз, где его можно достать. Заранее, спасибо.


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

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

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