
!VB CIKL.PPT
- Количество слайдов: 41
14. 02. 2018
Тема: Программирование циклических вычислительных процессов. 14. 02. 2018
Вопросы: o 1. Два типа циклических процессов o 2. Операторы организации циклов o 3. Примеры программ вычисления суммы n-слагаемых, произведения nсомножителей. o 4. Вложенные циклы 14. 02. 2018
o Цикл - многократно повторяющаяся последовательность действий в которой можно выделить параметр цикла и тело цикла. o Параметр цикла - величина с изменением значения которой связано многократное повторение цикла. o Тело цикла - та последовательность действий, которая повторяется многократно. 14. 02. 2018
o Подготовка цикла - определение начального и конечного значения параметра цикла и его шага. 14. 02. 2018
Существует два основных типа циклического процесса: 14. 02. 2018
2. Операторы организации циклов В VB существует три вида циклов: o FOR…NEXT o WHILE…WEND o DO…LOOP 14. 02. 2018
FOR…NEXT – управляющий оператор, . повторяющий блок операторов указанное число раз o Формат оператора FOR P=N TO K STEP h - заголовок цикла (для) (до) (шаг) Тело цикла NEXT (следующий) o Р – параметр цикла, определяющий количество повторений цикла o N – начальное значение параметра цикла o K – конечное значение o h – шаг изменения (если шаг равен 1 его не указывают) 14. 02. 2018
Составить программу на языке Visual Basic вычисления функции o Option Explicit o Dim x, Y As Double o Private Sub cmd 1_Click() o For x = 0 To 10 Step 1 o Y = Sqr(2 * x) + 5 o Print x, Y o Next x o End Sub 14. 02. 2018
Величины N, R, h могут быть: G 1. const FOR X=0 TO 5 STEP 2. 5 G 2. переменными FOR X=A TO B STEP C G 3. математическими выражениями FOR X=a+5 TO a^2 STEP a/8 14. 02. 2018
o Значение шага h – может быть отрицательным, если N>K (начальное значение параметра цикла больше конечного) FOR N=10 TO 10 STEP – 2 14. 02. 2018
o Если шаг h=0, то цикл продолжается неопределенное время. o Если начало и конец имеют одинаковое значение (т. е. N=K), цикл выполняется один раз, вне зависимости от шага. 14. 02. 2018
o Параметр цикла может не участвовать в теле цикла, а выступать в качестве счетчика повторений. Пример: Option Explicit Dim X As Double Private Sub cmd. Calc_Click() For X = 1 To 20 Print «Ура!» Next End Sub 14. 02. 2018
o Если необходимо выйти из цикла до его завершения можно использовать оператор EXIT FOR. Пример: Option Explicit Dim N, X Private Sub cmd. Calc_Click() N = Input. Box(“Введите N") For X = 1 To N Print X ^ 2 If X > 9 Then Exit For Next End Sub 14. 02. 2018
Подсчитаем сумму четных чисел в промежутке от 1 до 50 o S = 0 ‘ начальное значение cуммы o FOR i = 2 TO 50 STEP 2 o S = S + i o NEXT o PRINT “Сумма четных чисел S =”; S 14. 02. 2018
Вычисление суммы n – слагаемых o Составить программу вычисления среднего арифметического для любого количества чисел. 14. 02. 2018
Исходные данные: ряд чисел – Х 1, Х 2, Х 3, …Хn N – количество чисел i – порядковый номер числа S – сумма чисел SA – среднее арифметическое 14. 02. 2018
Алгоритм накопления суммы o – формула накопления суммы o S 0 = 0 o S 1 = S 0 + X 1 o S 2 = S 1 + X 2 o Sn = Sn-1 + Xn 14. 02. 2018
Программа Option Explicit Dim n, S, X, SA, I Private Sub cmd. Calc_Click() n = Input. Box("Введите n") или (“Сколько чисел будем складывать? ”) S = 0 For I = 1 To n X = Input. Box ("Введите Х") S = S + X Next SA = S / n Print "Сумма"; S Print "Среднее арифметическое"; SA End Sub 14. 02. 2018
Вычисление произведения n – сомножителей o Вычислить: 14. 02. 2018
o Отличие от алгоритма накопления суммы: начальное значение произведения Р принимают равным 1 (Р=1). o Пример: Вычислить факториал n! INPUT N P=1 FOR I=1 TO N P=P*I NEXT ? N; ”!=”; P 14. 02. 2018
WHILE…WEND – Управляющий оператор, выполняющий блок операторов до тех пор, пока указанное условие истинно. Формат оператора WHILE условие (пока) операторы WEND (конец цикла) 14. 02. 2018
o При использовании цикла WHILE…WEND условие может быть только в начале цикла. Альтернативный выход из цикла невозможен. Option Explicit Dim n Private Sub cmd. Calc_Click() n = Input. Box(Введите n") While n <= 10 Print n n = n + 1 Wend End Sub 14. 02. 2018
DO…LOOP – управляющий оператор, который повторяет блок операторов, пока условие ИСТИННО, или до тех пор, когда оно станет ЛОЖНО. 14. 02. 2018
Он имеет несколько форм записи – 14. 02. 2018
Пример: DO n= Input. Box (“Введите число”) LOOP WHILE N<=10 14. 02. 2018
Пример: Z= x^2 -5<=x<=5 шаг 0, 5 For x= - 5 to 5 step 0. 5 Z=x^2 ? x , Z Next 14. 02. 2018
Option Explicit Dim X, Z Private Sub cmd. Calc_Click() X = Input. Box(“Введите число") Do While X >= -5 And X <= 5 Z = X ^ 2: Print Z X = X + 0. 5 Loop End Sub 14. 02. 2018
Option Explicit Dim X, Z Private Sub cmd. Calc_Click() X=Input. Box (“Введите число”) DO Z=X^2 ? X , Z X=X+0. 5 LOOP WHILE X<=5 End Sub 14. 02. 2018
Option Explicit Dim X, Z Private Sub cmd. Calc_Click() X= - 5 DO UNTIL X>5 X=X^2 ? X , Z X=X+0. 5 LOOP End Sub 14. 02. 2018
Option Explicit Dim X, Z Private Sub cmd. Calc_Click() X=Input. Box (“Введите число”) DO Z=X^2 ? X , Z LOOP UNTIL X>5 End Sub 14. 02. 2018
Физическая задача o Если камень бросить горизонтально со 100 - метровой башни со скоростью v = 20 м/с, то расстояние от башни до него по горизонтали s будет выражаться формулой s = vt, где t – время полета камня в секундах. Высота над землей h будет выражаться формулой h = 100 – 9. 81 t 2/2. Вычислять и печатать t, s и h для t = 0, 0. 2, 0. 4, 0. 6 и т. д. до тех пор, пока камень не упадет на землю. 14. 02. 2018
Программа: o Private Sub Form_Load() o v = 20: t = 0: h = 100: s = 0 o Do o s = v * t o h = 100 - 9. 81 * t ^ 2 / 2 o Debug. Print Format(t, "0. 0"), s, Format(h, "0. 000") o t = t + 0. 2 o Loop Until h < 0 o End Sub 14. 02. 2018
Вложенные циклы o Допускается вкладывать циклы FOR…NEXT, т. е. помещать цикл FOR…NEXT внутри другого цикла 14. 02. 2018
Правила организации вложенных циклов: G 1. Счетчикам вложенных циклов необходимо давать разные имена (Обычно при использовании циклов FOR…NEXT первому счетчику цикла дается имя i, вложенному в него j, затем k, l и далее по алфавиту). 14. 02. 2018
G 2. Оператор NEXT для внутреннего цикла должен предшествовать оператору NEXT для внешнего цикла. G 3. Оператор NEXT вида NEXT k, j, i – эквивалентен операторам NEXT k: NEXT j: NEXT i 14. 02. 2018
o. Не допускается “пересечения” вложенных циклов: FOR I=1 TO 10 FOR J=1 TO 10 FOR K=1 TO 10 … NEXT K NEXT J NEXT I 14. 02. 2018
o Циклы FOR…NEXT, WILE … WEND могут вкладываться друг в друга любое число раз, но каждому оператору WHILE должен соответствовать свой WEND, каждому FOR свой NEXT. 14. 02. 2018
Пример: 1) Z=X 2+Y 2, если -5 <= X<= 5 шаг Х=0, 2 -10<= Y <=10 шаг У=0, 5 FOR X=-5 TO 5 STEP. 2 ? ”X=”; X FOR Y=-10 TO 10 STEP. 5 Z=X^2+Y^2 ? “Y=”; Y, “Z=”; Z NEXT Y, X 14. 02. 2018
2) В СМУ работает N бригад маляров, в каждой из которых по К рабочих. Определить средний стаж работы каждой бригады (SK-стаж работы каждого маляра) 14. 02. 2018
N=Input. Box (“Количество бригад”) S=0 FOR i=1 TO N K= Input. Box(“Введите количество рабочих в бригаде”) FOR J=1 TO K SK = Input. Box(“Стаж работы рабочего”) S=S+SK NEXT ? “Средний стаж работы в”& i & “-той бригаде”; S/K NEXT 14. 02. 2018