И примеры их программирования

 

Типичными задачами работы с одномерными массивами являются определение факта наличия в них заданного элемента и отбор элементов, удовлетворяющих определённым условиям. В обоих случаях используется циклическое сравнение элементов массива с заданным образцом. Для определения факта наличия заданного образца в массиве достаточно единственного совпадения, после чего дальнейший просмотр прекращается. Если условие отбора может выполняться для нескольких элементов массива, то необходим просмотр всего массива до конца. Для досрочного прекращения просмотра элементов массива в цикле используется оператор
Exit For.

В массивах больших размеров для сокращения времени просмотра применяется упорядоченное хранение элементов. Для числовых массивов используется упорядочение элементов по значению, для текстовых – по алфавиту (точнее, по значению кода символов). Упорядочение обычно производиться путём сортировки элементов неупорядоченного массива.

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

· Нахождение суммы значений элементов массива при заданных условиях (Пример 4.7.4-1).

· Нахождение произведения значений элементов массива при заданных условиях (Пример 4.7.4-2).

· Нахождение максимального и минимального значений элементов массива и их индексов (Пример 4.7.4-3).

· Формирование нового массива из элементов одного или нескольких массивов в соответствии с заданными критериями (Примеры 4.7.4-3 – 4.7.4-4).

· Формирование массива в соответствии с определенными правилами (Пример 4.7.4-7).

· Вставка элемента по заданному критерию в массив
(Пример 4.7.4-5).

· Удаление элемента по заданному критерию из массива
(Пример 4.7.4-6).

· Обмен значений элементов массива по заданному критерию
(Пример 4.7.4-8).

· Сортировка (упорядочивание) элементов массива (Пример 4.7.4-9).

 

Пример 4.7.4-1. Разработать процедуру, которая вычисляет произведение положительных и сумму отрицательных элементов массива x().

Схема алгоритма и программный код процедуры приведены на
рис. 4.7.3-1.

Напомним, что вычисление суммы и произведения обычно осуществляется по рекуррентным формул: s0 = 0; si+1 = si + xi+1; p0 = 1;
pi+1 = pi * xi+1.

 

Sub Pr741(ByRef x() As Single, _ ByRef s As Single, ByRef p As Single) Dim i As Integer s = 0: p = 1 For i = 0 To UBound(x) If x(i) > 0 Then p = p * x(i) Else s = s + x(i) End If Next End Sub   Private Sub Button1_Click(…) Dim s,p, a() As Single vvodSngMac15(а) vivodSngMac17(а, ListBox1) Pr741(а, s, p) vivod3(s, TextBox1): Vivod3(p, TexBox2) End Sub

 

Рис. 4.7.4-1. Схема алгоритма и программный код процедуры Pr741()

Примера 4.7.4-1

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: