Найти максимум линейного массива с помощью рекурсивной функции - QBasic
Формулировка задачи:
Найти максимум линейного массива с помощью
рекурсивной функции очень легко. Весь код забирает
функция. Это программа - пример выше сказанного.
Листинг программы
- DECLARE FUNCTION MAX! (a!(), n!)
- CLS
- RANDOMIZE TIMER
- n = 12
- DIM a(1 TO n)
- FOR i = 1 TO n
- a(i) = INT(90 * RND)
- PRINT a(i);
- NEXT i
- PRINT : PRINT
- PRINT MAX(a(), n)
- END
- FUNCTION MAX (a(), n)
- IF n = 1 THEN
- MAX = a(1)
- ELSE
- b = MAX(a(), n - 1)
- IF b < a(n) THEN MAX = a(n) ELSE MAX = b
- END IF
- END FUNCTION
Решение задачи: «Найти максимум линейного массива с помощью рекурсивной функции»
textual
Листинг программы
- Function max(A() As Double, Optional i As Integer = 0, Optional m As Double = 0) As Double
- If i = 0 Then
- max = max(A, 2, A(1))
- ElseIf i > UBound(A, 1) Then
- max = m
- ElseIf A(i) > m Then
- max = max(A, i + 1, A(i))
- Else
- max = max(A, i + 1, m)
- End If
- End Function
- Sub Test()
- Dim X(1 To 5) As Double
- X(1) = 7
- X(2) = -5
- X(3) = 3
- X(4) = 12
- X(5) = 11
- Debug.Print max(X)
- End Sub
Объяснение кода листинга программы
Список элементов кода:
- Создание функции с именем
max
для поиска максимального значения в линейном массиве - Присваивание значения переменной
max
внутри функцииmax
- Проверка условия: если значение переменной
i
равно 0, то вызывается функцияmax
с аргументамиA
, 2 и A(1) - Проверка условия: если значение переменной
i
больше UBound(A, 1), то значение переменнойmax
присваивается значению переменнойm
- Проверка условия: если значение элемента массива A(i) больше значения переменной
m
, то вызывается функцияmax
с аргументамиA
, i+1 и A(i) - Проверка условия: если значение элемента массива A(i) меньше или равно значению переменной
m
, то вызывается функцияmax
с аргументамиA
, i+1 и m - Создание подпрограммы с именем
Test
для тестирования функцииmax
- Создание массива X(1 To 5) со значениями 7, -5, 3, 12, 11
- Вывод значения переменной
max
с помощью функции Debug.Print - Конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д