Войти

Показать полную графическую версию : [решено] число ПИ по итерационной формуле на VBScript


daniil_im
18-09-2017, 20:33
вот само задние..
Вычислите число ПИ по итерационной формуле с номером 9, с абсолютной погрешностью вычисления от 10(в -5 степени) до 10(в -16 степени). Найдите величину погрешности, при которой в числе ПИ постоянным остаются 7 знаков после запятой. Определите программно время расчета для каждого элемента, покажите в окне сообщений таблицу, показывающую расчетное значение ПИ, n и продолжительность расчета для различной погрешности.

Напишите пять вариантов программы для цикла do с проверкой условия в начале и в конце для цикла while. Расчет для максимальной точности выполнить для одного варианта, т. к. его продолжительность может составлять 15-30 мин.

Iska
18-09-2017, 21:03
daniil_im, давайте методичку. Что-то меня смущают «каждые элементы», «таблица в окне сообщений» и «пять вариантов для цикла do» :). Надо понять, что хотел сказать автор задания.

daniil_im
19-09-2017, 17:02
Iska, вот скрины этого задания

daniil_im
19-09-2017, 18:02
Iska, вот скрины задания

Iska
19-09-2017, 19:21
daniil_im, спасибо, ясно.

Не, не интересно. Сами, сами.

megaloman
20-09-2017, 23:48
daniil_im, Eps = 0.0001
Msg = ""

For i = 1 To 10
Eps = Eps / 10

DTime = Timer
A = 1
B = 4
C = 5
D = 6
E = 1

Pj = 1
Pis = 4 / A - 2 / B - 1 / C - 1 / D

N = 1
Do While Abs(Pj) > Eps
A = A + 8
B = B + 8
C = C + 8
D = D + 8
E = E / 16

Pj = (4 / A - 2 / B - 1 / C - 1 / D) * E
Pis = Pis + Pj
N = N + 1
Loop
DTime = Timer - DTime

Msg = Msg + "Пи=" + CStr(Pis) + " Eps=" + CStr(Eps) + " N=" + CStr(N) + " Time=" + CStr(DTime) + "сек." + vbCrLf
Next
MsgBox Msg
Виды цикловDo
......
Loop While Abs(Pj) > Eps


Do Until Abs(Pj) <= Eps
.....
Loop


Do
.....
Loop Until Abs(Pj) <= Eps


While Abs(Pj) > Eps
......
Wend

mwz
21-09-2017, 00:57
На моём десятилетнем ноуте не удалось получить время хотя бы секунду-считается мигом »

Ну дык задача небось писалась во времена Фортрана и вводилась в компьютер с помощью перфокарт. ;)




© OSzone.net 2001-2012