17447

Циклы со счетчиком

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

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

Лабораторная работа № 8 Циклы со счетчиком 8.1. Циклы For ...Next Циклы используются для многократного выполнения одних и тех же операторов кода. Иногда программе нужно повторять какието действия раз за разом пока она не выполнит их нужное количество раз. Поэтому во всех я

Русский

2013-07-01

90.54 KB

2 чел.

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

Циклы со счетчиком

8.1. Циклы For ...Next

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

Вот пример полезности циклов в программах. Предположим, что вам нужно сложить все числа от 1 до 100. Эго можно сделать, написав одно длинное выражение, например:

Dim TotalCount As Integer

TotalCount = 0

TotalCount =1+2+3+4 и так далее.

Эго очень неудобно!

А как насчет вот такого?

Dim TotalCount As Integer

TotalCount = 0

TotalCount = TotalCount + 1

TotalCount = TotalCount + 1

TotalCount = TotalCount + 1

TotalCount = TotalCount + 1

и так далее.

Тоже плохо. Эту строку пришлось бы повторить 100 раз! А если бы нужно было просуммировать числа от 1 до 1000? Как бы вы сделали это?

Оператор ForNext. Вот здесь-то нам и пригодятся циклы. Как мы уже говорили, циклы есть во всех языках программирования, и они позволяют исполнять один и тот же код множество раз. Часто вы знаете заранее, сколько раз нужно выполнить код. В нашем примере нужно просуммировать вое числа от 1 до 1000. поэтому код нужно выполнить 1000 раз. Если вы знаете, сколько раз должен выполниться код. используйте цикл с предварительно заданным числом повторений.

В Visual Basic .NЕТ. цикл с предварительно заданным числом повторений создается с помощью оператора ForNext. Вот синтаксис такого цикла:

Dim Счетчик As Integer

For Счетчик = Начальное Значение То Конечное Значение

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

Next

Обратите внимание на то. что For, Next и То — это ключевые слова. Они выделены синим цветом и начинаются с заглавных букв. Счетчик (счетчик цикла) — переменная, которую нужно объявлять как целочисленную. Ее нужно объявить, прежде чем использовать в цикле ForNext. (Для нее можно задать любое имя.) Переменная счетчик отслеживает, сколько раз выполнился цикл. К значению этой переменной можно обращаться внутри цикла. Начальное значение и конечное значение должны быть целыми числами, целочисленными переменными. или выражениями целочисленного типа, например 3 + 1 или X + 1. При каждом выполнении цикла значение переменной счетчик увеличивается на 1. Когда значение счетчика становится больше, чем конечное значение, выполнение цикла завершается.

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

Dim LoopCounter As Integer

For LoopCounter = 1 To 2

MessageBox. Show(LoopCounter)

Next

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

Вот как это работает. В коде вы объявили переменную LoopCounter типа Integer. В операторе For вы проинициализировали LoopCounter значением 1 и задали для ее значения верхний предел 2. В цикле будут выполняться операторы, помещенные между For и Next. При каждом выполнении цикла значение LoopCounter увеличивается на 1. В окне сообщения будет выведено текущее значение переменной LoopCounter (сначала 1. потом 2). Когда значение LoopCounter достигнет 3. выполнение цикла завершится и окно сообщения выводиться больше не будет. Конец цикла!

По умолчанию значение счетчика увеличивается на 1 при каждом выполнении цикла. Можно сделать так. чтобы оно увеличивалось на большую величину. используя ключевое слово Step, как в этом примере:

Dim LoopCounter As Integer

For LoopCounter = 0 To 100 Step 5 

MessageBox.Show(LoopCounter)

Next

Здесь значение переменной LoopCounter увеличивается на 5 при каждом выполнении цикла. В окнах сообщений будут выводиться значения 0. 5, 10. 15, и т. д.

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

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

8.2. Пошаговое выполнение цикла For...Next

Давайте изучим цикл For_Next, который вы только что написали, с помощью отладочных инструментов Visual Studio .NET. Мы будем пошагово выполнять цикл. Вот что для этого нужно сделать:

1. Поставьте точку останова в строке кода, содержащей оператор Fог. Постройте и запустите приложение.

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

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

For LoopCounter = 1 То 2

Подведите курсор мыши к переменной LoopCounter в строке For LoopCounter = 1 То 2. Ее значение равно 1.

4. Нажмите клавишу {F11}. Подсвеченная строка кода выполнится.

MessageBох.Show (LoорСounter)

В окне сообщения будет цифра 1. Нажмите кнопку ОК. чтобы закрыть окно сообщения.

  1.  Нажмите клавишу {F11}. Подсвеченная строка кода выполнится.

Next

  1.  Первое выполнение цикла For закончено. Нажмите клавишу {F11}. Подсвеченная строка кода выполнится.

For LoopCountcr = 1 То 2. Подведите курсор к переменной LoopCounter в операторе For. Значение переменной будет равно 2.

  1.  Нажмите клавишу {F11}. Подсвеченная строка кода выполнится.

MessageBох.Show (LoорСounter)

В окне сообщения будет цифра 2. Нажмите кнопку ОК. чтобы закрыть окно сообщения.

  1.  Нажмите клавишу {F11 }. Подсвеченная строка кода выполнится.

Next

  1.  Выполнение цикла закончено. Нажмите клавишу {FI 1}. Подсвеченная строка выполнится. For LoopCounter = 1 То 2

Подведите курсор к переменной LoopCounter в операторе For. Значение переменной будет равно 3.

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

End Sub

Форма появится опять.

Вы только что пошагово выполнили код в цикле ForNext. Вы увидели, как этот цикл выполняется в программе!

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

8.2. В системе программирования Visual Basic .NЕТ провести пошаговое выполнение проекта «For-Next» так. как это описано в параграфе.

8.3. Проекты с использованием For...Next

Сложение чисел от 1 до 1000. С помощью цикла ForNext можно складывать большое количество чисел. Создайте новое приложение Windows и назовите его «Сложение». Поместите на форму кнопку и измените значение ее свойства Text на Сложить. Выполните по ней двойной щелчок, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик следующий код:

Dim Counter As Integer 

Dim Total As Integer = 0

For Counter = 1 To 1000

Total = Total + Counter

Next

MessageBox.Show(Total)

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

Как этот код работает? Сначала мы объявили две целочисленных переменных: Counter и Total. Counter отслеживает, сколько раз выполнился цикл. В Total хранится сумма сложенных чисел. В операторе Fоr начальное значение Counter задано равным 1, а конечное значение — равным 1000. Это потому, что мы хотим выполнить цикл 1000 раз, суммируя числа от 1 до 1000. Оператор, который нужно повторять много раз, прибавляет текущее значение Counter к значению Total и сохраняет результат в Total. При каждом выполнении цикла значение Counter прибавляется к значению Total (0 + 1 = ,. 1 + 2 = 3, 3 + 3 = 6, 6 + 4 = 10, и т. д.). Когда Counter достигает значения 1000, выполнение цикла заканчивается. Выполняется строка кода после оператора Next. В этой строке вызывается окно сообщения, в котором выводится значение Total.

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

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

Dim Message As String

 Dim i As Integer = 0

Message = “СТРОКА.”

For i = 1 To 5

MessageBox.Show(Message)

Message = Message & vbNewLine & Message

Next

Постройте и запустите проект. Нажмите кнопку с надписью Сложить строки. В окне сообщений будет выведено сообщение «СТРОКА.». В окне сообщений щелкните пять раз по кнопке ОК. цикл выполнится пять раз. Обратите внимание на то, во сколько раз увеличилось сообщение.

Цикл и вложенный условный оператор. Создайте проект «Цвет формы». Поместите на форму кнопку и измените значение свойства Text этой кнопки на Установить цвет. Выполните двойной щелчок по ней, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик следующий код:

Dim i As Integer = 0

For i = 2 To 6

If i < 3 Or i > 5 Then

MessageBox.Show(i)

Form1.ActiveForm.BackColor = System.Drawing.Color.Red

Else

MessageBox.Show(i)

Form1.ActiveForm.BackColor = System.Drawing.Color.Blue

End If 

Next

