Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Способы обработки массивов

 

1. Нахождение суммы, произведения, среднего арифметического, среднего геометрического элементов массива.

1.1 Нахождение суммы элементов массива.

 

Sub prim6()

Dim a(10), S As String, i, sum

n = Val(InputBox("введите количество элементов массива n:"))

For i = 0 To 9

a(i) = Int(Rnd * 100) + 1

sum = sum + a(i)

S = S & str(a(i)) & " "

Next i

MsgBox S & Chr(10) & Chr(13) & "sum=" & sum

End Sub

 

1.2 Нахождение суммы четных и нечетных элементов массива.

Sub prim7()

Dim a(4), S As String, i, sumchet, sumnechet

sumchet = 0

sumnechet = 0

For i = 0 To 3

a(i) = Int((Rnd * 100) + 1)

If a(i) Mod 2 = 0 Then sumchet = sumchet + a(i)

If a(i) Mod 2 <> 0 Then sumnechet = sumnechet + a(i)

S= S & str(a(i)) & " "

Next i

MsgBox S & Chr(10) & Chr(13) & _

"sumchet=" & sumchet & "sumnechet=" & sumnechet

End Sub

 

1.3 Нахождение суммы элементов массива, значения которых находятся в интервале от 50 до 100.

Sub prim8()

Dim a(4), S As String, i, sum

sum = 0

For i = 0 To 3

a(i) = Int(Rnd * 100) + 1

If a(i) >= 50 And a(i) <= 100 Then sum = sum + a(i)

S= S & str(a(i)) & " "

Next i

MsgBox S & Chr(10) & Chr(13) & _

"sum=" & sum

End Sub

 

1.4 Нахождение суммы элементов массива с четными индексами и суммы элементов массива с нечетными индексами.

Sub prim9()

Dim a(4), S As String, i, sum1, sum2

sum1 = 0

sum2 = 0

For i = 0 To 3

a(i) = Int(Rnd * 100) + 1

If i Mod 2 = 0 Then sum1 = sum1 + a(i)

If i Mod 2 <> 0 Then sum2 = sum2 + a(i)

S= S & str(a(i)) & " "

Next i

MsgBox S & Chr(10) & Chr(13) & _

"sum1=" & sum1 & "sum2=" & sum2

End Sub

 

1.4 Нахождение суммы индексов четных элементов и произведения индексов нечетных элементов массива. Начальное значение произведения надо задавать равным 1.

 

Sub prim11()

Dim a(1 To 4), S As String, i, sum, pr

pr = 1

sum = 0

For i = 1 To 4

a(i) = Int(Rnd * 100) + 1

If a(i) Mod 2 = 0 Then sum = sum + i

If a(i) Mod 2 <> 0 Then pr = pr * i

S= S & str(a(i)) & " "

Next i

MsgBox S & Chr(10) & Chr(13) & _

"sum=" & sum & "pr=" & pr

End Sub

2.Нахождение произведения и среднего геометрического элементов массива.

1.1 Нахождение среднего арифметического и среднего геометрического элементов массива.

Sub prim12()

Dim a(4), S As String, i, sum, pr

pr = 1

For i = 0 To 3

a(i) = Int(Rnd * 100) + 1

sum = sum + a(i)

pr = pr * a(i)

S= S & str(a(i)) & " "

Next i

sa = sum / 5: sg = pr * (1 / 5)

MsgBox S & Chr(10) & Chr(13) & _

"sa=" & sa & "sg=" & sg

End Sub

 

 

3 Обработка элементов массива.

3.1 Нахождение максимального и минимального элементов массива и обмен их местами.

Sub prim15()

Dim a(4), str_a, i, str_anew, max, min, imax, imin

For i = 0 To 3

a(i) = Int(Rnd * 100) + 1

str_a = str_a & a(i) & " "

Next i

max = a(0): imax = 0: min = a(0): imin = 0

For i = 1 To 3

If a(i) > max Then max = a(i): imax = i

If a(i) < min Then min = a(i): imin = i

Next i

a(imax) = min: a(imin) = max

For i = 0 To 4

str_anew = str_anew & a(i) & " "

Next i

MsgBox "исходный массив:" & str_a & Chr(10) & Chr(13) & _

"max=" & max & "imax=" & imax & Chr(10) & Chr(13) & _

"min=" & min & "imin=" & imin & Chr(10) & Chr(13) & _

"новый массив:" & str_anew

End Sub

3.2 Подсчет количества элементов массива, например больших 50.

Sub prim17()

Dim a(4), str_a, i, k

k = 0

For i = 0 To 3

a(i) = Int(Rnd * 100) + 1

str_a = str_a & a(i) & " "

If a(i) > 50 Then k = k + 1

Next i

