Войти

Показать полную графическую версию : [решено] Одномерные массивы


denis130697
13-06-2016, 22:33
Здравствуйте пользователи oszone, набрались задачи по информатике, никак разгрести не могу. Помогите пожалуйста решить задачу через одномерные массивы по visual basic.

Iska
15-06-2016, 00:41
Option Explicit

Sub Sample()
Dim n As Variant
Dim i As Integer

Dim iCount As Integer

Dim objRange As Range


n = InputBox("Enter max row number", "Enter max row number", 25)

If Len(n) > 0 Then
Randomize Timer

With ThisWorkbook.Worksheets.Item(1)
.UsedRange.Clear

iCount = 0

For i = 1 To CInt(n)
.Cells.Item(i, 1).Value = Round(4 * Rnd - 2, 2)
Next i

For i = 1 To CInt(n)
Set objRange = .Cells.Item(i, 2)

Select Case i
Case 1
objRange.Value = Round(Application.WorksheetFunction.Average(.Range(.Cells.Item(i + 1, 1), .Cells.Item(n, 1))), 4)
Case n
objRange.Value = Round(Application.WorksheetFunction.Average(.Range(.Cells.Item(1, 1), .Cells.Item(i - 1, 1))), 4)
Case Else
objRange.Value = Round(Application.WorksheetFunction.Average(Union(.Range(.Cells.Item(1, 1), .Cells.Item(i - 1, 1)), .Range(.Cells.Item(i + 1, 1), .Cells.Item(n, 1)))), 4)
End Select

If objRange.Value < 0 And objRange.Row Mod 2 Then
iCount = iCount + 1
End If
Next i
End With

MsgBox "Total found:" & CStr(iCount), vbInformation + vbOKOnly, "Total found"
End If
End Sub




© OSzone.net 2001-2012