Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] число ПИ по итерационной формуле на VBScript (http://forum.oszone.net/showthread.php?t=329869)

daniil_im 18-09-2017 20:33 2765408

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

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

Iska 18-09-2017 21:03 2765418

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

daniil_im 19-09-2017 17:02 2765589

Вложений: 5
Iska, вот скрины этого задания

daniil_im 19-09-2017 18:02 2765596

Вложений: 5
Iska, вот скрины задания

Iska 19-09-2017 19:21 2765609

daniil_im, спасибо, ясно.

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

megaloman 20-09-2017 23:48 2765842

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 2765850

Цитата:

Цитата megaloman
На моём десятилетнем ноуте не удалось получить время хотя бы секунду-считается мигом »

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


Время: 16:17.

Время: 16:17.
© OSzone.net 2001-