Вычисление суммы бесконечного ряда - QBasic
Формулировка задачи:
Помогите найти сумму бесконечного ряда.Что надо изменить чтобы правильно считала?
Условие:
Вычислить сумму бесконечного ряда
S=1-(x^2)/2!+(x^4)/4!-(x^6)/6!....
Ограничение по значению аргумента x<0.5
Точность вычисления E=0.001
Точное значение S=cosx
Листинг программы
- CLS
- DO
- PRINT "vvod znacheniy x (abs(x)<0.5)"
- INPUT x
- LOOP UNTIL ABS(x) < .5
- CLS
- E = .001
- s = 0
- i = 1
- N = 1
- K = 0
- P = 1
- DO
- P = P * (2 * N) ^ i
- i = i + 1
- Sm = (-1) ^ K * (x ^ (2 * N) / P)
- s = s + Sm
- PRINT "Chlenov ryada "; N;
- PRINT USING "znachenie S=##.####"; s
- N = N + 1: K = K + 1
- LOOP UNTIL ABS(Sm) < E
- PRINT "Pri X="; x
- PRINT USING "S=##.####"; s
- PRINT USING "Tochnoe znachenie S=##.####"; COS(x)
- D = ABS(s - COS(x))
- PRINT USING "pogreshnost vichisleniya D=##.#### pri tochnosti E=0.001"; D
- END
Решение задачи: «Вычисление суммы бесконечного ряда»
textual
Листинг программы
- DEFDBL A-Z
- eps = 0.001: tmp = 1
- DO
- INPUT "enter x: ", x
- LOOP UNTIL ABS(x) < .5
- WHILE ABS(tmp) > eps
- i = i + 1
- PRINT "chlen rjada"; i;
- PRINT USING " = ##.####"; tmp
- res = res + tmp
- tmp = -tmp * x * x / (2 * i * (2 * i - 1))
- WEND
- PRINT "s("; x; USING ") = ##.####"; res
- PRINT "cos("; x; USING ") = ##.####"; COS(x)
- PRINT USING "pogreshnost vichisleniya d = ##.####"; ABS(res - COS(x))
- PRINT "pri tochnosti E = 0.001"
Объяснение кода листинга программы
- Объявлены переменные: — x — для ввода значения аргумента функции; — i — счётчик итераций; — res — для хранения суммы ряда; — tmp — временная переменная; — eps — для контроля точности вычислений.
- Введен цикл DO-LOOP, который выполняется до тех пор, пока значение аргумента x не станет меньше 0.5.
- Внутри цикла выполняется другой цикл WHILE, который выполняется, пока значение временной переменной tmp больше заданной точности eps.
- Внутри цикла WHILE выполняется: — увеличивается счётчик i; — выводится на экран информация о числе итераций и текущем значении tmp; — значение tmp обновляется в соответствии с формулой ряда; — сумма ряда res обновляется путем добавления к ней значения tmp.
- После выхода из цикла WHILE выводится на экран информация о числе итераций и сумме ряда.
- Вычисляется косинус аргумента x и выводится на экран в качестве проверки.
- Вычисляется погрешность вычисления суммы ряда и выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д