Dim max, p, r, s As Integer
Варианты заданий
Таблица 1
№ | Задание |
В одномерном массиве С(17) найти произведение (PR) элементов с четными индексами. | |
Найти максимальный положительный элемент массива А и определить его индекс. | |
Найти среднее арифметическое максимального и минимального элементов массива А. | |
Найти среднее арифметическое отрицательных элементов массива А. | |
Найти минимальный положительный элемент массива А и определить его индекс. | |
Определить число положительных элементов массива А и их индексы. | |
Написать программу определения: каких элементов больше в массиве А – положительных или отрицательных? | |
Найти сумму квадратов и квадрат суммы элементов массива А. | |
Найти среднее арифметическое положительных элементов массива А с четными индексами. | |
Найти максимальный отрицательный элемент массива А и определить его индекс. | |
Найти среднее арифметическое отрицательных элементов массива А с нечетными индексами. | |
В одномерном массиве А(10) найти разность между максимальным (max) и минимальным (min) элементами и произведение (pr_pol) положительных элементов. | |
В одномерном массиве А(15) найти среднее арифметическое положительных элементов (SR) и произведение отрицательных элементов (pr_otr). | |
В одномерном массиве А(30) найти среднее арифметическое абсолютных значений отрицательных элементов с нечетными номерами (SR). | |
В одномерном массиве С(17) найти количество (kol) элементов, равных 5. | |
В одномерном массиве Z(15) найти сумму (S) и произведение (PR) элементов, которые больше 0 и меньше 21. | |
В одномерном массиве С(17) найти количество (kol) элементов с нечетными индексами, которые меньше последнего элемента. | |
В одномерном массиве Z(15) найти сумму (S) и среднее арифметическое (SR) элементов, которые больше 0 и меньше 15. | |
В одномерном массиве С(17) найти количество (kol) элементов с четными индексами, которые больше последнего элемента. | |
В одномерном массиве В(10) найти среднее арифметическое положительных элементов массива. |
Пример выполнения варианта 20
Формула для нахождения среднего арифметического имеет вид
SR = S / N
где S – сумма элементов массива
N – количество элементов массива
Исходные данные и результаты представлены на рабочем листе «Среднее арифметическое» рабочей книги Excel (рис. 1).
Рис. 1. Исходные данные и результаты решения
Текст программы:
Sub pol()
Const n = 10 ‘количество элементов массива
Dim B(1 To n) As Integer
Dim S, SR, kol As Single
‘ Оператор делает активным лист “Среднее арифметическое” рабочей
‘ книги Excel
Sheets("Среднее арифметическое").Activate
‘ Ввод элементов массива с рабочего листа Excel
For I = 1 To n
B(I) = Cells(3, I + 1)
NextI
S = 0 ‘ начальное значение суммы
kol = 0 ‘ количество положительных элементов
For I = 1 To n
If B(I) > 0 Then
S = S + B(I)
kol = kol + 1
End If
Next I
If kol = 0 Then
MsgBox(“Положительных элементов НЕТ”)
Else
SR = S / kol
Cells(5, 1) = “SR”
Cells(5, 2) = SR
End If
End Sub
Задание 2. создать программу обработки одномерного массива, состоящего из 10 элементов. Ввод массива осуществить с помощью процедуры InputBox, варианты обработки выбрать с помощью элемента управления CheckBox. Варианты задания приведены в табл. 2.
Таблица 2
№ | Задание |
В массиве С(5) вычислить по выбору: среднее арифметическое всех элементов, среднее геометрическое всех элементов, среднее гармоническое всех элементов. | |
Для массива С(5) вычислить нормы по формулам: max-норма , l-норма , евклидова норма . | |
В массиве А(10) вычислить по выбору: количество элементов, превышающих среднее арифметическое всех элементов, сумму элементов, значения которых попадают в диапазон от 5 до 10, второй по величине минимальный элемент. | |
В целочисленном массиве В(5) вычислить по выбору: сумму квадратов чётных элементов, среднее арифметическое элементов, расположенных до максимального элемента массива, произведение элементов, кратных 3. | |
Для выборки из 10 элементов найти по выбору оценки математического ожидания, исправленной выборочной дисперсии, справленного среднеквадратического отклонения. | |
Ввести данные о количестве осадков (в мм) за каждый месяц 2011 года. Найти по выбору: среднее количество осадков за год, самый дождливый (снежный месяц года, самый засушливый месяц весны. | |
В массиве А(10) вычислить по выбору: разность между отрицательными и положительными элементами, среднее арифметическое максимального и минимального элемента, количество отрицательных элементов. | |
В целочисленном массиве А(10) вычислить по выбору: число элементов, кратное 5, среднее арифметическое элементов с индексами от 5 до 8 включительно, сумму элементов до первого отрицательного. | |
Ввести целочисленный массив А(10), содержащий двузначные числа. Найти по выбору: количество элементов, содержащих цифру 9, сумму цифр третьего элемента, произведение всех чётных элементов. | |
В целочисленном массиве А(10) вычислить по выбору: максимальный элемент, количество нечётных элементов и среднее арифметическое положительных элементов. |
Пример выполнения варианта 10
1. Создать пользовательскую форму Обработка одномерных массивов (рис.2).
2. Поместить на форму элементы управления Label1, Textbox1 (установить значения свойств Multiline=True, ScrollBars=2-fmScrollbarsVertical), Frame1, CheckBox1, CheckBox2, CheckBox3 (установить значение свойства WordWrap=True), TextBox2, TextBox3, TextBox4, CommandButton1, CommandButton2, CommandButton3.
3. Ввести программный код.
Объявить массив А, переменные n – размер массива и i – параметр цикла как глобальные. Для этого записать строки
Dim A(9) As Integer
Dim n, i As Integer
до первой процедуры.
Рис. 2. Пользовательская форма к заданию 2
Текст программы:
Dim A(9) As Integer
Dim n, i As Integer
Private Sub CommandButton1_Click()
Dim k As String
n = 9
TextBox1.Text = ""
For i = 0 To n
k = InputBox("Ввести " + CStr(i + 1) + " элемент")
A(i) = Val(k)
TextBox1.Text = TextBox1.Text + " " + CStr(A(i)) + vbCrLf
Next i
End Sub
Private Sub CommandButton2_Click()
Dim max, p, r, s As Integer
Dim sred As Single
IfCheckBox1.Value = True Then
max = 0
For i = 1 To n
IfA(i) > A(max) Then max = i
Next i
TextBox2.Text = CStr(A(max))
End If
If CheckBox2.Value = True Then
p = 0
For i = 0 To n
If A(i) Mod 2 <> 0 Then p = p + 1
Next i
TextBox3.Text = CStr(p)
End If
If CheckBox3.Value = True Then
s = 0
r = 0
For i = 0 To n
If A(i) < 0 Then
s = s + A(i)
r = r + 1
End If
Next i
If r = 0 Then
MsgBox ("Нет отрицательных элементов")
CommandButton1.SetFocus
Else
sred = s / r
TextBox4.Text = CStr(sred)
End If
End If
End Sub
Private Sub CommandButton3_Click()
End
End Sub