Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Процедуры. Операторы 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; Просмотров: 806; Нарушение авторского права страницы