Решение уравнения SQR(x) + SQR(x+1) +.+ SQR(x+9) = 100 - QBasic
Формулировка задачи:
Решить уравнение SQR(x) + SQR(x+1) +...+ SQR(x+9) = 100
(ответ 95.52058)
Решение задачи: «Решение уравнения SQR(x) + SQR(x+1) +.+ SQR(x+9) = 100»
textual
Листинг программы
Sub www() Dim a As Double, b As Double, c As Double, epsx As Double Dim fa As Double, fb As Double, fc As Double, epsy As Double a = 90 'начало отрезка b = 100 'конец отрезка epsy = 0.00000000001 'точность по y epsx = 0.000001 'точность по x fa = f(a) If Abs(fa) < epsy Then Debug.Print a: Exit Sub 'корень в точке a fb = f(b) If Abs(fb) < epsy Then Debug.Print b: Exit Sub 'корень в точке b If Sgn(fa) = Sgn(fb) Then Exit Sub ' не правильно задан отрезок While b - a >= epsx c = (a + b) / 2 fc = f(c) If Abs(fc) < epsy Then Debug.Print c: Exit Sub If Sgn(fa) = Sgn(fc) Then a = c: fa = fc Else b = c: fb = fc Wend Debug.Print (a + b) / 2 End Sub Function f(x As Double) As Double Dim i As Long, s As Double For i = 0 To 9 s = s + Sqr(x + i) Next i f = s - 100 End Function
Объяснение кода листинга программы
В этом коде решается квадратное уравнение методом половинного деления. Список действий:
- Задаются начальное приближение для переменной a и конечное приближение для переменной b.
- Проверяется, достаточно ли точна приближённая точка a. Если да, то выводится её значение и происходит выход из подпрограммы.
- Проверяется, достаточно ли точна приближённая точка b. Если да, то выводится её значение и происходит выход из подпрограммы.
- Проверяется, правильно ли задан отрезок. Если точки a и b имеют одинаковый знак, значит, отрезок задан некорректно, происходит выход из подпрограммы.
- Задаётся переменная c как середина отрезка между a и b.
- Проверяется, достаточно ли точна приближённая точка c. Если да, то выводится её значение и происходит выход из подпрограммы.
- Если точки a и c имеют одинаковый знак, значит, сближение происходит из-за округления, происходит замена a и c местами, иначе замена происходит для a и b.
- Цикл while выполняется, пока длина отрезка между a и b больше заданной точности epsx.
- В каждой итерации циклически обновляются значения a и b на значение переменной c.
- Выводится значение переменной c.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д