Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Top Gamer
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 32
1

Программа для вычисления значения выражения

17.04.2016, 19:04. Просмотров 348. Ответов 5
Метки нет (Все метки)

Пытался написать программу для вычисления вот такого выражения An = sin(1–sin(2 + sin(3–sin(4 + ...sin(n))...), но он неправильно считает. Помогите пожалуйста разобраться в чём проблема.
Кликните здесь для просмотра всего текста
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
double B, A;
int n;
cin >> n;
B =sin(n);
for (int i = n; i > 0; i--)
{
if (i % 2 == 0)A = i - 1 - B;
else A = i - 1 + B;
B += sin(A);
}
cout << B;
system("pause");
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2016, 19:04
Ответы с готовыми решениями:

Программа для вычисления значения выражения. sin(num1)+nem2...
Помогите написать программу для решения следующей задачи: На входе два...

Программа разбора и вычисления значения арифметического выражения
Написать программу разбора и вычисления значения арифметического выражения. На...

Программа для вычисления выражения y=2 lg (x)+5
Помогите пожалуйста написать программу для вычисления выражения y=2 lg (x)+5.x...

Написать программу для вычисления значения выражения
Написать программу вычисления значения выражения при заданных выходных...

Разработать приложение для вычисления значения выражения
attachmentid=195329&amp;stc=1&amp;d=1351422860 Простите но по другому не знаю как...

5
0x0152
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
17.04.2016, 19:30 2
Такую задачу лучше рекурсией решать.

Добавлено через 2 минут
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>
#include <cmath>
 
using std::cout;
using std::endl;
 
float foo(int n, int i = 1){
    if(i >= n){
        return sin(i - sin(n));
    }
 
    if(i % 2 == 0) {
        return sin(i - foo(n, ++i));
    }
 
        return sin(i + foo(n, ++i));
 
}
 
int main(){
 
    cout << foo(4) << endl;
    return 0;
}
1
Top Gamer
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 32
17.04.2016, 19:40  [ТС] 3
Спасибо за решение, но результат вашей программы не совпадает с калькулятором. Там совсем другое число
0
0x0152
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
17.04.2016, 19:42 4
C++
1
2
3
4
if(i % 2 == 0) {
* * * * return sin(i - foo(n, ++i));
* * }
return sin(i + foo(n, ++i));
на
C++
1
2
3
4
if(i % 2 == 0) {
* * * * return sin(i + foo(n, ++i));
* * }
return sin(i - foo(n, ++i));
Добавлено через 17 секунд
с знаками напутал
1
Top Gamer
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 32
17.04.2016, 19:47  [ТС] 5
Результаты по прежнему разные. Вы уверены что написали правильно?
Немного изменил ваш код.
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>
#include <cmath>
using namespace std;
 
float foo(int n, int i = 1) {
    if (i >= n) {
        return sin(i - sin(n));
    }
 
    if (i % 2 == 0) {
        return sin(i + foo(n, ++i));
        
    }
    return sin(i - foo(n, ++i));
 
}
 
int main() {
    int n;
    cin >> n;
    cout << foo(n) << endl;
    system("pause");
    return 0;
}
0
0x0152
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
17.04.2016, 20:25 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
#include <iostream>
#include <cmath>
 
using std::cout;
using std::endl;
 
float foo(int n, int i = 1){
    if(i >= n){
        if((i % 2) == 0){
            return sin(i + sin(n));
        }else{
            return sin(i - sin(i));
        }
    }
 
    if((i % 2) == 0) {
        return sin(i + foo(n, ++i));
    }else{
        return sin(i - foo(n, ++i));
}
 
}
 
int main(){
 
    cout << foo(4) << endl;
    return 0;
}
Добавлено через 16 минут
C++
1
cout << sin(1 - sin(2 + sin(3 - sin(4 + sin(4))))) << endl;
Результат одинаковый
1
17.04.2016, 20:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2016, 20:25

Приложение для вычисления значения арифметического выражения
Здравствуйте , подскажите пожалуйста как решить вот эту задачу : Создать...

Написать программу для вычисления значения выражения(C++)
Байт, а еще вот это можно? ...

Написать программу для вычисления значения выражения C++
Написать программу для вычисления значения выражения (1+1/x2)x-12x2 напишите...


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

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

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