
- •Введение
- •Бейсик широко используется при обучении школьников и студентов в рамках курса “Информатика”.
- •Основные компоненты вычислительной машины и принципы её функционирования.
- •Bbc ba sic for Windows
- •Переменные.
- •Логические операции
- •Основные операторы ввс Basic for Windows
- •Структура программы на Бейсике.
- •Типовые программные шаблоны
- •Цикл по параметру (for to next) Общая форма
- •Массивы
- •Понятие массивов общая технология составления программ из элементов программирования
Цикл по параметру (for to next) Общая форма
КЛЮЧЕВЫЕ СЛОВА:
FOR |
- |
первоначальное значение параметра цикла |
|
|
|
TO |
- |
конечное значение параметра цикла |
|
|
|
STEP |
- |
шаг цикла (по умолчанию равен 1) |
|
|
|
NEXT |
- |
оператор, задающий выполнение следующего цикла |
|
|
|
Если заранее известно число шагов, организуется цикл по параметру. Этот цикл имеет вид:
FOR N= a TO b STEP с
- - - - - - - - - - - - - -
- - - - - - - - - - - - - -
NEXT N
Где: |
a |
- |
Начальное значение параметра цикла; |
|
b |
- |
Конечное значение параметра цикла; |
|
c |
- |
шаг цикла (по умолчанию равен 1). |
Примечание:переменныеa,b,cмогут быть как целого типа, так и действительного.
Пример
10 |
DATA 1,2,3.... |
|
|
|
|
|
|
20 |
S=0 |
|
обнуление сумматора |
|
|
|
|
30 |
FOR K=1 TO 5 |
|
задание параметра цикла от 1до5 |
|
|
|
|
40 |
READ A |
|
Тело |
|
|
|
|
50 |
S=S+A |
|
Цикла |
|
|
|
|
60 |
NEXT K |
|
повторение цикла с увеличением параметра на 1, после пятого повторения цикл заканчивает свою работу и управление передается строке70 |
|
|
|
|
70 |
PRINT S |
|
|
Пример
-
m
Вычислить сумму
S =
1
, где mзадана
n3+1
n=1
Для небольшого количества значений n (например 3) можно применить режим непосредственного счета. В этом случае для каждого очередного значения n потребуется заново вводить формулу. Можно также составить ряд отдельных программ для каждого очередного значения n.
В этих случаях алгоритм выполнения задачи можно изобразить следующей блок-схемой:
1 |
S=0 |
|
Начальное состояние суммы | ||||||||
|
|
|
|
|
| ||||||
2 |
|
|
Вычисление суммы для n=1 (S=0,5) | ||||||||
|
|
|
|
|
| ||||||
3 |
|
|
Вычисление суммы для n=2 (S=0,6111) | ||||||||
|
|
|
|
|
| ||||||
4 |
|
|
Вычисление суммы для n=3 (S=0,6468) | ||||||||
|
|
|
|
|
| ||||||
5 |
S |
|
Окончательное значение суммы |
При большом количестве заданных значений nэтот процесс представляется весьма трудоемким, займет много времени, и такой алгоритм трудно реализуем.
Во избежание этого неудобства применяется оператор цикла, позволяющий с помощью одной программы производить большое количество вычислений.
В этом случае алгоритм выполнения задачи выглядит следующим образом:
|
S=0 |
|
Начальное состояние суммы | |||||||||
|
|
|
|
|
| |||||||
|
n = 1
|
|
Задание переменной n начального значения | |||||||||
|
|
|
|
|
| |||||||
1 n3+
1
|
S=S+
|
|
Вычисление суммы для n=1 (S=0,5) | |||||||||
|
|
|
|
|
| |||||||
|
n = n + 1 |
|
Прежнее значение n увеличивается на 1
| |||||||||
|
|
|
|
|
| |||||||
Нет |
n < m
|
|
Проверяется условие, при котором значение nдостигло конечного своего значенияm. | |||||||||
|
|
|
Если НЕТ, цикл повторяется. | |||||||||
Да |
|
|
Если ДА, то записывается окончательное значение суммы и работа программы прекращается | |||||||||
|
S |
|
Окончательное значение суммы |
Бейсик- программа
-
Программа
Пояснения работы программы
10
S=0
Обнуление сумматора
20
M%=3
Символ % означает целое число
30
FOR N%=1 TO M%
Переменной N присваиваются последовательные значения параметра от 1 до 3
40
S=S+1/(N%^3+1)
Тело цикла (сумматор ряда )
50
NEXT N%
Cчетчик цикла.
Когда N% станет равной M%, цикл заканчивается и управление передается строке 60
60
PRINT “S=“;S
Печать суммы M% членов ряда
Запустите программу.
Внесите изменения в программу для M%=10, 25, 100.
Для этого достаточно изменить строку 20: 20 M%=25
Обратите внимание на то, что при M%=25 и M%=100 результаты почти не отличаются.
Такие ряды в математике называются сходящимися.
Циклы F0R-TO-NEXT могут быть вложены один в другой с любой глубиной вложения, например:
|
|
|
|
|
10 |
FOR F=1 TO 4 |
|
|
|
|
|
|
|
|
20 |
FOR G=1 TO 5 |
|
Внутренний цикл |
|
30 |
PRINT F,G, F*G |
|
Внешний цикл | |
40 |
NEXT G |
|
| |
|
|
|
|
|
50 |
NEXT F |
|
|
|
|
|
|
|
|
Выполнив первый шаг внешнего цикла для переменной F=1, программа начинает выполнять полностью внутренний цикл для переменнойG, принимающей значения от 1 до 5. Затем внутренний цикл полностью повторяется для второго шага внешнего цикла (F=2) и т.д.
На экране программа расположит числа следующим образом:
-
F
G
F*G
1
1
1
1
2
2
1
3
3
Для F=1
1
4
4
1
5
5
2
1
2
2
2
4
2
3
6
Для F=2
2
4
8
2
5
10
3
1
3
3
2
6
3
3
9
Для F=3
3
4
12
3
5
15
4
1
4
4
2
8
4
3
12
Для F=4
4
4
16
4
5
20
Можно вместо пяти значений в каждом шаге внешнего цикла задать вывод на экран лишь одного, а также задать вывод на экран букв F, G, F*G. Для этого потребуется вывод на печать переменнойF перенести во внешний цикл, добавив строку15, и добавить строку5для вывода комментариев:
5 |
PRINT “F”, “G”, “F*G” |
|
|
|
|
|
|
|
|
10 |
FOR F=1 TO 4 |
|
|
|
15 |
PRINT F |
|
|
|
|
|
|
|
|
20 |
FOR G=1 TO 5 |
|
|
|
30 |
PRINT ,G, F*G |
|
Внутренний цикл |
Внешний цикл |
40 |
NEXT G |
|
|
|
|
|
|
|
|
50 |
NEXT F |
|
|
|
|
|
|
|
|
В этом случае на экране будет высвечиваться следующий результат:
-
F
G
F*G
1
1
1
2
2
3
3
4
4
5
5
2
1
2
2
4
3
6
4
8
5
10
3
1
3
2
6
3
9
4
12
5
15
4
1
4
2
8
3
12
4
16
5
20