Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
PAGE 7
Лаб. Раб. № 16
VISUAL BASIC: ПРОГРАММИРОВАНИЕ ЦИКЛОВ
Цель и содержание: приобретение практических навыков работы с программами циклической структуры.
Теоретическое обоснование
Цикл это многократно повторяемая часть алгоритма или программы. Циклическим называется алгоритм (программа) содержащий один или несколько циклов. Изменяющаяся в цикле переменная называется параметром цикла (счетчиком), а повторяющаяся часть телом цикла. Различают циклы с заранее известным числом повторений и циклы, в которых число повторений заранее неизвестно, а определяется в процессе счета или проверок условий. Если в итерационном цикле проверка условия повторения производится перед каждым циклом, то он называется с предусловием; а если после его очередного выполнения с постусловием.
В Visual Basic для организации циклов используются операторы:
Циклы с известным количеством повторений
Общий вид:
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, , " Кол-во положительных чисел="
Методика и порядок выполнения работы
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. Запустите программу и исправьте ошибки. Сохраните проект.
Измените шаг параметра i на 2 следующим образом: For i=N To K Step 2 и запустите программу. Проанализируйте результат, в этой программе будет найдена сумма всех нечетных чисел из диапазона от N до K. Для вычисления произведения указанных чисел измените ее следующим образом: S=1 и S=S*i. Запустите программу на выполнение.
Дано значение K (K>=1), которое вводится с клавиатуры. Вычислить количество чисел, введенных с клавиатуры, сумма которых не превышает величину K.
Такую программу можно реализовать с помощью цикла с предусловием. Для этого создайте экранную форму из пяти объектов (рисунок 2):
Создайте для командной кнопки 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 чисел. Найти произведение и количество положительных среди них чисел. |
2 |
Вводится последовательность из N чисел. Найти, сколько в ней нулей и их порядковые номера. |
3 |
Вводится последовательность из M чисел. Найти наименьшее из всех положительных чисел. |
4 |
Вводится последовательность целых чисел, 0 конец последовательности. Подсчитать, сколько в ней отрицательных, и сколько положительных элементов. |
5 |
Вводится последовательность целых чисел, 0 конец последовательности. Найти сумму и количество положительных чисел. |
6 |
Дана последовательность из М чисел. Подсчитать, сколько в ней отрицательных, и сколько положительных (включая нулевые) элементов. |
7 |
Дана последовательность из М чисел. Вычислить сумму и количество чисел, которые меньше 5. |
8 |
Дана последовательность из М чисел. Вычислить произведение и количество чисел, которые меньше 10. |
9 |
Вводится последовательность ненулевых чисел, 0 конец последовательности. Сколько из этих чисел больше 5, но меньше 10. Найти сумму таких чисел. |
10 |
Дана последовательность из М чисел. Все отрицательные среди них числа возвести в квадрат и найти их сумму. |
11 |
Дана последовательность из М чисел. Найти сумму и произведение всех положительных чисел. |
12 |
Дана последовательность из М чисел. Найти наибольшее среди отрицательных из них. |
13 |
Дана последовательность из М чисел. Найти наименьшее из всех чисел, больших 10, и его порядковый номер. |
14 |
Дана последовательность из М чисел, все положительные среди них числа заменить их корнем и найти их сумму. |
15 |
Дана последовательность чисел, заканчивающаяся 0. Найти сумму чисел меньших 3 и произведение чисел больших 10. |
16 |
Дана последовательность из М чисел. Сколько из этих чисел больше 7, но меньше 20. Найти произведение таких чисел. |
Содержание отчета и его форма
Выполните все описанные пункты задания, письменно оформите отчет, который должен содержать:
тему, цель лабораторной работы;
общий вид операторов циклов;
условие, блок-схему, программный код и результат выполнения задания по своему варианту.
Контрольные вопросы и защита работы
Защита лабораторной работы включает в себя демонстрацию разработанных проектов на Visual Basic, подготовленный отчет и устный ответ на контрольные вопросы:
1. Какая программа называется циклической ?
2. Какие типы циклов используются в Visual Basic?
3. Какой из циклов всегда выполнится хотя бы один раз? А какой из них возможно ни разу?