Информатика -продвинутый курс


         

ПОДПРОГРАММЫ - часть 2


130 ON j GOSUB 500, 600, 700

140 PSET (200 + 32 * x, 100 - 32 * у)

150 NEXT x

160 r$ = INPUT$(1)

170 IF r$ = "К" OR r$ = "к" THEN END ELSE SCREEN 0: GOTO 10

500 у = SIN(x) : RETURN

600 у = COS(x) : RETURN

700 у = TAN(x) : RETURN

Подпрограммы, к которым обращаются по GOSUB, сильно уступают истинным процедурам Паскаля, поскольку у них отсутствуют возможности локализации переменных, нет формальных параметров, которые можно замещать при обращении фактическими. Однако, в более поздних версиях (например в Qbasic) предусмотрены подпрограммные единицы SUB - подпрограммы-процедуры и FUNCTION - подпрограммы-функции. В следующем примере использована подпрограмма решения квадратного уравнения SUB kvur(a,b,c) со списком входных данных. В основной программе можно объявить подпрограмму оператором DECLARE, а вызвать ее с помощью команды CALL.

Программа 74

5 ' ********** пример работу с подпрограммой ********

10 DECLARE SUB kvur (а!, Ь!, с!)

20 INPUT "введи а, Ь, с"; а, Ь, с 30 CALL kvur (a, Ь, с)

40 END SUB kvur (a, b, c)

1000 d.=b*b-4*a*c

1010 IF d < 0 THEN PRINT "корней нет": GOTO 1050

1020 xl = (- b + SQR(d)) / 2 / a

1030 x2 = (- b - SQR(d)) / 2 / a

1040 PRINT ="; xl, ="; x2

1050 END SUB




Содержание  Назад  Вперед