17448

Циклы с условием

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 9 Циклы с условием 9.1. Циклы Do While...Loop Есть множество операций которые нужно повторять пока чтото не произойдет. Это чтото представляет собой условие прекращения процесса. Код в цикле с неопределенным количеством повторений выполняется неиз...

Русский

2013-07-01

129.61 KB

7 чел.

Лабораторная работа № 9

Циклы с условием

9.1. Циклы Do While...Loop

Есть множество операций, которые нужно повторять, пока что-то не произойдет. Это «что-то» представляет собой условие прекращения процесса. Код в цикле с неопределенным количеством повторений выполняется неизвестное заранее число раз. Он перестает выполняться, когда выполняется (или перестает выполняться) какое-то условие. Есть два вида таких циклов: do while и do until. Цикл do while выполняется, пока выполняется условие. Цикл do until выполняется до тех пор, пока не выполнится условие. Используя циклы с неопределенным числом повторений, нужно уметь выбирать требуемый вид.

Цикл Do While...Loop выполняет блок кода раз за разом, пока выполняется заданное условие. Как только условие перестает выполняться, выполнение цикла завершается. Условие, управляющее циклом Do While...Loop, является его частью. Вот синтаксис цикла Do While... Loop в Visual Basic.NET:

Do While (Условие)

Последовательность операторов

Loop

Обратите внимание на то, что Do, While и Loop — это ключевые слова. Они выделяются синим цветом. Условие заключено в скобки. Условием может быть любое булево выражение, результатом вычисления которого является True или False, например X < 4. Код, который вы хотите выполнить в цикле, помещается между операторами Do While и Loop. В начале каждого выполнения цикла проверяется условие. Если оно выполняется, то код в цикле выполняется. Если условие не выполняется, начинает выполняться код после цикла.

Теперь мы покажем вам пример цикла Do While... Loop. Создайте новое приложение Windows и назовите его «Do-While-Loop». Поместите на форму кнопку. Выполните по кнопке двойной щелчок, чтобы отредактировать обработчик ее нажатия. Вставьте в обработчик следующий код:

Dim WhileValue As Integer

WhileValue = 0

Do While (WhileValue < 2)

MessageBox.Show(WhileValue)

WhileValue = WhileValue + 1

Loop

Постройте и запустите проект. Нажмите кнопку на форме. Появится окно сообщения с числом 0. Нажмите кнопку ОК. Появится новое окно сообщения с числом 1. Нажмите кнопку ОК. Вы вернулись к форме. Больше окон сообщений не появится.

Как работает этот код? Мы объявили переменную WhileValue. Изначально ей присвоено значение 0. При каждом выполнении цикла значение WhileValue увеличивается на 1. В начале цикла оператор Do While проверяет, выполняется ли условие WhileValue < 2. Если да, то выводится окно сообщения и значение WhileValue увеличивается. Если нет, выполнение цикла завершается. Цикл выполнится дважды, прежде чем условие перестанет выполняться. Первый раз в окне сообщения отобразится значение 0. Во второй раз — 1. При третьем выполнении оператора WhileValue = 2. Условие 2 < 2 не выполняется. Цикл завершается, и окно сообщения не появляется.

Задания для самостоятельного выполнения

9.1. В системе программирования Visual Basic .NЕТ создать проект «Do-While-Loop», описанный в параграфе.

9.2. Пошаговое выполнение цикла Do While...Loop

Давайте воспользуемся отладочными инструментами Visual Studio .NET и отследим шаг за шагом выполнение цикла в программе «Do-While-Loop».

1. В окне Код (Code) установите точку останова на операторе Do While.

2. Запустите проект. Нажмите кнопку на форме. Код выполнится до точки останова и будет подсвечена строка с этой точкой.

3. Нажмите клавишу {F11}, что6ы выполнить подсвеченную строку кода.

Do While (WhileValue < 2)

Подведите курсор к переменной WhileVaiue. Ее значение равно 0.

4. Нажмите клавишу {F11}, чтобы выполнить подсвеченную строку кода. MessageBox.Show(WhileValue)

Появится окно сообщения с цифрой 0. Нажмите кнопку ОК.

5. Нажмите клавишу {F11}, что6ы выполнить подсвеченную строку кода.

WhileValue = WhileValue + 1

Значение WhileValue увеличится на 1.

6. Нажмите клавишу {F11}, что6ы выполнить подсвеченную строку кода.

Loop

Цикл выполнится еще раз.

7. Нажмите клавишу {F11}, чтобы выполнить подсвеченную строку кода.

Do While (WhileValue < 2)

Подведите курсор к переменной WhileVa1ue. Теперь ее значение равно 1.

8. Нажмите клавишу {F11}, чтобы выполнить подсвеченную строку кода. MessageBox.Show(WhileValue)

Появится окно сообщения с цифрой 1. Нажмите кнопку ОК.

9. Нажмите клавишу {F11}, чтобы выполнить подсвеченную строку кода.

WhileValue = WhileValue + 1

Значение While Value увеличится еще на 1.

10. Нажмите клавишу {F11}, чтобы выполнить подсвеченную строку кода.

Loop

Цикл начнет выполняться снова.

11. Нажмите клавишу {F11}, чтобы выполнить подсвеченную строку кода.

Do While (WhileValue < 2)

Подведите курсор к переменной WhileVa1ue. Ее значение равно 2. Условие WhileValue < 2 перестало выполняться, поэтому выполнение цикла завершается. Окно сообщения больше не появляется, и значение WhileValue не увеличивается.

12. Нажмите клавишу {F11}, чтобы выполнить подсвеченную строку кода.

End Sub

Выполнение обработчика завершается. Снова отображается форма.

 Задания для самостоятельного выполнения

9.2. В системе программирования Visual Basic .NЕТ создать проект «Do-While-Loop». Провести пошаговое выполнение проекта так, как это описано в параграфе.

9.3. Циклы Do Until...Loop

Цикл Do UntilLoop выполняет блок операторов кода, пока какое-то условие не станет истинным. Это условие может быть любым булевым выражением, результатом вычисления которого будет True или False. Вот синтаксис цикла Do Until…Loop в Visual Basic .NET:

Do Until (Условие)

Последовательность операторов

Loop

Слова Do, Until и Loop - ключевые. Они выделены синим цветом. Истинность условия проверяется в начале выполнения цикла. Если условие ложно, то выполняется код в цикле. Когда условие в операторе Do Until становится истинным, цикл завершается.

Создайте новое приложение Windows и назовите его «Do-Until-Loop». Поместите кнопку на форму. Выполните двойной щелчок по этой кнопке, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик следующий код:

Dim UntilValue As Integer

UntilValue = 0

Do Until (UntilValue > 1)

MessageBox.Show(UntilValue)

UntilValue = UntilValue + 1

Loop

Постройте и запустите проект. Нажмите кнопку. Появится окно сообщения с цифрой 0. Нажмите OK. Появится окно сообщения с цифрой 1. Нажмите OK. Выполнение цикла закончится, и снова появится форма.

Как работает цикл Do Until…Loop? Сначала мы объявили переменную Unti1Value и проинициализировали ее значением 0. Значение переменной UntilValue используется в условии, чтобы определить, должен ли цикл выполняться снова. При каждом выполнении цикла значение переменной UntilValue увеличивается на 1. В операторе Do Until содержится оператор сравнения, проверяющий, больше ли значение UntilValue, чем 1. При первой проверке значение UntilValue равно 0. Условие ложно, и выполняется код внутри цикла. Выводится окно сообщения. и значение UntilValue увеличивается на 1. При второй проверке значение UntilValue равно 1. Условие по-прежнему ложно, и код в цикле выполняется еще раз. Но при третьей проверке значение UntilValue равно 2. Условие ложно (2 > 1). и выполнение цикла заканчивается.

Задания для самостоятельного выполнения

9.3 В системе программирования Visual Basic .NЕТ создать проект «Do-Until-Loop», описанный в параграфе.

9.4 Проекты с использованием Do...Loop

А теперь давайте разберем примеры с циклами Do WhileLoop и Do Untilloop, в которых попользуются булевы выражения, не зависящие напрямую от значения переменной счетчика. Первый пример использует цикл Do WhileLoop с булевым выражением. проверяющим, больше ли значение переменной нуля или равно ему. Если значение переменной станет меньше нуля, выполнение цикла завершится.

Создайте новое приложение Windows и наловите его «Do-While-Loop-2». Поместите на форму кнопку. Измените значение свойства Text этой кнопки на Вычислить. Выполните двойной щелчок по ней. чтобы отредактировать обработчик ее нажатия. Добавьте в него следующий код:

Dim Index As Integer = 0

Dim Controller As Integer = 167

Do While (Controller >= 0)

Index = Index + 1

Controller = Controller – (23 * Index)

Loop

MessageBox.Show (Controller)

Постройте и запустите проект «Do-While Loop-2». Нажмите кнопку с надписью Вычислить. Появится окно сообщения с числом -63. Как этот код работает? Мы объявили две целочисленные переменные Index и Controller и задали их начальные значения. Значение переменной Index увеличивается на 1 при каждом выполнении цикла. При каждом выполнении цикла для переменной Controller вычисляется новое значение — по более сложной формуле. Эго значение вычисляется путем умножения значения Index на 23 и вычитания результата умножения из старого значения переменной Controller. При каждом выполнении цикла значение перемен ной Controller будет уменьшаться. Сложно навскидку сказать, сколько раз цикл выполнится, прежде чем значение переменной Controller станет меньше 0. и цикл завершится. Но это ничего не значит, поскольку для булева выражения важно значение только переменной Controller, а не переменной Index.

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

В проекте «Do-While-Loop-2» добавьте на форму еще одну кнопку. Измените значение свойства Text этой кнопки на While. Добавьте на форму три переключателя. Выполните двойной щелчок по новой кнопке, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик такой код:

Dim Index As Integer = 0

RadioButtonl.Checked=True

Do While (RadioButton3.Checkod = False)

Index = Index + 1

If Index = 1 Then

RadioButton 1.Checked=True

End If

If Index = 2 Then

RadioButton2.Checked=True

End If

If Index = 3 Then

RadioButton3.Checked=True

End If

Loop

MessageBox.Show (Index)

Постройте и запустите приложение. Обратите внимание на то. что выбрана позиция переключателя RadioButtonl. Нажмите кнопку с надписью While. Код выберет позицию переключателя RadioButton3, и в окне сообщения будет выведено значение переменной Index. Если у вас очень хорошая реакция или очень старый компьютер, вы можете заметить, как на мгновение была выбрана позиция переключателя RadioButton2.

Вот что происходит. Мы объявляем переменную Index, чтобы отслеживать, сколько раз выполнится код в цикле. Однако эта переменная не используется в булевом выражении, управляющем циклом Do While…Loop. Вместо этого Index используется для перебора переключателей. Булево выражение в цикле Do While…Loop проверяет, выбран ли переключатель RadioButton3. Как только условие RadioButton3.Checked = True выполняется, цикл завершается.

В третьем примере мы используем оператор Do Until…Loop. Булево выражение сравнивает значение свойства Text текстового поля со значением строковой переменной, которое изменяется с каждой итерацией цикла. Добавьте текстовое поле на форму проекта «Do-Until-Loop-2». Оставьте значение TextBoxl свойства Техt, текстового поля. Добавьте на форму кнопку и измените значение свойства Text этой кнопки на Сравнить тексты. Выполните двойной щелчок по новой кнопке, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик следующий код:

Dim MatchText As String = “ ”

Dim Index As Integer = 0

Do Until (MatchText = TextBoxl.Text)

Index = Index + 1

If Index = 2 Then 

MatchText = “Text”

End If

If Index = 3 Then 

MatchText = “Boxl”

End If

If Index = 4 Then

MatchText = “TextBoxl”

End If

Loop

MessageBox.Show (“ При значении счетчика “ & Index & “тексты равны”)

Постройте и запустите приложение. Нажмите кнопку с надписью Сравнить тексты. В появившемся окне сообщения будет показано значение переменной Index, при котором тексты совпали.

В коде используется оператор Do Until…Loop. Переменная Index используется только для определения значения переменной MatchText. Булево выражение сравнивает значение переменной MatchText и значение свойства Text текстового поля TextBoxl. При четвертом выполнении кода в цикле значение Index будет равно 4. и MatchText = “ТехtBox1”. Булево выражение станет истинным, поскольку “TextBoxl” = “TextBoxl”, и выполнение цикла завершится.

А что. если свойству Text текстового поля TextBoxl присвоить значение Текст? Сможете ли вы добавить в код еще один оператор If…Then, чтобы код все равно работал?

Задания для самостоятельного выполнения

9.4. В системе программирования Visual Basic .NET создать проект «Do-While-Loop-2», описанный и параграфе.

9.5. В системе программирования Visual Basic .NET создать проект «Do-Until-Loop-2», описанный в параграфе.

9.5. Циклы с постусловием

В предыдущих параграфах циклы Do While…Loop и Do Until…Loop использовались с предусловием, т. е. условие располагалось в начале цикла. Однако можно использовать циклы Do WhileLoop и Do LoopUntil и с постусловием, т. е. чтобы условие располагалось в конце цикла. В таких циклах операторы внутри циклов будут всегда выполняться хотя бы один раз. Потом будет проверяться выполнение условия. Вот пример оператора Do…Loop While с постусловием:

Dim WhileValue As Integer

WhileValue = 0

Do

MessageBox.Show(WhileValue)

WhileValue - WhileValue + 1

Loop While (WhileValue < 2)

А вот пример оператора DoLoop Until:

Dim UntilValue As Integer

UntilValue = 0

Do

MessageBox.Show(UntilValue)

UntilValue = UntilValue + 1

Loop Until (UntilValue > 1)

Операторы от Do и до Loop выполнятся как минимум один раз. Затем будет проверено выполнение условия, чтобы определить, должен ли цикл выполняться еще раз.

Задания для самостоятельного выполнения

9.6. В системе программирования Visual Basic .NЕТ создать проект «Циклы с постусловием», описанный в параграфе.

9.6 Циклы в J# и C#

Давайте посмотрим на циклы с неопределенным количеством повторений в C# и J#.

Циклы в языке С#. На C# можно написать код, делающий то же, что и операторы Do While…Loop и Do…Loop While в Visual Basic .NET. В C# нет эквивалентов операторам Do Until…Loop или Do…Loop Until.

Вот как написать такой цикл (while и loop записываются строчными буквами) на С#. Здесь условие проверяется в начале выполнения цикла:

int WhileValue=0;

While (WhileValue<5)

{

MessageBox. Show(WhileValue.ToString ()) ;

WhileValue=WhileValue + 1;

}

А вот код на C# для цикла dowhile loop (do, while и loop записываются строчными буквами), истинность условия в котором проверяется после выполнения кода в цикле:

int WhileValoe=0;

do

{

MessageBox.Show (WhileValue.ToString ()) ;

WhileValue=WhileValue + 1;

}

while (WhileValue<5) ;

Циклы в языке J#. А теперь посмотрим на код на J#, который очень похож на код на С#. В J# нет эквивалентов операторам Do Until…Loop или Do…Loop Until из Visual Basic .NET. Вот как создается цикл (while и loop записываются строчными буквами) на J#. Здесь цикл проверяет истинность условия в начале выполнения:

int WhileValue=0;

while (WhileValue<5)

{

MessageBox.Show(System.Convert.ToString (WhileValue));

WhileValue= WhileValue +1;

}

Вот код на J# для цикла (do, while и loop записываются строчными буквами), проверяющего истинность условия после выполнения кода в цикле:

int WhileValue=0;

do

{

MessageBox.Show (System.Convert.ToStrinq(WhileValue));

WhileValue= WhileValue +1;

}

while (WhileValue<5);

9.7. Выход из циклов

Из циклов Do WhileLoop, Do UntilLoop, DoLoop While и DoLoop Until можно выйти с использованием оператора Exit Do. С помощью оператора If…Then проверяется истинность условия, управляющего выполнением оператора Exit Do. Если условие истинно, то выполняется оператор Exit Do и выполнение цикла завершается. Используйте Exit Do, если вы хотите завершить выполнение цикла до того, как его управляющее условие станет истинным (или ложным).

Давайте разберем пример выхода из цикла Do Until…Loop. Создайте новое приложение Windows и назовите его «Exit-Do». Поместите на форму кнопку. Выполните двойной щелчок по кнопке, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик следующий код:

Dim UntilValue As Integer

UntilValue = 0

Do Until (UntilValue > 10)

MessageBox.Show(UntilValue)

UntilValue = UntilValue + 1

If UntilValue = 5 Then 

Exit Do 

End If

Loop

MessageBox.Show(“Exit Value= “ & UntilValue)

Постройте и запустите проект. Нажмите кнопку на форме. При каждом выполнении цикла значение переменной UntilValue будет увеличиваться на 1 и эти значения будут выводиться в окнах сообщений. Закрывайте каждое окно сообщения нажатием кнопки ОК. Когда значение UntilValue достигнет 5, условие в операторе IfThen станет истинным. Будет выполнен оператор Exit Do. Выполнение цикла завершится, и начнет выполняться код за оператором Do UntilLoop. Этот код выведет на экран окно сообщения с текстом «Exit Value= 5». Нажмите в этом окне кнопку ОК. чтобы вернуться на форму.

