Пример решения задач IIA и IIБ

 

Задача IIA

Вычислить значение функции , где .

REM алг. разветвляющейся стр. II А

DIM A, M, N, R, X, C

INPUT “ A, M, N”; A, M, N

X = (A+M) / N

C = ABS( (X +A) ^ 2 / 2 – X)

IF C < > 0 THEN

R = LOG( C ) / LOG( 5 )

PRINT “R=” ; R

ELSE

PRINT “решения нет”

END IF

END

 

 

 
 


Задача IIБВычислить значение функции

при -2 < x ≤ 5

y = x > 5

0x ≤ -2

 
 


REM алг. разветвляющейся стр. II

DIM A, X, Y

INPUT “ A, X,”; A, X

IF X >= -2 AND X < 5 THEN

Y = TAN ( A * X)

ELSE

IF X > 5 THEN

Y = SIN(2*X) ^ 2

ELSE

Y = 0

END IF

END IF

PRINT “Y =” ; Y

END

 

Оператор выбора SELECT CASE

 

Оператор SELECT CASE предназначен для выполнения одного из альтернативных действий, перечисленных в нем. Выбор определяется значением управляющей переменной.

Формат оператора

SELECT CASE переменная

CASE сравнение 1

[операторы 1]

[CASE сравнение 2

[операторы 2]]

. . .

[CASE ELSE

[операторы]]

END SELECT

CASE– сравнение в простейшем случае состоит только из одного выражения (например, из чисел или переменных). Однако можно включать списки выражений (выражение 1, выражение 2...) или целые области (выражение 1 TO выражение 2)

 

Если Сравнение 1 – ''истина'', то выполняются операторы 1, после чего, операторы, следующие END SELECT.

Если Сравнение 1 – ''ложь'', проверяется условие следующей ветви CASE.

Если ни одно из условий не выполняется, то выполняются операторы ветви CASE ELSE.

Значение переменной можно оценивать с помощью операторов сравнения, как в случае с условиями. Для этого после CASE используется ключевое слово IS, за которым следуют операции отношения или выражения.

 

Фрагмент программы Исходные данные Результат выполнения программы
CONST Z = 10 Dim C INPUT “C”; C’ SELECT CASE С CASE 1,2 PRINT ’’знач. С = 1 или 2’’ CASE 3 ТО 10 PRINT ’’знач. С в интервале от 3 до 10’’ CASE IS = 11 PRINT ’’значение С = 11’’ CASE IS < Z + 10 PRINT ’’значение С > 11 и < 20’’ CASE ELSE PRINT ’’инф. отсутствует’’ END SELECT при С = 1 значение С = 1 или 2
при С = 5 знач. С в интервале от 3 до 10  
при С = 11   значение С = 11
при С = 15 значение С > 11 и < 20
при С >20 инф. отсутствует

Алгоритмы циклической структуры

 

Цикл – последовательность операторов, выполняемых многократно.

Цикл ''ПОКА'' Цикл ''ДО'' Цикл ''СЧЕТЧИК''

           
 
Начальные присваивания
   
Начальные присваивания
   
Начальные присваивания
 
 

 


 

           
   
   
 
 


-

 
 
Тело цикла

 


Тело цикла
+

Тело цикла

+

-

 

Цикл также можно сформировать с помощью операторов IF THENи GOTO.

Операторы цикла WHILE – WEND (цикл ‘’ПОКА’’)

 

Циклические действия выполняются, пока выполняется определенное условие.

Формат оператора

WHILE условие

Оператор 1

. . .

Оператор n

WEND

 

Пока выполняется условие, последовательно выполняются операторы 1 ÷ n.

WEND –закрывает цикл.

 

Если условие не выполняется с самого начала, то управление передается оператору, следующему заWEND,т.е. циклические действия не выполняются ни разу.

Необходимо следить, чтобы действия внутри цикла влияли на WHILE – условие.

К моменту первой проверки условия переменные, входящие в оператор, должны быть установлены соответствующим образом

 

Фрагмент программы Результат выполнения программы
Z= - 5 WHILE Z <= 0 T = ABS(Z) Z = Z +1 PRINT ’’T = ’’; T; ''Z=”;Z WEND T = 5 Z = - 4 T = 4 Z = - 3 T = 3 Z = - 2 T = 2 Z = -1 T = 1 Z = 0 T = 0 Z = 1

