Дан массив из произвольных целых положительных чисел - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д