Дан массив из произвольных целых положительных чисел - VB
Формулировка задачи:
Задача в Visual Basic 6.0
Дан массив из произвольных целых положительных чисел. Известно,
что в массиве нет одинаковых значений. Заменить в массиве нулями, если это
возможно, значения элементов, расположенных до наибольшего и после наи-
меньшего значений. Вывести исходный и измененный массивы.
Помогите, пожалуйста, алгоритмом, блок-схемой, кодом, чем-нибудь.
Решение задачи: «Дан массив из произвольных целых положительных чисел»
textual
Листинг программы
Option Explicit ' ' Антихакер32™ ' Private Sub Form_Unload(Cancel As Integer) Const c = 20, r$ = " " Dim s$, n&, sa$, f& Dim j$(), j1$(), min&, max&, b As Boolean 1 'Создаём массив где нет одинаковых значений s = Space$(c): sa = "" min = 0: max = 0 Randomize Timer Do While InStr(1, s, r) n = Fix(Rnd * c) If Mid$(s, n + 1, 1) = r Then Mid$(s, n + 1, 1) = 1 sa = sa & r & n * 10 + Fix(Rnd * 10) End If Loop j = Split(Mid$(sa, 2)) 'находим максимальное и минимальное For f = 0 To c - 1: max = IIf(j(f) > max, j(f), max): Next min = max For f = 0 To c - 1: min = IIf(j(f) < min, j(f), min): Next 'Обнуляем отрезки между значениями min/max j1 = j: n = 0 For f = 0 To c - 1 b = j(f) = min Or j(f) = max If b And n = 0 Then n = 1 ElseIf b And n = 1 Then n = 2 ElseIf n <> 1 Then j1(f) = 0 End If Next Cls 'Вывод Print "Массив = " & Join(j, ", ") & vbCrLf & _ "Min = " & min & vbCrLf & _ "Max = " & max & vbCrLf & _ "Измененный массив = " & Join(j1, ", ") 'Завершение программы Select Case MsgBox("Готово", vbAbortRetryIgnore) Case vbAbort: Cancel = 0 Case vbRetry: GoTo 1 Case vbIgnore: Cancel = 1 End Select End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д