
Повторение предыдущего материала по теме "Простой цикл"
Пример 1
Рассчитать сумму чисел последовательности: 100 91,5 83 .....6,5
Все элементы последовательности и сумму вывести на рабочий лист.
Option Explicit Sub pp() 'Объявление данных Dim Сумма As Single, i As Integer, k as single
Сумма = 0 i=1 'Номер первой строки для вывода данных
'Начало цикла For k = 100 To 6.5 step -8.5 Сумма = Сумма + k Sheets("Лист1"). Cells (i,1) = k i = i + 1 'Смена номера строки Next k Sheets("Лист1"). Cells (i,1) = Сумма
End Sub
|
|
Результат выполнения:
|
Пример 2
|
|
Определить количество циклов, выполненных в Примере 1
|
Пример 3
|
|
Какое значение примет переменная k после выхода из цикла
6,5 - 8,5 = -2 |
Вложенные циклы
Циклы, в состав которых входят другие циклы, называются вложенными. Число вложений теоретически не ограничено и зависит от возможностей конкретного транслятора.
Принципы организации вложенных циклов:
1. Каждый цикл в отдельности строится по общим правилам программирования циклических процессов (необходимо четко представлять структуру цикла любого типа, уметь выделять в нем основные элементы — настройку, тело и знать принципы его организации).
2. Настройка циклов должна производиться в порядке их вложенности: вначале осуществляется настройка самого внешнего цикла, затем внутреннего по отношению к нему и т.д., причем каждый настраивается отдельными блоками.
3. Внутренний цикл всегда выполняется от начала до конца для каждого повторения внешнего цикла. Это означает, что обновление данных для внешнего цикла следует осуществлять после выхода из внутреннего.
Пример 4
Заполнить таблицу 5х5 числами от 1 до 25
|
|
Sub pr0() Dim a As Byte, k As Byte, i As Byte a = 1 For k = 1 To 5 `смена номера строки For i = 1 To 5 `смена номера столбца Sheets("Лист2").Cells(k, i) = a a = a + 1 'пересчет числа Next i Next k End Sub |
|
|
|
Пример 5
Вычислить значения функции Z при изменении аргументов x и y.
Z = ax2 + by
1 x 2, hx=0,5
1 y 4, hy=1
Вывести на лист а,b,x,y,z,sum
1. Классифицируем данные (исходные а и b).
2. Составляем макет табл.
|
A |
B |
C |
D |
E |
F |
1 |
a |
b |
y |
x |
z |
sum |
2 |
|
|
|
|
|
|
3. Составляем блок-схему и пишем программу
|
|
Sub pr1() Dim z, a, x, b, y, sum,i a = InputBox("a") b = InputBox("b") i = 2 sum=0 Sheets("Лист1").Cells(1, 1) = "a" Sheets("Лист1").Cells(1, 2) = "b" Sheets("Лист1").Cells(1, 4) = "x" Sheets("Лист1").Cells(1, 3) = "y" Sheets("Лист1").Cells(1, 5) = "z" Sheets("Лист1").Cells(1, 6) = "sum" Sheets("Лист1").Cells(2, 1) = a Sheets("Лист1").Cells(2, 2) = b For y = 1 To 4Sheets("Лист1").Cells(i, 3) = y For x = 1 To 2 Step 0.5 z = a * x * x + b * y Sum = Sum + z Sheets("Лист1").Cells(i, 4) = x Sheets("Лист1").Cells(i, 5) = z i = i + 1 Next x Next ySheets("Лист1").Cells(i - 1, 6) = Sum End Sub |
Результат выполнения программы
|
Пример 6 |
|
В какие строки на лист Excel будет выведено значение Y, если вывод осуществлять после завершения внутреннего цикла. Объяснить почему. |
Пример
Рассчитать значения функции
при изменении аргумента
Значения x и y вывести на рабочий лист.
1. Привести уравнение к общему виду:
вариант 1
,
где k – коэффициент,
меняющий свой знак на каждом цикле.
или вариант 2
2. Составить макет таблицы.
3. Определить, что будет во внутреннем цикле, а что во внешнем.
Во внешнем цикле - х, т.к. ряд должен рассчитываться полностью сначала при первом значении х, затем при втором и т.д.
4. Составить программу и блок-схему.
Sub pr9()
Dim n As Integer, x As Integer, i As Integer, y As Single
For x = 1 to 10
y = 0
For n = 1 to 7
y = y + (-1)^(n+1)*n/((2*n-1)*x)
Next n
Sheets ("Лист1").Cells(x,1) = x
Sheets ("Лист1").Cells(x,2) = y
Next x
End Sub
5. Выполнить отладку.
При x = 1
При x = 2
Пример 9
Привести к общему виду следующие уравнения