Операторы передачи управления.

Лишь немногие программы могут быть записаны в виде длинной последовательности выполняемых друг за другом операторов. Часто в задачах встречаются условия, от выполнения которых зависит последующий ход вычислений. Чтобы изменить естественный порядок выполнения операторов программы, используют операторы передачи управления:

а) оператор безусловного перехода

GOTO N

Где N- метка оператора, которому передается управление.

При записи в строке с несколькими операторами GOTO должен быть последним в строке. Если это правило не соблюдено, то следующие за ним операторы никогда не будут выполняться, так как на них нельзя передать управление. Например, в следующем фрагменте программы оператор GOTO обеспечивает дважды исполнение операторов с выводом на печать, после чего будет выдано сообщение об ошибке “Quit of DATA” (“Нет данных”).

DATA 5,7

а1:

REАD R

PRINT "R="; R;

S=3. 1416*R^2

PRINT "S="; S

GOTO a1:

R=5 S=78.5

R=7 S=153.86

Out of DTA

б) Оператор условного перехода IF L THEN S

Где L - некоторое условие, которое может быть истинным, или ложным;

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

Действие оператора IF заключается в следующем: если L -" истина ', то выполняется S; если L - ' 'ложь ', то S не выполняется, а выполняется следующий за IF оператор. Например,

INPUT A, В

IF A>В THEN PRINT "А>В"

IF A<В THEN PRINT "A<B"

IF A=B THEN PRINT "Числа равны"

END

если действие IF—ТHEN задаётся оператором GOTO, то можно опустить либо THEN, либо GOTO, но не оба сразу. Например, вместо

IF Х<>У AND В<>0 THEN GOTO m1

 

можно написать один из следующих вариантов:

IF X<>Y AND B<>0 THEN m1

IF X<>Y AND B<>O GOTO m1

Как указывалось выше, действие в операторе IF—THEN можно задавать последовательностью нескольких операторов, разделённых двоеточием. Например,

INPUT А, В, С

D=B*B-4*А*C

IF D<0 THEN PRINT "Корней нет": GOTO m1

X1= (-B + SQR (D)) / (2 *А)

X2 = (-B -SQR (D))/(2 *A)

PRINT XI, X2

M1:

END

Условный оператор I F - Т Н ЕN может быть дополнен ключевым словом ЕLSЕ, после которого указываются действия (S1), подлежащие выполнению, если выражение L этого оператора имеет значение "ложь ".

IF L THEN S ELSE S1

В результате в одном операторе, называемом полным условным оператором, указаны все действия, выполняемые при любом значении выражения. Например,

IF M<>N THEN m5 ELSE PRINT "Равенство"

 

4) Записать полный условный оператор, который выводит на печать 1 в случае если точка A(X0,YO) принадлежит графику функции Y=2*X^2-3*X+4 и 0 в противном, случае.

 

5) Записать полный условный оператор, который выводит на печать "Да", если число Х удовлетворяет неравенству а. < X<b и "Нет" в противном случае.

Программирование разветвляющихся алгоритмов.

Вычислительный процесс, которыйв зависимости от выполнения определённых условий реализуется по одному из нескольких заранее предусмотренных (возможных) направлений, называется разветвляющимся. Каждое направление вычислений называется ветвью. Выбор ветви осуществляется в результате проверки некоторого логического условия. В качестве примера рассмотрим решение нескольких задач.

1) Составить программу вычисления и печати квадратов натуральных чисел от 1 до 10.

Вычисление квадратов чисел

DEFINT N, S

N=1

M1:

S=N^2

PRINT "N="; N,"S="; S

N=N+1

IF N<=10 THEN m1

END

2) Составить программу, для определения какой четверти принадлежит точка Т(х, у).

INPUT х, у

IF х>0 AND у>0 THEN PRINT 1: STOP

IF" x<0 AND y>0 THEN PRINT 2: STOP

IF x<0 AND y<0 THEN PRINT 3: STOP

IF x>0 AND y<0 THEN PRINT 4: STOP

 

3) Проверить, принадлежит ли точка А (хО, уО) отрезку КМ, если К(х1,у1), М(x2, y2).

INPUT х0,у0,х1,у1,х2,уand 2

DEF FNRAS (XL, El, x2, y2)=SQR ((xl-x2)^2+(yl-y2)^2)

KM=FNRAS (XL, yl, x2, y2)

AK=FNRAS (xO, yO, x1,уI)

AM=FNRAS (xO, yO, x2, y2)

IFkm=Ak+Am THEN PRINT "Да" ELSE PRINT "Нет"

END

 

УПРАЖНЕНИЯ

1) Запишите полный условный оператор, который обеспечивает переход к оператору с меткой а1, если абсолютная величина числа А больше 3, и к оператору с меткой b1 в противном случае.

2) Укажите метку оператора, которому будет передано управление в результате выполнения фрагмента программы

READ A, B

DATA 5., 6.

IF A\B>0 THEN V1 ELSE GOTO M2

3) Вычислите значение переменной А, которое она примет в результате выполнения фрагмента программы

A=. 4

IF 3*A+1>0 THEN h1 ELSE n2

A=A+0.8

N1:

A=A-1

GOTO n3

N2:

A=A/2

N3:

A=A+1

 

4)Вывести на печать отрицательные значения функции
у=0.5— sin x при изменении аргумента х от нуля до 1 с шагом 0,1.

х=0.

M1:
y=. 5-sin (х)

If у<О. Then ргInt "х ="; х, "у= ";у

х=х+0.1
ifx<=1.thenm1
end

 








Дата добавления: 2015-02-10; просмотров: 1225;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.