Постройте и запустите проект. Нажмите кнопку с надписью Установить цвет. В окнах сообщения будет выводиться текущее значение счетчика цикла. Заметьте, что на этот раз минимальное значение счетчика равно 2. а максимальное — 6. Оператор IfThenElse внутри цикла ForNext решает, как раскрасить форму в зависимости от значения счетчика цикла. В цикле выводится окно сообщения, которое позволяет отслеживать значение счетчика цикла. Кроме того, вывод окна сообщения замедляет работу цикла, чтобы можно было заметить изменение цвета формы.

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

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

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

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

8.4. Вложенные циклы

Знаете ли вы, что можно поместить один цикл For…Next внутрь другого? Внутренний цикл For…Next будет выполняться раз за разом при каждом выполнении внешнего цикла For…Next. Так сколько же раз выполнится код внутри внутреннего цикла? Давайте рассмотрим пример, чтобы определить ответ на этот вопрос.

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

Dim i As Integer 

Dim k As Integer

Dim Total As Integer = 0

For i = 1 To 3

For k = 1 To 4

Total = Total + 1

Next

Next

MessageBox.Show(“Total = “ & Total)

Постройте и запустите проект. Нажмите кнопку. Появится окно сообщения с текстом «Total = 12». Эго общее количество выполнений кода внутри внутреннего цикла. Посмотрите на код. Вы заметили, что 12 — это 3 (количество выполнений внешнего цикла) умножить на 4 (количество выполнений внутреннего цикла)? Правильно! При каждом выполнении внешнего цикла внутренний цикл исполняется 4 раза. Поскольку внешний цикл выполнился 3 раза, внутренний цикл выполнился 4*3=12 раз.

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

8.7. В системе программирования Visual Basic .NЕТ создать проект «Цикл в цикле», подсчитывающий количество повторений тела вложенного цикла.

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

Иногда нужно прервать выполнение цикла до того, как значение счетчика достигнет верхнего предела. Это можно сделать с помоыо оператора Exit For. Данный оператор помещается внутрь оператора IfThen внутри цикла. Условие в операторе IfThen указывает коду, когда нужно прервать выполнение цикла. Давайте напишем код, в котором будет использоваться оператор Exit For.

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

Dim i As Integer = 0

For i = 1 To 5

MessageBox.Show(“i inside=” & i)

If i = 3 Then 

Exit For

End If

Next

MessageBox.Show(“i outside=” & i)

Постройте и запустите проект. Нажмите кнопку с надписью Выйти из цикла несколько раз. Будут появляться окна сообщения со значениями счетчика цикла. Когда это значение станет равным 3, условие в блоке IfThen выполнится и выполнится оператор Exit For. Выполнение цикла завершится без выполнения оставшихся повторов. Обратите внимание, что окна с сообщением «i inside=4» нет. Когда цикл завершится, выполнится код после оператора Next. Появится окно с сообщением «i outside = 3».

Вот еще один пример использования Exit For. Мы изменим программу «Выход из цикла». Добавьте на форму флажок и еще одну кнопку. Измените значение свойства Text кнопки на Проверить. Выполните двойной щелчок по новой кнопке, чтобы отредактировать обработчик ее нажатия. Измените код обработчика:

Dim Index As Integer

For Index = 1 To 5

If Index = 4 Then

CheckBoxl.Checkod = True

End If

If CheekBoxl.Cheeked = True Then

MessageBox.Show (“Exit on: “ & Index)

Exit For 

End If

Next

Постройте и запустите проект. Нажмите кнопку с надписью Проверить. Цикл ForNext будет выполняться, пока значение переменной Index не станет равным 4. Затем свойство Checked флажка CheckBox1, будет установлено в True. Поскольку CheckBox1, будет установлен, будет выведено окно сообщения со значением переменной Index и выполнится оператор Exit For. Выполнение цикла завершится.

Еще раз нажмите кнопку с надписью Проверить, не сбрасывая флажок CheckBoxl. Что произойдет на этот раз? Оператор Exit For будет выполнен при Index = 1.

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

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

8.6. Циклы в C# и J#