Точно такой же оператор Exit Do можно использовать для выхода из циклов Do Whi1е…Loop до того, как управляющее условие станет ложным.

Задания для самостоятельного выполнения

9.7. В системе программирования Visual Basic .NЕТ создать проект «Exit-Do», описанный в параграфе.


 

А также другие работы, которые могут Вас заинтересовать

50080. Циклические программы 47.5 KB
  Операторов цикла в Паскале три: for repet while. Оператор For Оператор состоит из заголовка в котором определяется порядок изменения переменной параметра цикла и тела цикла являющегося многократно повторяющимся алгоритмом. Общий вид оператора: For – параметр цикла : = начальное значение to конечное значение do оператор; {тело цикла}. Этот оператор применяется если начальное значение конечного значения; For – параметр цикла:= начальное значение downto конечное значение do оператор; применяется если начальное значение конечного значения.
50081. ПРОЧНОСТНЫЕ ХАРАКТЕРИСТИКИ МАТЕРИАЛОВ В РАСЧЕТАХ ПО МЕТОДУ ПРЕДЕЛЬНЫХ СОСТОЯНИЙ 51.5 KB
  Соответствующими стандартами установлены также другие нормативные характеристики материалов объемная масса модули упругости и сдвига коэффициенты трения сцепления характеристики ползучести усадки температурного расширения усушки набухания и другие. Возможные отклонения нормативных характеристик конструкционных материалов и грунтов в неблагоприятную сторону учитываются коэффициентами надежности по материалу и грунту . Эти коэффициенты учитывают ряд факторов не проявляющихся при стандартных испытаниях но встречающихся в практике...
50082. Визначення показника заломлення скляної плоскопаралельної пластинки інтерференційним методом 674 KB
  На оптичній лаві послідовно розташовані джерело світла лазер 1 типу ЛГ56 екран 2 в центрі якого розміщено мікрооб’єктив та плоскопаралельна скляна пластинка 3 товщиною d. Відбиваючись від її передньої та задньої граней промені світла накладаються і утворюють на екрані інтерференційну картину у вигляді концентричних кілець  так звані смуги однакового нахилу. В чому полягає суть методу визначення показника заломлення скляної пластинки в даній роботі Що називається явищем інтерференції світла Які хвилі називаються когерентними...
50083. Стройові вправи. Правила піднімання вантажу 61 KB
  Основи термiнологiï: положення лежачи рiвновага. Положення лежачи. Лежачи на спинi Положення при якому торкаються пiдлоги всi частини задньоï поверхнi тiла положення рук визначається вiдносно тулуба Лежачи на животi Положення при якому торкаються пiдлоги всi частини передньоï поверхнi тiла пiдборiддя теж торкається пiдлоги Лежачи на животi прогнувшись Положенняпри якому торкаються пiдлоги нижня частина грудноï клiтини живiт i таз; верхня частина тулуба i ноги знаходяться над...
50084. Ролевая теория личности. Ролевые конфликты 16.93 KB
  Ролевая концепция личности возникла в американской социальной психологии в 30-х гг. XX в. (Дж. Мид) и получила широкое распространение в различных социологических течениях, прежде всего, в структурно-функциональном анализе
50086. Создание комплексных текстово-графических материалов 78 KB
  Запустите Corel Drаw создайте новый файл. Сохраните файл под именем Верстка сверните файл но не программу. В программе Corel Drw создайте еще один файл постройте на листе по 15 горизонтальных и вертикальных направляющих Horizontl nd Verticl Guidelines: Horizontl Горизонтальные от 70 до 140 мм с шагом в 5 мм; Verticl Вертикальные от 30 до 100 мм также с шагом в 5 мм. Откройте файл Верстка импортируйте в него сохраненный кроссворд придайте ему такие же размеры и положение как на ксерокопии.
50087. Определение показателя адиабаты при адиабатическом расширении газа 309.5 KB
  Плеханова технический университет Кафедра Общей и технической физики лаборатория виртуальных экспериментов Определение показателя адиабаты при адиабатическом расширении газа Методические указания к лабораторной работе № 8 для студентов всех специальностей САНКТПЕТЕРБУРГ 2010 УДК 531 534 075. Цель работы: – изучить законы идеального газа и основные положения классической теории теплоёмкости; определить коэффициент Пуассона отношение теплоёмкости при постоянном давлении Ср к теплоемкости при постоянном объеме CV методом...