Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 7
1

Найти сумму ряда

08.01.2011, 09:16. Показов 2247. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите решить в Basice у = cos(x^1 )+ cos(x^2) + cos(x^3) +…+cos(x^30)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2011, 09:16
Ответы с готовыми решениями:

Найти сумму ряда
Добрый день! Прошу помочь с решением следующей задачи: Дано число X типа Single . Необходимо...

Найти сумму ряда
Помогите разобратся с задачкой. Вот само задание: Private Sub Command1_Click() n = Text1.Text ...

Найти сумму бесконечного ряда
Знатоки бейсика, прошу вашей помощи.

Найти сумму ряда с точностью
Разработать пользовательский интерфейс и составить программу в редакторе VB MS Excel.

20
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
08.01.2011, 11:38 2
лиззи! Вам же эту задачку уже решили (с маленькой опечаткой)
0
Заблокирован
08.01.2011, 16:17 3
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub m_1()
Dim i As Integer
Dim vСумма As Single
Dim x As Single
x = 2
For i = 1 To 30
    vСумма = vСумма + Cos(x ^ i)
Next i
Debug.Print vСумма
End Sub
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
08.01.2011, 17:01 4
Busine2009 почему Вы взяли х=2 , а не 7, 10 , ...
0
Заблокирован
08.01.2011, 17:02 5
gaw,
потому что не указано в задании, как вводить данные.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
08.01.2011, 17:24 6
ну возьмите 10 например, или 30
0
Заблокирован
08.01.2011, 17:47 7
gaw,
да, перестаёт работать.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
08.01.2011, 17:52 8
значит надо обработать ошибку переполнения
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
08.01.2011, 23:30 9
Оу, люди, вы что) Вспомните тригонометрию, график синуса/косинуса. y=cos(x), y будет находится в диапазоне [-1;+1] .Синус периодичная функция с периодом 2пи, какая ошибка переполнения? О_о
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
09.01.2011, 00:21 10
YuraAAA это значение синуса от -1 до 1 , а тут речь идет об аргументе -8 +8

переполнение вызывает x ^ i
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
09.01.2011, 12:30 11
от -1,79769313486231570E+308 до -4,94065645841246544E-324 - ограничение на аргумент
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
09.01.2011, 14:22 12
Цитата Сообщение от YuraAAA Посмотреть сообщение
Оу, люди, вы что) Вспомните тригонометрию, график синуса/косинуса. y=cos(x), y будет находится в диапазоне [-1;+1] .Синус периодичная функция с периодом 2пи, какая ошибка переполнения?
1 YuraAAA, не считаешь ли Ты такое заявление, мягко говоря, оскорбительным


2

Цитата Сообщение от YuraAAA Посмотреть сообщение
от -1,79769313486231570E+308 до -4,94065645841246544E-324 - ограничение на аргумент
Ты напомнил ограничение на тип Single, а это нечто иное, чем ограничение на аргумент Cos(x),
для которого оно /ограничение/ установлено 2147483648 /для положительных значений/

сори
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
09.01.2011, 15:56 13
Цитата Сообщение от gaw Посмотреть сообщение
Ты напомнил ограничение на тип Single, а это нечто иное, чем ограничение на аргумент Cos(x)
Описание
Функция вычисляет косинус угла.
Синтаксис
Cos(Number)
Параметры
Number - любое численное выражение типа Double задающее угол в радианах. (из справки)
А у этого типа ограничение такое, какое я написал.

Добавлено через 8 минут
Странно, а считает только до 10e18
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
09.01.2011, 15:57 14
YuraAAA, приятно удивлен Твоей настойчивостью, это плюс
по теме:
1 протестируй код (например в цикле) и отлови это ограничение
2 прочитай об ошибке 5
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
09.01.2011, 16:25 15
Так вот я же и проверил. VB6,VB.net, да и сама справка подсказывает что аргумент тригонометрической функции - число с типом Double,т.е. теоретически должно считать y с аргументом "в диапазоне от -1,79769313486231570E+308 до -4,94065645841246544E-324 для отрицательных значений и от 4,94065645841246544E-324 до 1,79769313486231570E+308 для положительных"(с) msdn.microsoft
Но практика показала, что число, более чем 10^18 степени вызывает ошибку переполнения (Overflow). Т.е. грубо говоря в функции косинуса должно стоять Long, только с возможностью точки
Ну а вообще как вариант решения - дописать функцию, которая будет уменьшать значение аргумента. Это возможно из-за того, что функция косинуса периодична.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
09.01.2011, 16:34 16
ну так как

Цитата Сообщение от gaw Посмотреть сообщение
Сообщение от YuraAAA
Оу, люди, вы что) Вспомните тригонометрию, график синуса/косинуса. y=cos(x), y будет находится в диапазоне [-1;+1] .Синус периодичная функция с периодом 2пи, какая ошибка переполнения?
1 YuraAAA, не считаешь ли Ты такое заявление, мягко говоря, оскорбительным (п.к.м. для меня /мат.образование выше среднего/
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
09.01.2011, 17:20 17
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Думаю как вариант
Visual Basic
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
Dim Pi As Double
 
Private Sub Form_Load()
Pi = 3.1415926
Dim i As Integer, vValue As Double
Dim vСумма As Single
Dim x As Single
x = InputBox("x")
For i = 1 To 30
    vValue = x ^ i
    vValue = lower(vValue)
    vСумма = vСумма + Cos(vValue)
Next i
Debug.Print vСумма
End Sub
 
Function lower(vVal As Double) As Double
Dim c As Double
c = Fix(vVal / (2 * Pi)) 'Количество сокращаемых периодов
If c <> 0 Then
c = c * 2 * Pi 'Величина, на которую можно сократить аргумент
lower = vVal - c
Else
lower = vVal
End If
End Function
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
09.01.2011, 17:33 18
не катит чуть
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
09.01.2011, 17:36 19
Почему же не катит? Точность вычислений конечно будет меньше, но порядочная.

Добавлено через 27 секунд
И вообще, критикуя - предлагай)
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
09.01.2011, 18:21 20
YuraAAA , где ты увидел мою критику, это Ты разрешил себе высказаться, мягко говоря не в тему
Цитата Сообщение от gaw Посмотреть сообщение
Оу, люди, вы что) Вспомните тригонометрию, график синуса/косинуса. y=cos(x), y будет находится в диапазоне [-1;+1] .Синус периодичная функция с периодом 2пи, какая ошибка переполнения?
а на счет почему не катит, если к принципу, (подчеркиваю, к принципу) введи 100

Добавлено через 38 минут
вариант решения (для данного примера) в размежевании периода на полупериоды положительных и отрицательных значений
0
09.01.2011, 18:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2011, 18:21
Помогаю со студенческими работами здесь

Найти сумму бесконечного ряда
Алгоритмизация и программирование задач циклической структуры. Вычислить на ЭВМ значение суммы...

Найти сумму числового ряда
Найти сумму числового ряда: if then els S = Здесь - знак суммы. Ответ должен быть равным...

Найти сумму ряда с заданной точностью
Помогите решить, пожалуйста, пропускал информатику - теперь засада самая настоящяя. Прям без...

Найти сумму 12 членов заданного ряда
Найти сумму 12 членов ряда S=R+2R+4R+... для R=0.25


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru