Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Вычисление суммы, произведения и количества элементов в одномерном массиве



 

Вычисление суммы, произведения и количества элементов в одномерных массивах производится обязательно в цикле, перед которым сумма приравнивается к нулю, произведение – к единице, количество – к нулю.

Например, в одномерном массиве, состоящем из пяти элементов, для вычисления суммы следует записать следующее:

 

sum = 0

For i = 1 To 5

sum = sum + A(i)

Next i

MsgBox (sum)

 

Для вычисления произведения:

 

pr = 1

For i = 1 To 5

pr = pr * A(i)

Next i

MsgBox (pr)

 

Для вычисления количества:

 

kol = 0

For i = 1 To 5

kol = kol + 1

Next i

MsgBox (kol)

 

Если необходимо вычислить сумму, произведение или количество элементов массива, удовлетворяющих некоторому условию, то в цикле следует записать условный оператор, в котором проверяется это условие.

 

Пример

Задан целочисленный массив А, состоящий из N элементов. Вычислить среднее арифметическое четных элементов и среднее геометрическое нечетных элементов.

 

Программный код

 

Option Explicit

Sub PR16()

Dim i As Integer, S As Integer

Dim K1 As Integer, K2 As Integer, N As Integer

Dim PR As Double, SA As Double, SG As Double

Dim A(50) As Integer

N = Val(InputBox(" Введите N" ))

S = 0: PR = 1: K1 = 0: K2 = 0

For i = 1 To N

A(i) = Cells(1, i)

Next i

For i = 1 To N

If A(i) mod 2 = 0 Then

S = S + A(i) ‘ вычисление суммы и

K1 = K1 + 1 ‘ количества четных элементов

End If

If A(i) mod 2 < > 0 Then

PR = PR * A(i) ‘ вычисление произведения и

K2 = K2 +1 ‘ количества нечетных элементов

End If

Next i

MsgBox(" S=" & S & " K1=" & K1)

MsgBox(" PR=" & PR & " K2=" & K2)

If K1 < > 0 Then

SA = S / K1 ‘ вычисление среднего арифметического

MsgBox(" SA=" & SA)

Else

MsgBox(" четных элементов нет" )

End If

If K2 < > 0 And PR> 0 Then

SG = PR ^ (1 / K2) ‘ вычисление среднего геометрического

MsgBox(" SG=" & SG)

Else

MsgBox(" нечетных элементов нет" )

End If

End Sub

 

Вычисление минимального и максимального элементов в одномерных массивах

 

При вычислении минимального или максимального элементов в одномерном массиве должны выполняться следующие условия:

 
 


Y(i), если Y(i) > Max;

Max =

Max, если Y(i) £ Max.

 

 
 


Y(i), если Y(i) < Min;

Min =

Min, если Y(i) ³ Min.

 

За первоначальное значение максимального элемента можно принять очень маленькое число или первый элемент массива, а за первоначальное значение минимального элемента – очень большое число или первый элемент массива, т.е., например, если массив состоит из целых чисел, то

Max = – 32000 или Max = Y(1),

Min = 32000 или Min = Y(1).

 

Пример 1

Прочитать с рабочего листа Excel одномерный массив. Вычислить минимальный и максимальный элементы этого массива и поменять их местами. Новый массив поместить на тот же лист ниже первого. Минимальный и максимальный элементы также напечатать на рабочем листе.

 

Программный код

 

Sub PR17()

Dim A(10) As Integer

Dim i As Integer, R As Integer

Dim Min As Integer, Max As Integer, IMin As Integer, IMax As Integer

For i = 1 To 10

A(i) = Cells(1, i) ‘ ввод массива

Next i

Min = 32000: Max = –32000

For i = 1 To 10

If A(i) > Max Then

Max = A(i) ‘ вычисление максимума

IMax = i ‘ и его номера

End If

If A(i) < Min Then

Min = A(i) ‘ вычисление минимума

IMin = i ‘ и его номера

End If

Next i

Cells(2, 1) = " Max="

Cells(2, 2) = Max

Cells(2, 4) = " IMax"

Cells(2, 5) = IMax

Cells(3, 1) = " Min="

Cells(3, 2) = Min

Cells(3, 4) = " IMin"

Cells(3, 5) = IMin

R = A(IMax) ‘ меняем местами

A(IMax) = A(IMin) ‘ максимальный и

A(IMin) = R ‘ минимальный элементы

For i = 1 To 10

Cells(5, i) = A(i) ‘ вывод массива

Next i

End Sub

 

 
 

В результате работы этой программы на рабочем листе Excel появятся следующие данные (рис. 5).

 

Рис. 5. Вычисление минимального и максимального элементов массива

Пример 2

Задан одномерный массив Х(N). Вычислить максимальный из отрицательных элементов этого массива.

Программный код

Sub PR18()

Dim Х(100) As Integer

Dim i As Integer, N As Integer, Max As Integer

N = Val(InpurBox(“Введите N”))

For i = 1 To 10

Cells(1, i) = Int(Rnd * 100 – 50)

X(i) = Cells(1, i)

Next i

Max = –32000

For i = 1 To 10

If X(i) > Max And X(i) < 0 Then Max = X(i)

Next i

MsgBox(“Max=” & Max)

End Sub

 

Двумерные массивы

 

Двумерные массивы представляют набор однотипных элементов, расположенных в несколько строк и столбцов, например, двумерный массив из целых чисел выглядит следующим образом:

 

4 –3 2 4 5

6 3 2 4 0

7 1 2 6 0

12 24 25 8 4

0 4 5 8 3

 

Каждый элемент двумерного массива обозначается при помощи имени и индексов, заключенных в круглые скобки, например, A(i, j), X(4, 3), P(2× i, j+1), первый индекс – номер строки, второй – номер столбца.

Двумерный массив, называемый также матрицей, описывается при помощи оператора Dim.

 

Dim A(10, 10) As Тип ‘ нумерация с нуля

Dim A(1 To 10, 1 To 10) As Тип ‘ нумерация с единицы

 

Матрица, у которой количество строк равно количеству столбцов, называется квадратной матрицей.

 

Ввод двумерного массива

1. Считывание массива с рабочего листа Excel.

 

For i = 1 To N

For j = 1 To M

A(i, j) = Cells(i, j)

Next j

Next i

 

‘ N – количество строк массива, M – количество столбцов массива.

2. Формирование массива на рабочем листе Excel при помощи счетчика случайных чисел, а затем считывание массива с рабочего листа.

 

Randomize

For i = 1 To N

For j = 1 To M

Cells(i, j) = Int(Rnd * 100 ­– 50)

A(i, j) = Cells(i, j)

Next j

Next i

Вывод двумерного массива

Вывод двумерного массива на рабочий лист Excel выглядит следующим образом:

 

For i = 1 To N

For j = 1 To M

Cells(i, j) = A(i, j)

Next j

Next i

Формирование матрицы

 

При формировании квадратной матрицы будем пользоваться следующими инструкциями. Общий вид квадратной матрицы, например размерности 4´ 4, выглядит следующим образом:

 

А11 А12 А13 А14
А21 А22 А23 А24
А31 А32 А33 А34
А41 А42 А43 А44

 

В квадратной матрице выделяются главная и побочная диагонали. Условия нахождения элемента на главной или побочной диагонали показаны на рис. 7.

Относительно каждой диагонали элемент матрицы может находиться выше или ниже диагонали. Условия нахождения элемента в каждой из частей матрицы показаны на рис. 8.

I, J – номера строки и столбца, в которых находится элемент матрицы.

 

 
 

 


Рис. 7. Главная и побочная диагонали

 

 
 

 


Рис. 8. Условия нахождения элемента выше или ниже диагонали

 

Относительно обеих диагоналей элемент матрицы может находиться в одной из четвертей. Условия нахождения элемента в каждой из них показаны на рис. 9.

       
 
 
   
(I> J) and (I+J> N+1)

 

 


