14.06.2010, 18:19
общий
это ответ
Здравствуйте, Svistaplas90.
В приложении приведен один из возможных вариантов решения.
Приложение:
' В одномерном массиве, состоящем из n вещественных элементов, вычислить:
' 1. Количество элементов массива, лежащих в диапазоне от А до В.
' 2. Сумму элементов массива, расположенных после максимального элемента. Упорядочить элементы массива по убыванию модулей.
Const N = 10
Const A = 3 ' left border
Const B = 7 ' right border
Dim Ar(1 To N) As Double
Dim count As Integer, maxi As Integer
Dim Sum As Double, max As Double, temp As Double
Dim Result As String
Sub init() ' fill array
For i = 1 To N
Ar(i) = CDbl(15 * Rnd) - 5
Next i
End Sub
Sub q1()
For i = 1 To N
If (Ar(i) >= A) And (Ar(i) <= B) Then
count = count + 1
End If
Next i
Result = Result & "Q1: count in [" & A & ", " & B & "]= " & count & vbNewLine
End Sub
Sub q2()
max = Ar(1)
maxi = 1
For i = 2 To N
If (Ar(i) > max) Then
max = Ar(i)
maxi = i
End If
Next i
' Special Sum
Sum = 0
For i = maxi + 1 To N
Sum = Sum + Ar(i)
Next i
Result = Result & "Q2: Sum = " & Format(Sum, "0.000") & vbNewLine
' Special sort array
For i = 1 To N - 1
For j = i + 1 To N
If (Abs(Ar(i)) <= Abs(Ar(j))) Then '!!! Abs()
temp = Ar(j)
Ar(j) = Ar(i)
Ar(i) = temp
End If
Next j
Next i
' generate Result
Result = Result & "Sorted array:" & vbNewLine
For i = 1 To N
Result = Result & "Ar[" & i & "] = " & Format(Ar(i), "0.000") & vbNewLine
Next i
End Sub
Sub main()
count = 0
Result = "Results." & vbNewLine
Call init
Call q1
Call q2
MsgBox Result
End Sub