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

 

Sub Pr7410(ByRef x() As Double) Dim i, n, j, k As Integer i = 0 n = UBound(x) Do While i < n j = i + 1 Do If x(i) = x(j) Then For k = j To n - 1 x(k) = x(k + 1) Next n = n - 1 Else j = j + 1 If Loop While j <= n i = i + 1 Loop ReDim Preserve x(n) End Sub Private Sub Button1_Click(…) Dim n As Integer n = CInt(InputBox("введите кол." _ &"элементов исходного массива")) Dim x(n - 1) As Double vvod(x, n): vivod(x, ListBox1) Pr7410(x): vivod(x, ListBox2) End Sub

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

Пример 4.7.4-10

Решения задачи заключается в последовательном сравнении каждого элемента исходного массива со всеми остальными. В цикле происходит формирование массива x(j). Если элемент массива x(i) равен элементу x(j), то j -й элемент удаляется, а длина массива уменьшается на единицу.

Алгоритм «сжатия» для получения массива с уникальными элементами и программа, реализующая данный алгоритм, приведены на рис. 4.7.4-10.


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



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