Рис. 9. Нахождение элемента в одной из четвертей

 

Пример 1

Сформировать матрицу X(N, N) вида

 

На побочной диагонали матрицы стоят 5, на главной диагонали стоят 4, в I четверти – 0, во II четверти – 2, в III четверти – 3, в IV четверти – 1.

 

Программный код

Option Explicit

Sub PR22()

Dim a(10, 10) As Integer

Dim N As Integer

Dim i As Integer

Dim j As Integer

N = Val(InputBox(" Введите N" ))

Range(Cells(1, 1), Cells(100, 100)).Select ‘ выделяет диапазон ячеек

Selection.Clear ‘ очищает выделенный диапазон ячеек

Cells(1, 1).Select ‘ снимает выделение

For i = 1 To N

For j = 1 To N

If i + j = N + 1 Then a(i, j) = 5

If i = j Then a(i, j) = 4

If i < j And i + j < N + 1 Then a(i, j) = 0

If i < j And i + j > N + 1 Then a(i, j) = 2

If i > j And i + j > N + 1 Then a(i, j) = 3

If i > j And i + j < N + 1 Then a(i, j) = 1

Next j

Next i

Cells(1, 1) = " Полученная матрица"

For i = 1 To N

For j = 1 To N

Cells(i + 1, j) = a(i, j)

Next j

Next i

End Sub

Пример 2

Сформировать матрицу X(N, N) вида

 

N
. . . . .
N

 

Описание и вывод матрицы будут как в предыдущем примере, здесь и далее будем рассматривать только фрагмент программы, в котором формируется матрица.

 

For i = 1 To N

For j = 1 To N

X(i, j) = 0

If i = j Then X(i, j) = i

If i + j = N + 1 Then X(i, j) = N + 1 – i

Next j

Next i

 

Пример 3

Сформировать матрицу Y(N, N) вида

 

. . . . .

 

For i = 1 To N

For j = 1 To N

If i = 1 Or i = N Or j = 1 Or j = N Then Y(i, j) = 1 Else Y(i, j) = 0

Next j

Next i

 

Пример 4

Сформировать матрицу Z(N, N) вида

 

. . . . . . .
N

 

For i = 1 To N

For j = 1 To N

If i > = j Then Z(i, j) = j Else Z(i, j) = 0

Next j

Next i

 

 

Пример 5

Сформировать матрицу Q(N, N) вида

 

. . . .

 

For i = 1 To N

For j = 1 To N

If (i +j) mod 2 = 0 Then Q(i, j) = 1 Else Q(i, j) = 2

Next j

Next i

 


Поделиться:



Популярное:

  1. Алгоритм расчета доз органических и минеральных удобрений по прогнозному ротационному балансу элементов питания растений
  2. Анализ элементов художественного текста
  3. Анатомия глотки. Физиология воспроизведения голоса. Резонаторная функция.
  4. Библиографическое описание научного произведения
  5. Биологическая система, состоящая из взаимосвязанных и соподчиненных элементов, взаимоотношения и особенности строения которых определены их функционированием как целого. Что является такой системой?
  6. В задачах 392–420 определить электродвижущую силу элементов, написать уравнения реакций, за счет которых возникает разность потенциалов. Составить схемы элементов
  7. В задачах 881–890 составить электронные формулы атомов элементов в стабильном и возбужденном состояниях и изобразить орбитали внешнего энергетического уровня
  8. В число объектов внешне выполняющих все условия охраноспособности, но не подпадающих под правовую охрану авторского права, входят произведения народного творчества (пп.3 п.6 ст.1259).
  9. Взаимодействие элементов рыночного механизма и установление цен равновесия.
  10. Виды упругих элементов, применяемых в рессорном подвешивании
  11. Все вышесказанное касается не только мяса, но и других видов белков животного происхождения, употребляемых в ИЗБЫТОЧНЫХ количествах.
  12. Все произведения исполняются наизусть.


Последнее изменение этой страницы: 2017-03-08; Просмотров: 953; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.077 с.)
Главная | Случайная страница | Обратная связь