Как и во всех современных языках программирования, в C# и J# тоже есть циклы. В C# и J# есть аналоги цикла Visual Basic.NET ForNext, но код выглядит по-другому.

Цикл на языке С#. Вот как выглядит такой код в С#:

for (int Counter = 1; Counter < 4; Counter++)

{

MessageBox.Show(Counter.ToString());

}

Этот код выглядит не так, как оператор ForNext, но делает то же самое. В C# нет оператора Next и ключевое слово for пишется строчными буквами. Код, который должен выполняться в цикле, помещается в фигурные скобки. Код в скобках после for управляет выполнением цикла.

Объявление переменной счетчика цикла и инициализация ее начальным значением:

int Counter =1;

Условное выражение, определяющее, когда завершится цикл:

Counter < 4;

Увеличение значения счетчика на 1:

Counter++

Эго выражение можно записать как:

Counter = Counter + 1

Цикл на языке J#. Вот такой же код на J#. Он выглядит так же, за исключением того, что J# использует функцию System.Convert.ToString для преобразования значения Counter из целого числа в строку для вывода в окне сообщения.

for (int Counter = 1; Counter < 4; Counter++)

{

Message.Show(System.Convert.ToString(Counter));

}

Хотя код выглядит не так, как оператор For   Next в Visual Baltic .NET. он имеет тот же смысл — позволяет многократно исполнять один и тот же код.


 

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

53989. Types of questions 66 KB
  Загальні питання (general questions)Ставиться до всього речення і вимагає відповіді «так» або «ні» Does Peter read books? Спеціальні питання (special questions) Ставиться за допомогою спеціальних питальних слів для з’ясування чогось конкретного.
53990. Revision of the types of question 840 KB
  The Thames is a short river. It’s only 349 km long. The Amazon in Brazil is 6 437 km long! Many people think the Thames is not clean but this is not true. More than 97 types of fish live here, for example salmon and eels. Eels are a traditional food in East London. People make a pie and serve it with mashed potatoes.
53991. Подорож. Traveling 48.5 KB
  Our theme for today is “Traveling” and our aim is to revise our knowledge that we have got studding in this theme. We’ll revise all materials on the topic “Traveling” and we’ll speak, read, write translate and listen to the dialogue on the computer and make up your own dialogues.
53992. Визначні місця Великобританії 48.5 KB
  You are right. I’m sure that you’ve learned a lot about this country at your geography lessons, from TV programmes. At our lesson we’ll try to enlarge your knowledge about this country while doing different activities. But first of all I want you to answer my questions.
53993. British lifestyle 53 KB
  Мета: Учити учнів спілкуватися за темою вживаючи нову лексику. Розвивати та розширювати уявлення учнів про традиції англійців. 190 Для перевірки домашнього завдання учні обмінюються зошитами. Учні в парах читають вірші здогадуються про які свята йдеться та заповнюють пропуски назвами свят.
53994. Environmental problems 46.5 KB
  In my opinion, rubbish is the biggest problem. People put a lot of rubbish into rubbish dumps. This pollutes the ground and the water. My family tries to help the environment. At home we recycle most of our rubbish. We put paper, glass and plastic into special containers outside our house. In my view, this is a great system because it really helps the environment.
53995. The Best Place for Holidays 81.5 KB
  Today at the lesson we’ll speak about the best place for holidays, listen to the dialogue about visiting Malta, revise and identify the past tenses, put the verbs in brackets into the correct tense, read Vicky’s letter about her holidays in Madrid, in groups write the letter to a pen friend according to the plan, get to know if you “can taste the flower seeds”.
53996. Modern Inventions. The Internet 68 KB
  Communication in social networks was chosen as the object of our lesson because communication has always been an important part of young people's lives. Today they can choose between traditional and new ways of communication. Traditionally the young meet after classes with their school friends, make parties and go to the movies or disco clubs to have fun, relax and acquire new friends.
53997. CLOTHES ACCORDING TO THE SEASON 189 KB
  Now children, listen to me and guess: what season it is. 1. It often rains. The leaves are falling. They are red and brown. 2. It is hot and sunny. There are many flowers. They are red, yellow, pink and white. 3. It is warm. There are small green leaves on the trees. The birds are singing.