Студопедия

КАТЕГОРИИ:

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

Циклические алгоритмы While и Do




Для выполнения оператора For…Next необходимо задать параметры, которые будут определять, сколько раз должен выполниться оператор(ы) цикла. Альтернативой циклу с For…Next являются циклы While и Do , в котором группа операторов выполняется до тех пор, пока определённое логическое выражение имеет значение True (истина) или False (ложь). Такие циклы нужно применять в тех задачах, где мы не можем знать точно, сколько раз будет повторен цикл. Например, Вы хотели бы, чтобы пользователь вводил пароль в вашей программе до тех пор, пока он не совпадёт с ранее заданным паролем.

Наиболее простой конструкцией построения цикла является конструкция While…Wend. Также существует несколько разновидностей альтернативной конструкции – цикла Do, в зависимости от условий его выполнения. Конструкции циклов Do являются более универсальными и, соответственно, сложными.

4.1. Цикл While … Wend (цикл с предусловием)

Общий вид алгоритма конструкции цикла While … Wend следующий:

 

 

                           Да                                                 Нет

 

 

Синтаксис операторов данного цикла:

 

While <лог. выражение>

                   P1

                                     телоцикла

 

                              PN

Wend

 

В данном цикле сначала выполняется проверка выполнения логического выражения, при его выполнении – выполняется тело цикла. Затем – повторно проверка условия. Таким образом, цикл выполняется до тех пор, пока выполняется заданное логическое выражение. Если условие в заголовке цикла не является истинным с самого начала, цикл не выполняется ни разу.

Практическое задание

В данном задании необходимо смоделировать работу оператора сотовой связи, который проверяет наличие денег на счете абонента (предлагается начальная величина в 500 руб.), при наличии денег – позволяет совершить звонок с последующим уменьшением количества денег на счете.

Стоимость звонка условно принимается постоянной величиной, например, 150 руб.

В теле цикла должно выдаваться сообщение:

«Баланс: » < СуммаДенег > «. Звонок разрешается!».

При отсутствии денег на счете – выдается соответствующее сообщение:

«Задолженность:» < СуммаДенег >.

 

4.2. Цикл Do While … Loop (цикл с предусловием)

Общий вид алгоритма конструкции аналогичен алгоритму цикла While.

Синтаксис оператора следующий:

 

Do {While | Until} <логическое выражение>

P1

P2

.

[Exit Do]

.

PN

Loop

 

где Do (выполнить), While (пока), Until (не раньше), Exit Do (выход из Do), Loop(петля) – зарезервированные слова, P1, P2, PN – операторы.

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

Если логическое выражение после служебного слова While имеет значение True, то выполняются операторы P1, P2, PN , после чего проверка логического выражения повторяется. Если логическое выражение имеет значение False, то происходит выход из цикла. Если условие в заголовке цикла не является истинным с самого начала, цикл Do не выполняется ни разу.

 

4.3. Цикл Do … While Loop (цикл с постусловием)

В отличие от конструкции Do While … Loop, в которой проверка условия осуществляется вначале работы конструкции, конструкция Do … While Loop начинается с выполнения тела цикла, и только затем выполняется проверка условия. Поэтому цикл, организованный с помощью этого оператора, в любом случае выполнится хотя бы один раз.

В остальном данная конструкция аналогична конструкции Do While … Loop.

Общий вид алгоритма конструкции следующий:

P1

 

 

P2

 

              

Pn

 

 

Лог. выражение

 

                               Да                                                 Нет

 

 

Синтаксис оператора следующий:

 

Do

P1

P2

.

[Exit Do]

.

PN

Loop {While | Until} <логическое выражение>

Практическое задание

1. В цикле реализовать запрос у пользователя пароля:

«Введите пароль:»

2. Сравнить введенный пользователем пароль с заданным в программе паролем.

3. Цикл должен выполняться до тех пор, пока пароль не совпадет.

4. Если пароль совпадает, цикл завершается и программа выдает сообщение: «Пароль принят!»

 

Массивы

Массив – это набор переменных с одним именем и с разными индексами.

Массивы бывают разной размерности: одномерные – таблица, состоящая из одной строки (колонки); двумерные – таблица, состоящая из строки и столбца; трехмерные, … n-мерные.

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

Обращение к элементу массива производится по имени элемента, состоящему из имени массива и значения индекса, например: strA(5) = "д".

Каждый элемент массива может принимать собственное значение. Так, значением элемента массива strA(5) является строка "д".

Синтаксис объявления массива:

 

Dim ArrayName([Размерность]) [As Type],

 

где ArrayName – любое имя массива, использующее допустимый идентификатор имени;

Размерность – размерность массива. Если размерность массива больше единицы, то Subscripts разделяются запятыми.

Примеры объявления массивов:

 

Dim A(12) As Integer       ‘ одномерный массив из 12 элементов типа Integer

Dim A(1 To 12) As Integer   

Dim B(3, 3) As Single       ‘ двухмерный массив элементов 3 х 3 (матрица) типа Single

Dim B(1 To 3, 1 To 3) As Single  

 

Причем по умолчанию первый элемент массива будет А(0), а последний А(11). В этом случае говорят, что 0 – базовый индекс. Можно изменить базовый индекс, написав в начале листа модуля инструкцию Option Base 1. После этого индексы массивов А и В будут начинаться с единицы.

Массив в программе определяется поэлементно. Например,

 

Dim B(3, 3) As Single

B(1, 1) = 2

В(1, 2) = 4

В(2, 1) = 1

В(1, 2) = 6

 

Удобным способом определения одномерных массивов является функция Array, преобразующая список элементов, разделенных запятыми, в вектор из этих значений, и присваивающая их переменной типа Variant. Например,

 

Dim A As Variant

А = Array(10, 20, 30)

 

Обработку массивов значительно упрощает использование циклов.

Практическое задание

1. Объявить одномерный массив размерностью 10 элементов целочисленного типа.

2. Инициализировать все элементы массива произвольными числами: A(1) = 5 и т.д.

3. Реализовать расчет среднего арифметического всех чисел, содержащихся в массиве, с помощью оператора цикла.

4. Вывести результат расчета в виде текстового сообщения:

«Среднее арифметическое: ____».

 










Последнее изменение этой страницы: 2018-05-10; просмотров: 192.

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