MsgBox "исходный массив:" & str_a & Chr(10) & Chr(13) & _

"k=" & k

End Sub

 

3.3 Обработка двух массивов.

Заданы два массива a(4) и b(4) заполнить их случайными значениями и поменять местами четвертые элементы массивов.

Sub prim16()

Dim a(1 To 4), b(1 To 4), str_a, str_b, i, str_anew, str_bnew, buf

For i = 1 To 4

a(i) = Int(Rnd * 100) + 1

str_a = str_a & a(i) & " "

b(i) = Int(Rnd * 10) + 1

str_b = str_b & b(i) & " "

Next i

buf = a(4)

a(4) = b(4)

b(4) = buf

For i = 1 To 4

str_anew = str_anew & a(i) & " "

str_bnew = str_bnew & b(i) & " "

Next i

MsgBox "исходный массив a:" & str_a & Chr(10) & Chr(13) & _

"исходный массив b:" & str_b & Chr(10) & Chr(13) & _

"новый массив a:" & str_anew & imin & Chr(10) & Chr(13) & _

"новый массив b:" & str_bnew

End Sub

 

3.3 Обработка элементов массива в блоках разветвления и циклов.

Структура программы:

1. Заголовок.

2. Описание переменных.

3. Ввод элементов массива (или массивов).

4. Условие.

5. Инструкции, если Условие выполняется.

6. Инструкции, если Условие не выполняется.

7. Вывод результата.

 

Пример: Заданы два массива a(4) и b(4), если количество отрицательных элементов массива a(4) больше количества отрицательных массива b(4), то положительные элементы массива a(4) заменить на 1, а положительные элементы массива b(4) заменить на нули.

 

Sub prim18()

Dim a(4), b(4), str_a, str_b, i, str_anew, str_bnew, k, t, sum, pr

k = 0: t = 0: pr = 1

For i = 0 To 3

a(i) = Int(Rnd * 100) - 50

str_a = str_a & a(i) & " "

b(i) = Int(Rnd * 10) - 5

str_b = str_b & b(i) & " "

If a(i) < 0 Then k = k + 1

If b(i) < 0 Then t = t + 1

Next i

If k > t Then

For i = 0 To 3

If a(i) > 0 Then a(i) = 1

If b(i) > 0 Then b(i) = 0

str_anew = str_anew & a(i) & " "

str_bnew = str_bnew & b(i) & " "

Next i

MsgBox "исходный массив a:" & str_a & Chr(10) & Chr(13) & _

"исходный массив b:" & str_b & Chr(10) & Chr(13) & _

"новый массив a:" & str_anew & imin & Chr(10) & Chr(13) & _

"новый массив b:" & str_bnew & imin & Chr(10) & Chr(13) & _

"k=" & k & "t=" & t

Else

For i = 0 To 3

sum = sum + a(i): pr = pr * b(i)

Next i

MsgBox "исходный массив a:" & str_a & Chr(10) & Chr(13) & _

"исходный массив b:" & str_b & Chr(10) & Chr(13) & _

"sum=" & sum & "pr=" & pr & Chr(10) & Chr(13) & _

"k=" & k & "t=" & t

End If

End Sub

 

3.4 Просмотр диапазона ячеек рабочего листа с помощью объекта Sheets (рабочие листы) и метода Range для доступа к ячейкам.

 

Пример. Написать программу для заполнения ячеек рабочего листа и вывести общую сумму.

Sub pr61()

Dim i, n, x, sum, str_x As String

n = Val(InputBox("введите n:"))

i = 1: sum = 0

For i = 1 To n

x = Int(Rnd * 100) + 1

str_x = str_x & x & " "

sum = sum + x

Sheets("лист 1").Cells(i, 3).Value = x

Sheets("лист 1").Cells(5, 4) = sum

Next i

End Sub

3.5 Заполнение элементов массива значениями рабочего листа.

Sub pr()

Dim i As Integer,mass(), str_mass 'переменная для элементов массива

ReDim mass(10)

For i = 1 To 10

Sheets("лист1").Cells(1, i).Value = Int(100 * Rnd + 1)

mass(i) = Sheets("лист1").Cells(1, i).Value

str_mass = str_mass & mass(i) & " " 'накопление элементов массива для ‘вывода заполненных значений

Next i

MsgBox str_mass

End Sub

(1,i) – первая цифра строка, вторая столбец.

 



<== предыдущая лекция | следующая лекция ==>
Способ уменьшаемого остатка. Способ уменьшаемого остатка для определения срока полезного использования устанавливают в том случае | Связь с интересами и мотивацией
Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 391 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Неосмысленная жизнь не стоит того, чтобы жить. © Сократ
==> читать все изречения...

2347 - | 2058 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.