Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (часть 2).doc
Скачиваний:
41
Добавлен:
03.05.2015
Размер:
1 Мб
Скачать
☆

Лабораторная работа № 5 Сложные циклические вычислительные процессы. Обработка массивов.

Сложными называются такие циклические вычислительные процессы, которые состоят из двух и более включённых друг в друга циклов. При этом циклы, охватывающие другие циклы, называются внешними, а циклы, включённые во внешние, называются внутренними.

Особенность выполнения сложного цикла состоит в том, что одно выполнение внешнего цикла включает в себя многократное выполнение внутреннего цикла. При этом в процессе очередного выполнения внешнего цикла управляющая переменная внутреннего цикла сначала принимает начальное значение, а затем поочерёдно принимает все положенные ей значения.

Пример 1 Вычислить значения функции двух переменных

Z=(X^2+Y^2)/(3*x*Y), если Х изменяется 0т 10 до 20 с шагом 2, а Y от 5 до 10 с шагом 1.

….

x = 10

Do While x <= 20

y = 5

Do While y <= 10

z = (x ^ 2 + y ^ 2) / (3 * x * y)

Print "x="; x, "y="; y, "z="; z

y = y + 1

Loop

x = x + 2

Loop

…

В приведённом примере – во внешнем цикле управляющая переменная – x, во внутреннем –Y. В приведённом примере внешний цикл выполняется 6 раз. Внутренний цикл выполняется всего 36 раз (для каждого значения управляющей переменной внешнего цикла внутренний цикл выполняется 6 раз).

Массивы

Массив – это упорядоченная совокупность элементов одного типа. Каждый элемент в массиве имеет порядковый номер, называемый индексом.

Различают статические и динамические массивы. Размеры статических массивов не меняются в ходе выполнения программы, а размеры динамических массивов изменяются.

Для объявления статического массива достаточно в описании после имени указать в круглых скобках максимальное значение индекса, например:

Dim X(10) as single

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

Обращение: Имя(индекс)

В VBиндексирование начинается с 0, т.е. индекс 0 обозначает первый элемент массива.

Можно задать другие границы массива:

Dim Sotrudnik(1990 to 2000), таким образом можно задать верхнюю и нижнюю границу индекса. Это удобно, если индекс несёт некоторую смысловую нагрузку. В данном примере в массиве хранится количество сотрудников по годам, а индекс означает год.

Для обработки массивов удобно использовать оператор цикла For…Next, т. к. счётчик цикла в нём изменяется автоматически, а шаг по умолчанию равен 1.

Пример 2 Найти максимальное и минимальное значения массива S из 50 элементов.

…

maxs = S(0)

mins = S(0)

For i = 1 To 49

If S(i) > maxs Then maxs = S(i)

If S(i) < mins Then mins = S(i)

Next i

Print mins, maxs

…

Пример 3 Упорядочить массив из 11 чисел по убыванию. Вывести упорядоченный массив.

Для решения этой задачи требуется организовать сложный цикл, в котором очередной элемент массива сравнивается с последующими. После первого выполнения внешнего цикла элемент S(0) должен содержать максимальное значение, после второго - элементS(1) должен содержать максимальное значение из оставшихся и т.д.

…

For i = 0 To 9

For j = i + 1 To 10

If S(i) < S(j) Then

v = S(i)

S(i) = S(j)

S(j) = v

End If

Next j

Next i

For i = 0 To 10

Print S(i);

Next i

…

В этом примере элемент i- это номер очередного упорядочиваемого элемента, аjзадаёт номера последующих элементов, с которыми сравнивается очередной, переменнаяVиспользуется для временного хранения одного элемента массива, если значения сравниваемых элементов массива надо поменять местами.