Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДИЧКА ПО ИНФОРМАТИКИ.doc
Скачиваний:
30
Добавлен:
03.03.2015
Размер:
329.22 Кб
Скачать

Цикл по параметру (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