Вид программы на языке qbasic

БЛОК-СХЕМА


ВИД ПРОГРАММЫ НА ЯЗЫКЕ QBASIC

DECLARE SUB dix (a!, b!, e!, root!)

DECLARE SUB kas (a!, b!, x!, e!, root!)

DECLARE FUNCTION F! (x!)

DECLARE FUNCTION F1! (x!)

DECLARE FUNCTION F2! (x!)

REM численное решение не линейных уравнений

CLS

PRINT "проверка существования корня"

PRINT " y = = x - 2 + SIN(1 / x)"

REM ввод отрезка с проверкой на сущ решения

DO

INPUT "a= "; a

INPUT "b= "; b

INPUT "точность решения Eps="; e

LOOP WHILE F(a) * F(b) > 0

REM мет дихотомии или метод деления отрезка пополам

CALL dix(a, b, e, root)

PRINT "корень ур по методу дихотомии="; root

PRINT "значение функции F(x)=";

PRINT USING " ##.######"; F(root)

PRINT "-------------------------------------------"

REM метод касательных или метод Ньютона

INPUT "введите начальное значение корня на (a,b) X0="; x

IF F(x) * F2(x) > 0 THEN

PRINT "метод касательных(Ньютона) Применим"

a = 1: b = 3

CALL kas(a, b, x, e, root)

PRINT "корень по методу касательных="; root


PRINT "значение функции F(x)=";

PRINT USING " ##.######"; F(root)

ELSE

PRINT "метод касательных(Ньютона) НЕ Применим"

END IF

PRINT "----------------------------------"

END

SUB dix (a, b, e, root)

x = (a + b) / 2

DO

IF F(x) * F(a) < 0 THEN

b = x

ELSE

a = x

END IF

x = (b + a) / 2

LOOP UNTIL (b - a) < e

root = (b + a) / 2

END SUB

SUB kas (a, b, x, e, root)

DO

x = x - F(x) / F1(x)

LOOP UNTIL ABS(F(x) / F1(x)) < e

root = x

END SUB

FUNCTION F (x)

F = x - 2 + SIN(1 / x)

END FUNCTION

FUNCTION F1 (x)

F1 = 1 + COS(1 / x)

END FUNCTION

FUNCTION F2 (x)

F2 = -SIN(1 / x)

END FUNCTION


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: