Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
35-43 - копия.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
116.7 Кб
Скачать

Циклы с известным количеством повторений

Общий вид:

For Cчетчик = Начальное_значение To Конечное_значение [Step Шаг]

Тело цикла

Next [Cчетчик]

Если начальное и конечное значения счетчика не противоречивы, то тело цикла (набор операторов цикла) повторяются для каждого указанного Счетчиком значения с заданным Шагом. Если шаг не указан, то считается равным 1. После цикла выполняется следующий оператор.

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

Пример 1. Найти количество отрицательных чисел среди N введенных.

… ‘ объявление переменных и ввод значения N

kol=0 ‘первоначально количество чисел равно 0

For i = 1 To n ‘начало цикла

a = Val (InputBox("Введите число: ", " Ввoд исходных чисел"))

if a<0 then kol=kol + 1 ‘прибавление единицы, если число отрицательно

Next i ‘возвращение на начало цикла с увеличением счетчика на шаг

MsgBox kol , , "Количество всех отрицательных чисел="

42) Циклы с неизвестным количеством повторений

Для организации такого цикла необходимо:

  • задать перед циклом начальное значение параметра и изменять его перед каждым новым повторением цикла;

  • проверять условие повторения (логическое выражение) и окончания цикла. Если условия не будет, то цикл будет бесконечен.

Существует 4 вида циклов Do... Loop. Их общий вид:

1) Do While условие 2) Do

тело цикла тело цикла

Loop Loop While условие

3) Do Until условие 4) Do

тело цикла тело цикла

Loop Loop Until условие

Если используется While, то тело цикла повторяется, только если значение условия равно True (истина), в противном случае цикл завершается. При использовании Until, тело цикла повторяется, только если значение условия равно False (ложь), в противном случае цикл завершается.

Конструкции 1 и 3 используются для цикла с предусловием, 2 и 4 – для постусловия. Их отличие: в циклах с предусловием тело цикла может не выполниться ни разу, если при первой проверке условие оказывается ложным. В циклах с постусловием – тело цикла выполняется хотя бы один раз, после чего осуществляется проверка заданного условия.

Пример 4. Дана последовательность чисел, заканчивающаяся 0. Найти количество положительных среди введенных чисел.

… ‘ объявление переменных

kol = 0

Do

b = Val (InputBox("Введите числа, 0-конец ввода ", " Ввoд данных"))

If b > 0 Then kol = kol + 1

Loop While b <> 0

MsgBox kol, , " Кол-во положительных чисел="

43) Структурированные типы данных

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

Массивы

Записи (Структуры)

Массивы

Массив - это упорядоченная совокупность данных одного типа, объединенных общим именем. Массив представляет собой множество ячеек памяти для хранения значений, в то время как простая переменная имеет одну ячейку памяти, где может храниться только одно значение. Упорядоченность же заключается в том, что каждый элемент массива имеет определенное место в массиве, которое задается индексом массива, т. е. его порядковым номером. Фактически элементы массива представляют собой разновидность переменных, которые называют также переменными с индексами.

В программном коде при необходимости можно ссылаться как на весь массив, так и на отдельные его элементы. Последовательность может состоять из большого количества элементов, а ссылка на каждый элемент будет состоять только из имени этой последовательности и индекса - номера элемента в этой последовательности.

Как и другие переменные, переменные типа массив, или индексированные переменные, также необходимо описывать с помощью оператора Dim, при этом надо указать не только тип массива, но и его размер. Массив с заданным размером называется массивом фиксированной длины, массив с переменным размером называется динамическим массивом. После имени массива в круглых скобках должен быть указан диапазон изменения индекса - нижняя и верхняя граница. Если не указана нижняя граница изменения индекса массива, то по умолчанию она равна нулю. Допускаются отрицательные значения индекса.

Например

Dim Tab!(5) As Integer

- описан массив из 6 целых чисел

Dim Tab2 (5, 6) As Integer

- описан массив, содержащий 6 столбцов и 7 строк целых чисел

Dim ТаЬЗ (2 То 13) As Single

- описан массив из 12 чисел вещественного типа

Dim ТаЬ4 (1 То 3, 2 То 8) As Single

- описан массив из 7 строк и 3 столбцов чисел вещественного типа.

Как и при описании других переменных, если тип данных при описании массива не был задан, то по умолчанию им присваивается тип Variant. На каждый элемент массива типа Variant отводится 16 байт. Следует помнить, что строковый элемент типа Variant занимает 22 байта. Поэтому для написания компактной программы массивы необходимо явно описывать, как переменные, принадлежащие к конкретному типу данных.

Пример 1

Private Sub Commandl_Click ()

Dim A (10) As Integer, i As Integer, В (10) As String

Randomize

for i = 1 To 10

A (i) = Int (Rnd * 234)

В (i) = STR (A (i) )

Listl.Addltem (B (i))

Next i

End Sub

Пример 2

Dim Tabl (1 To 5, 1 To 5) As Integer, Nc As Integer, Nw As Integer

for Nw = 1 To 5

for Nc = 1 To 5

MSFlexGrid1.Col = Nc

MSFlexGrid1.Row = Nw

MSFlexGrid1.Text = Tabl (Nw - 1, Nc - 1)

Next Nc

Next Nw

В Visual Basic допускается описание массивов, имеющих до 60 размерностей. Для обработки массивов, особенно многомерных, используются вложенные циклы for...Next.