Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры задачи.docx
Скачиваний:
1
Добавлен:
22.09.2019
Размер:
30.95 Кб
Скачать

Среднее по столбцам снизу

Option Explicit

Dim i, j As Integer

' m - Число столбцов

' n - Число строк

Dim n, m As Integer

' Двумерный массив в котором записана матрица

Dim arr(), arr2() As Single

' Функция вызывается при нажатии на кнопку "Отмена"

' Скрывает первую форму

Private Sub cancel_btn_Click()

Form1.Hide

End Sub

' Функция вызывается при нажатии на кнопку "ОК"

Private Sub ok_btn_Click()

If first_rb.Value = True Then

m = Int(Rnd * 10)

n = Int(Rnd * 10)

Else

m = Val(InputBox("Введите число столбцов", "Ввод данных")) - 1

n = Val(InputBox("Введите число строк", "Ввод данных")) - 1

End If

ReDim arr(n, m), arr2(n + 1, m)

Call fillMatrix

Label1.Caption = getStr(arr, n, m)

Call actionWithMatrix

Label2.Caption = getStr(arr2, n + 1, m)

End Sub

' Заполняет указанный массив случайными целыми числами от 0 до 10

' z - Двумерный массив

Private Sub fillMatrix()

For i = 0 To n

For j = 0 To m

arr(i, j) = Int(Rnd() * 10)

Next j

Next i

End Sub

Private Sub actionWithMatrix()

Dim avg As Single

For j = 0 To m

avg = 0

For i = 0 To n + 1

If i = n + 1 Then

avg = avg / (n + 1)

arr2(i, j) = Format(avg, "0.0")

' Format округляет число avg до 1 знака после запятой

Else

avg = avg + arr(i, j)

arr2(i, j) = arr(i, j)

End If

Next i

Next j

End Sub

' Возвращает строку-матрицу составленную из массива

' ar - Двумерный массив

' an - Число строк

' am - Число столбцов

Private Function getStr(ar, an, am) As String

getStr = ""

For i = 0 To an

For j = 0 To am

getStr = LTrim(getStr + Str(ar(i, j)) + " ")

Next j

getStr = getStr + vbNewLine

Next i

End Function

Сумма столбцов снизу

Dim m, n As Integer

Dim arr(), summ(), ext() As Integer

Private Sub Command1_Click()

If Option1.Value = True Then

m = Int(Rnd * 10)

n = Int(Rnd * 10)

Else

m = Val(InputBox("введи кол-во столбцов")) - 1

n = Val(InputBox("блин")) - 1

End If

ReDim arr(n, m), summ(m), ext(n + 1, m)

Call Fillmatrix

Call findsumm

Call concatArrays

Label1.Caption = getstr(arr, n, m)

Label2.Caption = getstr(ext, n + 1, m)

End Sub

Sub Fillmatrix()

For i = 0 To n

For j = 0 To m

arr(i, j) = Int(Rnd * 10)

Next j

Next i

End Sub

Sub findsumm()

Dim sum As Integer

For j = 0 To m

sum = 0

For i = 0 To n

sum = sum + arr(i, j)

Next i

summ(j) = sum

Next j

End Sub

Sub concatArrays()

For i = 0 To n + 1

For j = 0 To m

If i = n + 1 Then

ext(i, j) = summ(j)

Else

ext(i, j) = arr(i, j)

End If

Next j

Next i

End Sub

Function getstr(ar, an, am) As String

getstr = ""

For i = 0 To an

For j = 0 To am

getstr = getstr & ar(i, j) & " "

Next j

getstr = getstr & Chr(13)

Next i

End Function