Вычислить функцию с неопределенным числом параметров - VB
Формулировка задачи:
Требуется вычислить функцию y = max(a, b, c, ... ) где a, b, c, ... - целые числа
а y - максимальное из этих чисел. Причем некоторые числа могут быть
заданы в явном виде (например вместо "a" может стоять 11). Кроме того
число параметров (чисел) есть величина неопределенная.
Логика, размышления и решение:
Например в языке Си есть такое понятие как "перегрузка функций".
В Бейсике этого нет, однако и он не лаптем щи хлебает.
Нам ли сыновьям славного Бейсика уступить выскочке Си!
Я подумал:
а почему бы не подсунуть Бейсику Троянского коня. Суть дела
опирается на следующую аксиому (формулировка великого gehh).
Аксиома: Строковая переменная заменит 1000 параметров.
в самом деле, если ввести x$="a b c d e", то будут и волки сыты и
овцы целы. Один параметр заменяет все!!
Следующая программа решает эту задачу
Успехов вам всем!
Решение задачи: «Вычислить функцию с неопределенным числом параметров»
textual
Листинг программы
Private Sub Form_Load() Dim Max11 As Long, Max12 As String Max11 = Max1(Array(1, 5, 3, 7, 8, 6, 5)) Max12 = Max2(Array("a", "v", "z", "w")) End Sub ' Так быстрее Private Function Max1(v As Variant) As Variant Dim x As Variant, i As Long For Each x In v If i Then If x > Max1 Then Max1 = x Else: Max1 = x: i = True End If Next End Function Private Function Max2(v As Variant) As Variant Dim i As Long For i = 0 To UBound(v) If i Then If v(i) > Max2 Then Max2 = v(i) Else: Max2 = v(i) End If Next End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д