Операторы цикла DO – LOOP

Циклические действия выполняются дотех пор, пока выполняется определенное условие.

Формат оператора

1. Цикл ‘’ДО’’( выполняется не менее одного раза)

DO

[оператор 1]

... [EXIT DO]

[оператор n]

LOOP условие

2. Цикл ‘’ПОКА’’ (может не выполняться ни разу)

DO условие

[оператор 1]

... [EXIT DO]

[оператор n]

LOOP

 

Способы проверки условия:

WHILE – цикл выполняется, пока соблюдается условие (л.в.истина)

UNTIL – цикл осуществляется, только если не выполняется условие (л.в. – ложь)

EXIT DO – преждевременно прерывает выполнение цикла. Работа продолжается с оператора, следующего за LOOP.

 

Цикл DO – LOOP может работать без проверки условий. В этом случае из бесконечного цикла можно выйти с помощью EXIT DO.

 

Пример 1 Пример 2 Пример 3
Z=-10 ’цикл ''ДО'' DO T = ABS(Z) Z = Z +1 PRINT ’’T = ’’; T LOOP WHILE Z <= 0 {или LOOP UNTIL Z >0} Z= - 10 ’цикл ''ПОКА'' DO WHILE Z <= 0 или UNTIL Z > 0} T = ABS(Z) Z = Z +1 PRINT ’’T = ’’; T LOOP Z= - 10 DO T = ABS(Z) Z = Z +1 PRINT ’’T = ’’; T IF Z > 0 THEN EXIT DO END IF LOOP

Операторы цикла FOR – NEXT (цикл со счетчиком)

Этот цикл применяется для циклических вычислений с известным количеством повторений.

Формат оператора

FOR счетчик = N1 TO N2[STEP N3]

Оператор 1

. . .

[оператор n]

[EXIT FOR]

NEXT счетчик

Счетчик – числовая переменная, изменяющаяся при повторении цикла (управляющая переменная цикла, параметр цикла).

N1начальное значение счетчика – а.в., задает начальное значение параметра цикла.

N2 -конечное значение счетчика – а.в., задает конечное значение параметра цикла.

N3шаг – а.в. – приращение параметра цикла. По умолчании - шаг N3= 1.

EXIT FOR – прерывание цикла. Программа выполняется с оператора, следующего за NEXT.

Пример 1 Пример 2
Z= - 10 ’Табулирование функции FOR Z = - 10 TO 0 T = ABS(Z) PRINT ’’T = ’’; T NEXT Z S = 0‘Вычисление суммы FOR I =1 TO 11 STEP 2 S = S+ (A+I)^2 NEXT I PRINT ’’S = ’’; S

Вложенные циклы

Вычислить значение функции

, , ,

k =1, 2, 3,...,16, i =1, 3, 5,..., 21

REM вложенные циклы

DIM H, M, DL, i, AI, BK, Ci, Yi, S, K

INPUT ''H,M,DL’’; H,M,DL

FOR i = 1 TO 21 STEP 2

Ai = H + I : Ci = M ^ i

S = 0

FOR K = 1 TO 16

BK = DL *K : S = S + BK*Ci

NEXT K

Yi = Ai + S

NEXT i

PRINT ”S=”;S: END

 

 

Пример:

Вычислить значение функции yk = ak + bk3, k = 1, 3, …, 23,

при , xi = x0 + i Δ , i = 1, 2, …, k,

Итерационные циклы

Вычислить значение суммы , пренебречь членами ряда меньшими ε, т.е. , при х = 0,2

REM итерационные циклы

DIM X, i, EPS, F, Fi

INPUT ''X, EPS”; X, EPS

F = 0: i=1

DO

Fi = X^ i / (i+1)^3*( -i ) ^(i+1)

F = F + Fi: i = i+1

LOOP WHILE ABS(Fi) >EPS

PRINT ”F=”; F

END

 

1 –й вариант решения (при ε =10 -5)

 

i Fi

 

i1 =1 F1 = + 0.025

i2 =2 F2 = - 0.00148

i3 =3 F3 = +0.000025

i4 =4 F4 = - 0.00000256

 

2 –й вариант решения (при ε =10 -3)

 

i Fi

 

i1 =1 F1 = + 0.025

i2 =2 F2 = - 0.00148

i3 =3 F3 = +0.000025