Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Управление ходом выполнения программ. Примеры типовых алгоритмов






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

Для управления ходом выполнения программ предоставляется ряд возможностей, ниже рассматриваются некоторые из них.

Условная инструкция If: Then: Else

Необходимость использования инструкции If: Then: Else возникает, если имеются альтернативные пути выполнения программы; при еe использовании проводится проверка условий и в зависимости от их истинности выполняются определeнные действия. Используется простой и полный синтаксис. Простой синтаксис:

If условие Then инструкция [Else инструкция]

- если условие, стоящее после If истинно (True), то выполняется инструкция, следующая за Then, если условие ложно (False), то выполняется инструкция, следующае за Else.

Полный синтаксис:

If условие 1 Then инструкция 1.[инструкция m][ElseIf условие 2 Then инструкция k] [Elseинструкция n]End If

Во втором случае синтаксиса инструкция 1: инструкция m,: записываются на новых строчках, присутствует инструкция End If. Наличие ElseIf позволяет анализировать дополнительные условия. Добавлением нескольких инструкций ElseIf можно анализировать дополнительное количество условий. Else используется для обработки противоположных ситуаций. Если нужно проверить некоторое условие при наличии другого условия, то используются вложенные инструкции, пример:

If условие 1 ThenIf условие 2 Then инструкция 1.Elseинструкция mEnd IfElseинструкция nEnd If

Для демонстрации различия синтаксиса рассмотрим пример нахождения максимального из 2-х чисел.

Dim max As IntegerIf Val(txt1.Text) > Val(txt2.Text) Then max = Val(txt1.Text) Else max = Val(txt2.Text)lblMax.Caption = maxили: If Val(txt1.Text) > Val(txt2.Text) Thenmax = Val(txt1.Text)Else: max = Val(txt2.Text)End IflblMax.Caption = max

Цикл For: Next

Цикл For: Next предназначен для выполнения определeнного количества действий, когда количество действий известно заранее; синтаксис:

For начальное_значение переменной-счeтчик To конечное_значение переменной-счeтчик [Step величина шага]инструкции Next [переменная-cчeтчик]

Сначала инициализируется начальное значение переменной-счeтчик, при каждом выполнении цикла еe значение увеличивается на величину шага, или на 1, если шаг не указан.

Практическая работа 9. Цикл For: Next

9а. Цикл For: Next, формирование массива, вычисление суммы элементов массива, вывод текстовые поля, поля списка и Label1.

Создать требуемые объекты, см. код процедуры Command1_Click(), данный ниже, очистить свойство Text текстового поля, а его свойству Multiline присвоить значение Тrue, тогда в процессе выполнения будет проводиться перенос строк в текстовое поле. Ввести код:

Private Sub Command1_Click()Dim mass(15) As Integer, i As IntegerRem переменная для хранения суммы элемeнтов массиваDim summ As Integer For i = 0 To 14mass(i) = i' вывод элементов массива в поле спискаlst1.List(i) = mass(i) ' вывод значений i в поле TextBoxtxt1.Text = txt1.Text & " " & i Next isumm = 0For i = 0 To 14' суммирование элементов маcсиваsumm = summ + mass(i) Next ilbl1.Caption = summ ' вывод суммы элементов End Sub

стартовать проект, сделать щелчок на командной кнопке.

9b. Цикл For: Next, формирование массива случайных чисел в заданном диапазоне, вычисление суммы элементов массива, вывод в поле списка и Label1.

Используется функция RND, возвращающая псевдослучайное число в диапазоне 0 - 1. Выражение вида: Int(КонецДиапазона - НачалоДиапазона + 1) * RND() + НачалоДиапазона) позволяет получить случайное целое число в заданном диапазоне. Функция Int возвращает целую часть числа.

Создать требуемые объекты, см. код, данный ниже и ввести код:

Private Sub Command1_Click()Dim mass(15) As Integer, I As Integer, A As Integer, В As IntegerDim Summ As IntegerA = -5: B = 5: Summ = 0For I = 0 To 14mass(I) = Int(Rnd * (B - A + 1) + A)lst1.List(I) = mass(I)Summ = Summ + mass(I)Next Ilbl1.Caption = SummEnd Sub

стартовать проект, сделать щелчок на командной кнопке.

9c. Создание массива объектов, использование вложенного цикла For: Next для формирования двумерного массива, вывод элементов двумерного массива в массив поля списка и суммы элементов массива в элемент управления Label1.

