Решение уравнения 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

Объяснение кода листинга программы

В этом коде решается квадратное уравнение методом половинного деления. Список действий:

  1. Задаются начальное приближение для переменной a и конечное приближение для переменной b.
  2. Проверяется, достаточно ли точна приближённая точка a. Если да, то выводится её значение и происходит выход из подпрограммы.
  3. Проверяется, достаточно ли точна приближённая точка b. Если да, то выводится её значение и происходит выход из подпрограммы.
  4. Проверяется, правильно ли задан отрезок. Если точки a и b имеют одинаковый знак, значит, отрезок задан некорректно, происходит выход из подпрограммы.
  5. Задаётся переменная c как середина отрезка между a и b.
  6. Проверяется, достаточно ли точна приближённая точка c. Если да, то выводится её значение и происходит выход из подпрограммы.
  7. Если точки a и c имеют одинаковый знак, значит, сближение происходит из-за округления, происходит замена a и c местами, иначе замена происходит для a и b.
  8. Цикл while выполняется, пока длина отрезка между a и b больше заданной точности epsx.
  9. В каждой итерации циклически обновляются значения a и b на значение переменной c.
  10. Выводится значение переменной c.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5