Методика и порядок выполнения работы




VISUAL BASIC: ПРОГРАММИРОВАНИЕ ЦИКЛОВ

Цель и содержание: приобретение практических навыков работы с программами циклической структуры.

Теоретическое обоснование

Цикл – это многократно повторяемая часть алгоритма или программы. Циклическим называется алгоритм (программа) содержащий один или несколько циклов. Изменяющаяся в цикле переменная называется параметром цикла (счетчиком), а повторяющаяся часть – телом цикла. Различают циклы с заранее известным числом повторений и циклы, в которых число повторений заранее неизвестно, а определяется в процессе счета или проверок условий. Если в итерационном цикле проверка условия повторения производится перед каждым циклом, то он называется с предусловием; а если после его очередного выполнения – с постусловием.

В Visual Basic для организации циклов используются операторы:

· For... Nextдля цикла с счетчиком;

· Do While [или Until] Условие... Loopдля цикла с предусловием;

· Do... Loop While [или Until] Условие для цикла с постусловием.

Циклы с известным количеством повторений

Общий вид:

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

Тело цикла

Next [ Cчетчик ]

Если начальное и конечное значения счетчика не противоречивы, то тело цикла (набор операторов цикла) повторяются для каждого указанного Счетчиком значения с заданным Шагом. Если шаг не указан, то считается равным 1. После цикла выполняется следующий оператор.

С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т. п.

Пример 1. Найти количество отрицательных чисел среди N введенных.

… ‘ объявление переменных и ввод значения N

kol=0 ‘первоначально количество чисел равно 0

For i = 1 To n ‘начало цикла

a = Val (InputBox("Введите число: ", " Ввoд исходных чисел"))

if a<0 then kol=kol + 1 ‘прибавление единицы, если число отрицательно

Next i ‘возвращение на начало цикла с увеличением счетчика на шаг

MsgBox kol,, "Количество всех отрицательных чисел="

Пример 2. Найти наибольшее среди N введенных чисел.

… ‘ объявление переменных и ввод значения N

max = -32000 ‘первоначальное значение max

For i = 1 To N ‘начало цикла

b = Val (InputBox("Введите число:", " Ввoд исходных чисел"))

If b > max then max = b ‘сравнение числа с максимальным

Next i ‘возвращение на начало цикла с увеличением счетчика на шаг

Print "max="; max

Пример 3. Найти произведение отрицательных чисел среди N введенных.

… ‘ объявление переменных и ввод значения N

pr=1 ‘первоначально значение произведения равно 1

For i = 1 To n

a = Val (InputBox("Введите число: ", " Ввoд исходных чисел"))

if a<0 then pr=pr* а ‘если число отрицательное, то умножается на pr

Next i

MsgBox pr,, "Произведение всех отрицательных чисел="

 

Циклы с неизвестным количеством повторений

Для организации такого цикла необходимо:

- задать перед циклом начальное значение параметра и изменять его перед каждым новым повторением цикла;

- проверять условие повторения (логическое выражение) и окончания цикла. Если условия не будет, то цикл будет бесконечен.

Существует 4 вида циклов Do... Loop. Ихобщий вид:

1) Do While условие 2) Do

тело цикла тело цикла

Loop Loop While условие

3) Do Until условие 4) Do

тело цикла тело цикла

Loop Loop Until условие

Если используется While, то тело цикла повторяется, только если значение условия равно True (истина), в противном случае цикл завершается. При использовании Until, тело цикла повторяется, только если значение условия равно False (ложь), в противном случае цикл завершается.

Конструкции 1 и 3 используются для цикла с предусловием, 2 и 4 – для постусловия. Их отличие: в циклах с предусловием тело цикла может не выполниться ни разу, если при первой проверке условие оказывается ложным.В циклах с постусловием – тело цикла выполняется хотя бы один раз, после чего осуществляется проверка заданного условия.

Пример 4. Дана последовательность чисел, заканчивающаяся 0. Найти количество положительных среди введенных чисел.

… ‘ объявление переменных

kol = 0

Do

b = Val (InputBox("Введите числа, 0-конец ввода ", " Ввoд данных"))

If b > 0 Then kol = kol + 1

Loop While b <> 0

MsgBox kol,, " Кол-во положительных чисел="

Методика и порядок выполнения работы

1. Изучите теоретическое обоснование.

2. Выполните контрольный пример 1: вывести числа натурального ряда от N до K и найти их сумму. Значения N и K – целые числа, введенные с клавиатуры. Для этого:

· запустите среду Visual Basic;

· с помощью стандартного набора инструментов Toolbox создайте экранную форму (рисунок 1). В нижней части которой расположите две метки («Начальное значение», «Конечное значение»); два текстовых поля Нач и Kон; командную кнопку с надписью Пуск и именем Command1, нажатием которой запускается программа.

· Создайте программный код:

Private Sub Command1_Click ()

N = Val (Нач.Text) ‘Преобразование введенных значений в числа

K = Val (Кон.Text)

Print "Числа из указанного диапазона"; N, K

s = 0 ‘присваивается начальное значение переменной S (сумма чисел)

For i = N To K ‘ начало цикла

Print i;

s = s + i ‘ повторяющиеся в цикле операторы

Next i

