Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Процедуры. Операторы SUB и END SUB



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

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

 

Формат процедуры:

[метка] SUB имя (список формальных параметров)

Операторы

[метка] END SUB

или

SUB имя (список формальных параметров)

(LOCAL список переменных)

(STATIC список переменных)

(SHARED список переменных)

Операторы

(EXIT SUB)

END SUB

Для описания локальных переменных в процедуре применяется оператор LOCAL, например оператор LOCAL A%, B# формирует 2 локальные переменные: А% - целочисленная и B# - двойной точности.

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

Глобальные переменные описываются с помощью оператора SHARED. Они могут применяться в основной программе. Статистические переменные, описанные оператором STATIC, не теряют свое значение при выходе из процедуры, но не могут применяться в программе.

Оператор EXIT SUB аналогичен END SUB, но может применяться в любом месте процедуры. Оператор END SUB должен быть последним оператором процедуры.

Если в процедуру нужно включить программу на Ассемблере, то

используется оператор: SUB progname INLINE.

Для вызова такой процедуры используется оператор:

CALL progname INLINE

Внутри процедуры нельзя применять операторы GOTO, GOSUB, RETURN, передающие управление за ее пределы. Описания процедур и функций не могут быть вложенными. Но внутри процедуры можно обращаться к другим процедурам и функциям.

Для вызова процедуры служит оператор CALL.

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

CALL имя (список фактических параметров)

Оператор CALL пересылает фактические параметры в процедуру

по ссылке или по значению. Возврат в основную программу выполняется автоматически в место вызова процедуры (специального оператора, как RETURN в подпрограмме пользователя не требуется).

Пример 5:

SUB WW(A, M, N, MAX)

IF A> M THEN MAX=A ELSE MAX=M

IF MAX> N THEN MAX=N

END SUB

……………………………………………..

CALL WW(18, 3, 6, MAX)

PRINT" MAX=" MAX: END

 

В процедуре будет вычислено значение MAX=18.

 

Задача 3 Составить программу вычисления функции из задачи 1, используя процедуру пользователя.

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

Программа

CLS

REM программа с процедурой

INPUT " a="; a, " b="; b, " x="; x

IF a=b THEN m1

IF a> b THEN m2

REM Вычисление при b> a

n=b

CALL F(i)

Z=x*SIN(x)/F: GOTO m3

m1: REM Вычисление при a=b

n=a*x+2

CALL F(i)

Z=F: GOTO m3

m2: REM Вычисление при a> b

n=a

CALL F(i)

Z=F*b*x^2/(a^2+b^2)

m3: PRINT" Z=" Z, " F=" F

STOP

REM Процедура вычисления факториала

SUB F(i)

F=1

FOR i=2 TO n

F=F*i

NEXT i

END SUB

END

 

Контрольные вопросы

1 В каких случаях целесообразно вводить функции, подпрограммы и процедуры пользователя?

2 Что такое формальные и фактические параметры?

3 Что такое подпрограмма?

4 Какие операторы используются при обращении к подпрограмме

5 Что называется процедурой?

6 Какие операторы образуют формат процедуры?

7 Как выполняется возврат из подпрограммы и из процедуры в основную программу?

8 Что означают опции LOCAL, STATIC, SHARED в формате процедуры?

 

Задание

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

▪ функции пользователя;

▪ подпрограммы пользователя;

▪ процедуры пользователя

при х = 0, 45

В первой программе вся функция задания или её элементы должна быть представлена как функция пользователя, во второй – как подпрограмма пользователя и в третьей – как процедура

 

№ вар Функция

 

 

 

Содержание отчета

1 Название, цель, содержание работы

2 Задание для своего варианта.

3 Три программа расчёта – с функцией, подпрограммой и процедурой.

4 Результаты расчётов в среде QB.

5 Письменные ответы на контрольные вопросы, выводы по работе

 

 

Лабораторная работа № 8

Построение фигур и графиков

Цель работы: изучить графические операторы QB, научиться составлять программы для построения фигур и графиков

Содержание работы:

1 Графические операторы QBASIC

2 Программа рисования графических объектов

3 Построение графиков функций

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 758; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь