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

Вычислить сумму синусов - C++

Восстановить пароль Регистрация
 
Alexandr First
0 / 0 / 0
Регистрация: 13.03.2011
Сообщений: 24
24.05.2012, 23:53     Вычислить сумму синусов #1
Вычислить y=sin1+sin1.1,...,sin2.
Сама программа работает, но выводит неверный результат.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <math.h>
#include <Math.hpp>
{
float i;
float sum;
i=1;
sum=0;
while (i<=2)
{
sum=sum+sin(i);
i=i+0.1;
}
Edit1->Text=FloatToStr(sum);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
25.05.2012, 00:13     Вычислить сумму синусов #2
А какой результат она выводит?
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,594
Записей в блоге: 17
25.05.2012, 00:14     Вычислить сумму синусов #3
В чем измеряется i ? Возможно вам надо считать в градусах?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <math.h>
#include <Math.hpp>
{
float i=1;
float sum=0;
 
while (i<=2)
 {
 sum+=sin(DegToRad(i)); // добавил перевод из градусов в радианы
 i+=0.1; // тоже самое что и i=i+0.1;
 }
Edit1->Text=FloatToStr(sum);
}
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
25.05.2012, 00:25     Вычислить сумму синусов #4
Если всё-таки в радианах, то правильный вариант будет примерно таким:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cmath>
 
int main()
{
    float sum = 0;
 
    for (int i = 10; i <= 20; ++i)
    {
        float x = i / 10.0; 
        sum = sum + sin(x);
    }
    std::cout << sum << std::endl;
}
Под билдер сами исправите.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,594
Записей в блоге: 17
25.05.2012, 00:28     Вычислить сумму синусов #5
grizlik78, думаешь погрешность влияет?
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
25.05.2012, 00:33     Вычислить сумму синусов #6
Последний член суммы запросто может потеряться. Особенно через float. И в моей системе теряется-таки.

Добавлено через 1 минуту
Как вариант можно изменить условие на полшага.
C++
1
while (i < 2.05)
Но я не люблю циклы по нецелочисленным переменным.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2012, 09:22     Вычислить сумму синусов
Еще ссылки по теме:

Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод,вывод,сумму в виде отдельных процедур C++
Программа выводит таблицу значений синусов или косинусов C++
C++ Вычислить сумму в Си++

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

Или воспользуйтесь поиском по форуму:
Alexandr First
0 / 0 / 0
Регистрация: 13.03.2011
Сообщений: 24
25.05.2012, 09:22  [ТС]     Вычислить сумму синусов #7
В задании не указано в чем измеряется i. Я вычислял на калькуляторе в градусах и выходило число 0.23... и еще много цифр. Программа выдает значение 5,9.... Спасибо большое за помощь!!
Yandex
Объявления
25.05.2012, 09:22     Вычислить сумму синусов
Ответ Создать тему
Опции темы

Текущее время: 15:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru