Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Примеры выполнения работы



П р и м е р 1. Задан массив Х = (– 4; 8; – 6; 5; 8; 4). Удалить из массива Х элемент, стоящий на третьем месте, и сформировать новый массива A.

Алгоритм процедуры PR1 удаления элемента из массива с формированием нового массива A показан на рис. 10.1. Программный код, в котором удаляется третий элемент массива Х с формированием нового массива A, выглядит так:

Option Explicit

Sub PR1 ()

Dim x(1 to 6) as As Integer, A(1 to 5) As Integer

Dim N As Integer, i As Integer

Dim k As Integer

k = 3: n=6

For I=1 to n: x(I) = Val(Input Box("Вв. x")): Next I

For i = k To N – 1 ‘начиная с k-го и до предпоследнего элемента

X(i) = X(i + 1) ‘сдвигаем элементы
массива влево

Next i

Cells(3, 1) = "полученный массив"

For i = 1 to N - 1

A(i)=x(i) ‘с формированием массива A

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

Next i: End Sub

Удаление одного элемента из одномерного массива происходит по следующей схеме:

1) указывается или определяется порядковый номер элемента, который необходимо удалить из массива;

2) все элементы, стоящие за удаляемым элементом, сдвигаются на одну позицию влево;

3) количество элементов уменьшается на единицу.

При вставке одного элемента в массив необходимо сначала освободить место для вставляемого элемента, т. е. «раздвинуть» элементы, а затем вставить новый элемент в массив, увеличив массив на один элемент.

П р и м е р 2. Дан массив X = {–3; 2; 0; 6; –8; 12; 0; 5; 77}. После первого числа 0 вставить сумму всех элементов массива. Алгоритм вставки элемента массива процедуры PR2 представлен на рис. 10.2.

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

Option Explicit

Sub PR2 ()

Dim x(11) As Integer, i As Integer, a As Integer, n As Integer

Dim i0 As Integer ‘ порядковый номер числа 0

s = 0: n = 10

For i = 1 To n

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

s = s + x(i) ‘ вычисление суммы элементов

Next i

For i = 1 To n ‘ поиск порядкового номера первого числа 0

If x(i) = 0 Then

i0 = i

Exit For ‘ выход из цикла

End If

Next i

For i = n + 1 To i0 + 1 Step –1 ‘ раздвигаем элементы массива

x(i) = x(i – 1)

Next i

x(i0 + 1) = s ‘ вставка элемента равного сумме

Cells(3, 1) = "полученный массив"

 
 


For i = 1 to n+1 ‘ вывод полученного массива

Cells(4, i) = x(i)

Next i

End Sub

При раздвижке элементов массив приобретет следующий вид:

– 3 2 0 0 6 – 8 12 5 77.

После вставки суммы, получим массив:

– 3 2 0 14 6 – 8 12 5 77.

П р и м е р 3. Задан массив B из 30 целых чисел. Сформировать новый массив D из тех элементов исходного массива B, которые кратны своему индексу. Массив В ввести с помощью генератора случайных чисел в интервале [30; 80]. Исходный и результирующий массив распечатать на «Лист 1» рабочий книги в два столбца.

Особенностью этой задачи является то, что размер нового формируемого массива неизвестен и не может быть заранее определен, поэтому для обозначения индексов исходного и нового массивов вводят две независимые переменные – I и J. Фрагмент алгоритма примера 3 представлен на рис. 10.3.

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

Option Explicit

Sub PR3()

Dim B(1 To 30) As Integer

Dim D(1 To 30) As Integer

Dim i As Integer, J As Integer

Randomize

For i = 1 To 30

B(i) = Int(Rnd * (80 – 30) + 30)

Cells(i, 1) = i: Cells(i, 2) = B(i)

Next i

J = 0

For i = 1 To 30

B(i) Mod i = 0 Then J = J + 1

D(J) = B(i)

Next i

For i = 1 To J

Cells(i, 3) = D(i)

Next i

End Sub





Дата публикования: 2015-04-06; Прочитано: 174 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...