Создать на форме элемент управления CommandButton, создать массив полей списка, для этого:

· щелчком маркировать поле списка,

· использовать команду Копировать контекстного меню поля списка,

· использовать команду Вставить того же контекстного меню; на вопрос: " Хотите, чтобы объект стал элементом массива? " ответить: " Да", копия выводится в верхний левый угол формы,

· повторить копирование, т.к. нужен массив объектов из 3-х элементов; проверить на форме идентификаторы поля списка: List1(0), List1(1), List1(2), рис. 2.1


Рис. 2.1. Схема формы

ввести код:

Private Sub Command1_Click()Dim mass(15, 3) As Single, i As Integer, j As Integer Dim A As IntegerDim B As Integer, Summ As Single A = -5: B = 5: Summ = 0For j = 0 To 14For i = 0 To 2mass(j, i) = Rnd * (B - A) + A' вывод элементов в поля массива спискаList1(i).List(j) = mass(j, i) ' суммирование элементов двумерного массиваSumm = Summ + mass(j, i) Next i, jLabel1.Caption = Summ ' вывод суммы элементов массиваEnd Sub

стартовать проект, сделать щелчок на командной кнопке.

Повтор набора инструкций - Do: Loop

Цикл Do: Loop используется, если точное количество повторений действий заранее неизвестно или нужно дождаться выполнения некоторого условия. Цикл Do: Loop может выполняться бесконечно:

Doповторяющееся действиеLoop

Различают 2 варианта цикла Do: Loop с завершением:

· цикл продолжает повторяться всe время, пока некоторое условие остаeтся истинным:

· Do While условие· инструкцииLoop

· вместо условия продолжения вычислений формулируется условие его завершения:

· Do Until условие· инструкцииLoop

Практическая работа 10. Циклы Do: Loop

Создать массивы, вычислить сумму их элементов.

10а. Do While:, Do Until

1. Создать на форме 2 командные кнопки, 2 элемента управления Label, ввести код, данный ниже:

Private Sub Command1_Click()Dim sum As Integer, mas(5) As Integer, к As Integermas(0) = 5: mas(1) = 6: mas(2) = 7: mas(3) = 6: mas(4) = 7к = 0: sum = 0' здесь цикл повторяется до тех пор, пока значение' переменной остается < 5 Do While к < 5 sum = sum + mas(к)к = к + 1Looplbl1.Caption = sumEnd SubPrivate Sub Command2_Click()Dim sum As Integer, mas(5) As Integer, к As Integermas(0) = 5: mas(1) = 6: mas(2) = 7: mas(3) = 6: mas(4) = 7sum = 0: к = 0Do Until к = 5 sum = sum + mas(к)к = к + 1Looplbl2.Caption = sumEnd Sub

2. стартовать проект, щелчками на командных кнопках выполнить оба цикла.

Цикл Do: Loop часто применяется при считывании записей из файла:

Do While Not EOF #номер файлаEOF (End of File) - признак конца файла.

Циклы Do: Loop могут управляться в конце. В примерах, данных ниже расположение условий в начале/конце циклов равноценно.

10b. Цикл Do: Loop; расположение условий в начале, конце

Создать необходимые объекты, очистить свойства Caption элементов управления Label, ввести код, cтартовать проект, выполнить оба цикла.

Private Sub Command1_Click()Dim i As Integeri = 0Do While i < 7lbl1.Caption = lbl1.Caption & " " & ii = i + 1LoopEnd SubPrivate Sub Command2_Click()Dim i As Integeri = 0Dolbl2.Caption = lbl2.Caption & " " & ii = i+ 1Loop While i < 7End Sub

Условная инструкция Select Case: выбор ветви из набора условий

Использование блока Select Case позволяет принять решение при наличии нескольких условий; синтаксис:

Select Case переменная_выбораCase 1 значение 1инструкция 1Case 2 значение 2инструкция 2.' Case Else выполняется, если не выполнено ни одно из' предыдущих условий Case Else инструкция kEnd Select

Синтаксис Select Case разрешает использование условий < > =, при этом используется ключевое слово Is, пример:

Select Case peopleCase Is < 100000инструкция 1Case Is < 500000инструкция 2End Select

В качестве значения для Case можно указывать не одно значение, а несколько через запятую. Пример использования:

Dim A As SingleA = Val(Text1.Text)Select Case ACase Is < 0: lbl1.Caption = " < 0" Case Is = 0: lbl1.Caption = " 0" Case Else: lbl1.Caption = " > 0" End Select





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.