Sub maxZn()'заполнение массива Dim mas(20) S = "" Randomize For i = 1 To 20 mas(i) = Round(Rnd(100) * 100) S = S + Str(mas(i)) + "," Next i'поиск максимального числа и количества его повторений qty = 1 max = mas(1) 'предполагаем, что максимальное число в первом элементе массива For i = 2 To 20 If mas(i) = max Then qty = qty + 1 End If If mas(i) > max Then max = mas(i) qty = 1 End If Next i MsgBox "последовательность чисел " + S MsgBox "максимальное число " + Str(max) + "число повторений " + Str(qty) End Sub Sub test() Call maxZnEnd Sub
N = 20 Dim mas(20) S = "" Randomize For i = 1 To N mas(i) = Round(Rnd(100) * 100) If mas(i) > 90 Then mas(i) = 0 End If S = S + Str(mas(i)) + "," Next i
'Поиск номера максимального элемента maxindex = 1 'предполагаем что максимальное число в первом элементе массива 'поиск номеров первого и последующего нулей indF0 = -1: indL0 = -1
For i = 1 To N
If mas(i) > mas(maxindex) Then maxindex = i End If If mas(i) = 0 Then If indF0 = -1 Then indF0 = i Else If indL0 = -1 Then indL0 = i End If End If End If Next i 'вычисление произведения
multiplication = 1
If (indL0 = -1) Or (indF0 = -1) Or (indF0 + 1 = indL0) Then MsgBox "Нулей или чисел между нулями нет" Else For i = indF0 + 1 To indL0 - 1 multiplication = multiplication * mas(i) Next i MsgBox "произведение чисел находящихся между первым и следующим нулями" + Str(multiplication) End If
MsgBox "последовательность чисел " + S + " номер максимального элемента " + Str(maxindex)
End Sub
Sub test() Mass_Task End Sub
'-Пример-------------------------------------------------------------------- Произведение 3532800 Последовательность 6,58,83,12,84,87,34,68,16,17,0,60,40,64,23,0,0,49,58,42 Номер максимального элемента 6
Sub test() Call maxZnEnd Sub
'Заполнение массива
N = 20
Dim mas(20)
S = ""
Randomize
For i = 1 To N
mas(i) = Round(Rnd(100) * 100)
If mas(i) > 90 Then
mas(i) = 0
End If
S = S + Str(mas(i)) + ","
Next i
'Поиск номера максимального элемента
maxindex = 1 'предполагаем что максимальное число в первом элементе массива
'поиск номеров первого и последующего нулей
indF0 = -1: indL0 = -1
For i = 1 To N
If mas(i) > mas(maxindex) Then
maxindex = i
End If
If mas(i) = 0 Then
If indF0 = -1 Then
indF0 = i
Else
If indL0 = -1 Then
indL0 = i
End If
End If
End If
Next i
'вычисление произведения
multiplication = 1
If (indL0 = -1) Or (indF0 = -1) Or (indF0 + 1 = indL0) Then
MsgBox "Нулей или чисел между нулями нет"
Else
For i = indF0 + 1 To indL0 - 1
multiplication = multiplication * mas(i)
Next i
MsgBox "произведение чисел находящихся между первым и следующим нулями" + Str(multiplication)
End If
MsgBox "последовательность чисел " + S + " номер максимального элемента " + Str(maxindex)
End Sub
Sub test()
Mass_Task
End Sub
'-Пример--------------------------------------------------------------------
Произведение 3532800
Последовательность
6,58,83,12,84,87,34,68,16,17,0,60,40,64,23,0,0,49,58,42
Номер максимального элемента 6