Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Практическая работа №7. Циклы




Цель занятия: Научится использовать циклы в программировании.

 

Для многократного выполнения одного или нескольких операторов предназначены циклы. Visual Basic предлагает две конструкции: цикл For…Next даёт возможность устанавливать число проходов цикла, и цикл Do…Loop завершается при выполнении заданного условия.

 

7.1. Цикл - For…Next

Цикл For…Next является самой старой и простой конструкцией:

 

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

Операторы

Next [ Счётчик ]

 

В начале выполнения цикла значение Счётчик устанавливается в Начальное_значение. При каждом проходе переменная Счётчик увеличивается на 1 или на величину Шаг. Если она достигает или становиться больше (меньше, при отрицательном шаге), чем Конечное_значение, то цикл завершается, и выполняются следующие операторы. Разность между начальным и конечным значением, делённая на величину шага, составляет число проходов. Для безусловного выхода из цикла используется оператор Exit For.

 

Задание 7.1. Разные конструкции циклов For…Next

1) Запустите среду VB;

- поместите на форму кнопку и откройте для неё окно кода;

- поместите туда следующий программный текст:

 

For I = 1 To 10

Print I * 100

Next I

- запустите программу, проверьте её работу. Остановите.

b) Замените программный текст на следующй:

For L = 100 To 5 Step -0.5

X = Y * L

If X = 100 Then Exit For

Next L

- не забудьте объявить переменные и, перед циклом, присвойте переменной Y какое-либо значение;

- запустите программу, проверьте её работу. Остановите;

 

c) Замените программный текст на следующий:

For I = 1 To 5

For J = 10 To 20

Print I + J

Next J

Next I ‘ Или (Next J, I)

- запустите программу, проверьте её работу и остановите.

Пояснения.

В этом задании представлены разные конструкции циклов For…Next:

- пример a: это самая простая конструкция данного цикла. Данный цикл выполнится десять раз;

- пример b: в данной конструкции счётчик при каждом проходе уменьшается на шаг – 0,5 (отрицательный шаг), причём, в теле цикла присутствует условный оператор If…Then, в котором, при X равном 100, происходит выход из цикла (безусловный);

- пример c: здесь используется вложенный цикл, т.е. счётчик I увеличится на шаг (в данном случае на единицу), только после того, как счётчик J дойдёт до своего конечного значения (до двадцати). В данном примере показано также два варианта “концовки” обеих циклов (второй записан в комментарии).

 

Задание 7.2. Преобразование числа

Записать программу, которая у вводимого с клавиатуры трёхзначного числа изменяет порядок цифр на противоположный (например, если вводится число 129, то выводится число 921);

- откройте новый проект;

 
 

 

 


 

Рис.7.1. Вид окна формы

- окно формы должно иметь следующий вид - рис.7.1. (всё это вы уже умеете):

- откройте окно кода для кнопки, и запишите туда следующий программный код:

Private Sub Command1_Click()

Dim x As Integer

Dim i As Integer

Dim a As Integer

Dim y As Integer

' изменение порядка цифр числа на обратный

x = Text1.Text 'начальное значение

For i = 1 To 3

a = x Mod 10 'выделение очередной цифры

y = y + a * 10 ^ (3 - i) 'формирование результата

x = x \ 10 'удаление младшего разряда

Next i

Label3.Caption = "y = "

Label4.Caption = y

End Sub

- запустите программу, проверьте её работу и остановите;

- в окне кода измените программу так, чтобы пользователь вводил число не в текстовое поле, а в окно ввода InputBox;

- проверьте работу программы и сохранитесь под именем “ Cikl_1”.

Задание 7.3. Самостоятельная работа

a) Написать такую программу, чтобы при нажатии кнопки форма

превращалась в звёздное небо, т.е. вывести случайным образом разбросанные по чёрному полю белые точки (см. приложение 3). Сохраните приложение.

b) Задана программа, определить её назначение:

Private Sub Command1_Click ()

Dim i As Integer

x = Text1.Text

For i = 1 To x

If x * i = 32 Then Print x

Next i

End Sub

c) Пользователем вводится шестиразрядное натуральное число X. Программа должна выводить сумму S и произведение P цифр этого числа.

 

7.2. Цикл - Do…Loop

Если количество проходов должно зависеть от условия, используют цикл Do…Loop. В зависимости от позиции условия различают два варианта цикла Do…Loop:

- Цикл, управляемый в начале:

 

Do [{ While | Until } Условие ]

[ Операторы ]

[ Exit Do ]

[ Операторы ]

Loop

 

- Цикл, управляемый в конце:

Do

[ Операторы ]

[ Exit Do ]

[ Операторы ]

Loop [{ While | Until } Условие ]

 

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

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

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

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

 

Задание 7.4. Исследовательское. Пример использования цикла Do…Loop

- Откройте новый проект (File\New Project), старый не сохраняйте;

- поместите на форму кнопку и откройте для неё окно кода;

- поместите туда следующий программный текст:

 

Do Until A > 0

A = A – 2

Loop

- запустите приложение, проверьте работу программы и остановите её;

- теперь поместите условие (Until A > 0) в конец (после ключевого слова Loop);

- запустите приложение, проверьте работу программы и остановите её;

- теперь замените ключевое слово Until на ключевое слово While;

- запустите приложение, проверьте работу программы и остановите её;

- теперь поместите условие (While A > 0) в конец (после ключевого слова Loop);

- запустите приложение, проверьте работу программы и остановите её.

Задание 7.5. Самостоятельная работа

a) Написать программу определения количества суммы и произведения цифр у введённого с клавиатуры натурального числа.

 

Пояснение.

Задача похожа на задачу, рассмотренную в задании 7.2.(или 7.3(b)). Отличие состоит в том, что число разрядов вводимого числа не ограничивается. Поэтому заранее не известно требуемое для получения результата число повторений.

 

b) Подрабатывая вечером курьером, студент решил накопить сумму в S рублей для покупки компьютера. В первый месяц он отложил P рублей. Затем его вклад возрастал на 5% больше предыдущего вклада. Через какое число месяцев студент сможет приобрести компьютер? Написать программу, реализующую данную задачу. Величины P и S задавать с клавиатуры. Форма может выглядеть так, как показано на рис. 7.2.:

 

Рис.7.2. Вид окна формы

c) Требуется нарисовать концентрические (с одним и тем же центром) окружности уменьшающегося радиуса (см. приложение 3). Радиус каждой следующей окружности равен “9/10” радиуса предыдущей. Рисование прекращается, когда радиус становится равным минимальному значению Rmin = 1.

 

ВОПРОСЫ

 

1) Для чего предназначены циклы?

2) Какие конструкции циклов предлагает VB?

3) Как работает цикл For…Next?

4) Для чего предназначен оператор Exit For?

5) Как вы думаете, можно ли решить задачу о концентрических окружностях с помощью цикла со счётчиком?

6) Можно ли внутри цикла использовать условный оператор? А в условном операторе цикл?

7) Как Вы поняли, что такое вложенный цикл?

8) Для чего предназначен оператор Mod?

9) Что Вы знаете о цикле Do…Loop?

10) Какие Вы использовали операторы в задании 7.5.(b)?

11) Какой цикл Вы считаете более универсальным и почему?


 

ПРИЛОЖЕНИЕ 3

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...