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

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

Войти
Регистрация
Восстановить пароль
 
Alexandr First
0 / 0 / 0
Регистрация: 13.03.2011
Сообщений: 24
#1

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

24.05.2012, 23:53. Просмотров 869. Ответов 6
Метки нет (Все метки)

Вычислить 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
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
25.05.2012, 00:13     Вычислить сумму синусов #2
А какой результат она выводит?
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,908
Записей в блоге: 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
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
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
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,908
Записей в блоге: 17
25.05.2012, 00:28     Вычислить сумму синусов #5
grizlik78, думаешь погрешность влияет?
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
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     Вычислить сумму синусов
Еще ссылки по теме:

Вычислить сумму S C++
Программа выводит таблицу значений синусов или косинусов C++
Вычислить сумму 1+2-3+4+5-6+7+8-9+…+N C++
Вычислить сумму C++
Ввести одномерный массив из n элементов. Вычислить сумму всех отрицательных чисел, их количество и сумму всех 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     Вычислить сумму синусов
Ответ Создать тему
Опции темы

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