Подпрограммы и функции пользователя

Содержание

Слайд 2

Определение подпрограммы Подпрограммой называется отдельный участок программы, представляющий собой логически законченный

Определение подпрограммы

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


Подпрограмма может вызываться несколько раз в различных местах основной программы и применяется для того, чтобы избежать повторения записи одной и той же группы операторов.
Чтобы подпрограмма при обращении к ней выполнялась каждый раз с новыми данными, ее нужно составить в общем виде, а исходные данные передавать переменным подпрограммы перед обращением к ней.
Слайд 3

Операторы организации подпрограмм Оператор GOSUB-RETURN Формат: GOSUB номер_строки RETURN номер_строки Оператор

Операторы организации подпрограмм

Оператор GOSUB-RETURN
Формат:
GOSUB номер_строки
RETURN номер_строки
Оператор GOSUB передает управление из основной

программы в подпрограмму на первый оператор указанной в нем строки. Затем подпрограмма выполняется в естественном порядке до оператора RETURN. Если в операторе RETURN параметр "номер строки" не указан, то управление передается на оператор, следующий за оператором GOSUB. Если параметр "номер строки" указан, то оператор GOSUB выполняет возврат из подпрограммы на указанную строку
Слайд 4

Операторы организации подпрограмм Оператор ON GOSUB – RETURN Вычисляемый переход к

Операторы организации подпрограмм

Оператор ON GOSUB – RETURN
Вычисляемый переход к подпрограмме
Формат оператора:
ON

выражение GOSUB номер_строки[, номер_строки…]

RETURN
ПРИМЕР:
ON A GOSUB 10, 20, 30

RETURN

Если A=1, то GOSUB 10
Если А=2, то GOSUB 20
Если А=3, то GOSUB 30
Иначе ничего не происходит

Слайд 5

Подпрограмма: вычисление факториала Задача: рассчитать число сочетаний по формуле Три раза

Подпрограмма: вычисление факториала

Задача: рассчитать число сочетаний по формуле

Три раза используется вычисление

факториала:
n!, m! и (m - n)!
Поэтому целесообразно расчет факториала
оформить в виде подпрограммы.
Слайд 6

CLS INPUT «Введите n»; n INPUT «Введите m»; m L=n GOSUB

CLS
INPUT «Введите n»; n
INPUT «Введите m»; m
L=n
GOSUB 10
C1= P
L= m
GOSUB 10
C2=

P
L= m-n
GOSUB 10
C3= P
C= C1/ (C2*C3)
PRINT “C=“;C
END

10 REM Начало подпрограммы
Р=1
FOR i=1 TO L
P= P*i
NEXT i
RETURN

ПРОГРАММА

Переменные:
n, m – фактические переменные
L – формальная переменная
P – факториал
С1 – результат вычисления
факториала n!
С2 – результат вычисления
факториала m!
С3 – результат вычисления
факториала (m-n)!
С – число сочетаний

Слайд 7

Блок-схема начало Ввод n,m L = n 10 C1=P L =

Блок-схема

начало

Ввод
n,m

L = n

10

C1=P

L = m

10

1

1

C2=P

L = m-n

10

C3=P

C=(C1*C2)/C3

Вывод
С

конец

вход

P = 1

i = 1,L

P=P*i

выход

Блок-схема
подпрограммы

Слайд 8

Рекомендации по организации подпрограмм Четко обозначить начало и конец каждой подпрограммы

Рекомендации по организации подпрограмм

Четко обозначить начало и конец каждой подпрограммы с

помощью оператора REM.
Каждую подпрограмму нужно рассматривать как независимый логически завершенный модуль.
Не использовать оператор GOTO для входа и выхода из подпрограмм.
Недопустимо изменять в подпрограмме переменные – счетчики циклов вызывающей программы.
Используйте в подпрограмме переменные отличные от переменных вызывающей программы.
Подпрограммы записывать после оператора END, завершающего вызывающую программу.
Слайд 9

Функции пользователя Однострочная функция пользователя Блочная функция пользователя Если в программе

Функции пользователя

Однострочная функция пользователя
Блочная функция пользователя
Если в программе имеются повторяющиеся действия,

которые можно выразить в виде одного выражения, то для их выполнения можно определить однострочную функцию пользователя
Слайд 10

Однострочная функция пользователя Определение функции пользователя – в начале программы оператором

Однострочная функция пользователя

Определение функции пользователя – в начале программы оператором DEF

FN
Формат оператора:
DEF FNимя_функции(формальная_переменная, формальная_переменная…) = =выражение
Вызов функции пользователя внутри программы с помощью FNимя_функции(фактическая_переменная, фактическая_переменная…)
Слайд 11

Пример Составить программу для расчёта значения выражения R = x^2 +

Пример

Составить программу для расчёта значения выражения
R = x^2 +

x + 1 +(y^2 + y + 1)^2 +
+(z^2 + z + 1)^3
В заданном выражении повторяется структура квадратного трёхчлена
от х, у и z. Поэтому целесообразно задать в качестве функции пользователя расчет квадратного трехчлена.