Print " Сумма="; s ‘вывод суммы ряда на форму

End Sub

Проверяется условие i<=n, если оно истинно, то вычисляется очередное значение S. Запустите программу и исправьте ошибки. Сохраните проект.

Рисунок 1 – Вид формы и программного кода для Примера 1  

 

Измените шаг параметра i на 2 следующим образом: For i=N To K Step 2 и запустите программу. Проанализируйте результат, в этой программе будет найдена сумма всех нечетных чисел из диапазона от N до K. Для вычисления произведения указанных чисел измените ее следующим образом: S=1 и S=S*i. Запустите программу на выполнение.

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

Дано значение K (K>=1), которое вводится с клавиатуры. Вычислить количество чисел, введенных с клавиатуры, сумма которых не превышает величину K.

Такую программу можно реализовать с помощью цикла с предусловием. Для этого создайте экранную форму из пяти объектов (рисунок 2):

· 4 метки с именами: «Введите конечное значение суммы», «Введенные числа», «Сумма введенных чисел» и «Количество введенных чисел»;

· 4 текстовых поля: Kon (для ввода величины К); А1 (для вывода всех введенных чисел) и S1 (для вывода полученной суммы); Num (для количества чисел). Для каждого из них в свойстве Text поставьте пробел;

· командную кнопку с надписью «Начало ввода» и именем Command1.

Создайте для командной кнопки Command1 программный код:

Private Sub Command1_Click()

Dim A, S, K As Single, N As Integer ‘объявление используемых переменных

A1.Text = ""

N = 0: S = 0

K = Val (Kon.Text)

Do While S < K ‘начало цикла с предусловием

A = Val (InputBox ("Введите очередное число", "Ввод "))

N = N + 1 ‘подсчет количества введенных чисел

S = S + A ‘подсчет суммы чисел

A1.Text =A1.Text + Str(A)+ "; " ‘ заполнение окна A1 введенным числами

S1.Text = Str(S) ‘заполнение S1 промежуточными суммами

Num.Text = Str (N)

Loop ‘ возвращение на начало цикла и проверка условия

End Sub

Запустите программу, введите конечное значение К, нажмите кнопку «Начало ввода», в появившемся окне ввода вводите числа и нажимайте ОК. В окне «Введенные числа» на форме он будут отражаться, а в окнах «Сумма введенных чисел» и «Количество введенных чисел» –– суммироваться и считаться по количеству до тех пор пока их сумма не превосходит К.

Запустите программу на выполнение. Сохраните проект.

В программе используется цикл, реализованный оператором цикла Do While...Loop, который позволяет многократно вводить исходные числа в окно ввода, пока сумма чисел S не превысит K. Однако этот цикл не выполнится ни разу, если ввести К <1. Убедитесь в этом.

1. В соответствии со своим вариантом разработайте блок-схемы и проекты для своего задания.

Таблица 1 – Варианты задания

№ варианта Условия задания
  Вводится последовательность из N чисел. Найти произведение и количество положительных среди них чисел.
  Вводится последовательность из N чисел. Найти, сколько в ней нулей и их порядковые номера.
  Вводится последовательность из M чисел. Найти наименьшее из всех положительных чисел.
  Вводится последовательность целых чисел, 0 – конец последовательности. Подсчитать, сколько в ней отрицательных, и сколько положительных элементов.
  Вводится последовательность целых чисел, 0 – конец последовательности. Найти сумму и количество положительных чисел.
  Дана последовательность из М чисел. Подсчитать, сколько в ней отрицательных, и сколько положительных (включая нулевые) элементов.
  Дана последовательность из М чисел. Вычислить сумму и количество чисел, которые меньше 5.
  Дана последовательность из М чисел. Вычислить произведение и количество чисел, которые меньше 10.
  Вводится последовательность ненулевых чисел, 0 – конец последовательности. Сколько из этих чисел больше 5, но меньше 10. Найти сумму таких чисел.
  Дана последовательность из М чисел. Все отрицательные среди них числа возвести в квадрат и найти их сумму.
  Дана последовательность из М чисел. Найти сумму и произведение всех положительных чисел.
  Дана последовательность из М чисел. Найти наибольшее среди отрицательных из них.
  Дана последовательность из М чисел. Найти наименьшее из всех чисел, больших 10, и его порядковый номер.
  Дана последовательность из М чисел, все положительные среди них числа заменить их корнем и найти их сумму.
  Дана последовательность чисел, заканчивающаяся 0. Найти сумму чисел меньших 3 и произведение чисел больших 10.
  Дана последовательность из М чисел. Сколько из этих чисел больше 7, но меньше 20. Найти произведение таких чисел.

 

Содержание отчета и его форма

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

- тему, цель лабораторной работы;

- общий вид операторов циклов;

- условие, блок-схему, программный код и результат выполнения задания по своему варианту.

Контрольные вопросы и защита работы

Защита лабораторной работы включает в себя демонстрацию разработанных проектов на Visual Basic, подготовленный отчет и устный ответ на контрольные вопросы:

1. Какая программа называется циклической?

2. Какие типы циклов используются в Visual Basic?

3. Какой из циклов всегда выполнится хотя бы один раз? А какой из них – возможно ни разу?

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: