1.8. Подпрограммы, функции и процедуры
Подпрограмма - помеченная последовательность операторов, заканчивающаяся оператором RETURN. Выполняется, когда достигнут GOSUB.
....
GOSUB aa
....
END aa: операторы RETURN
Оператор RETURN осуществляет возврат к оператору, непосредственно следующему за GOSUB.
Функция может быть определена одной строкой (оператор-функция) или несколькими строками (подпрограмма-функция).
DEF FN имя [(список параметров)] = выражение
(это определение оператора-функции).
Здесь список параметров может включать не более 16 параметров. DEF FN имя [(список параметров)]
описание переменных
операторы
[EXIT DEF]
....
[FN имя = выражение]
END DEF
(это определение подпрограммы-функции).
Обращение к функции записывается там, где нужно получить ее значение. При этом параметры заменяются их фактическими значениями. Например,
DEF FNF (x,y) = x * x + y * y a = 3 : b = 4
P = FNF (a,b) или
P = FNF (3,4)
Функция возвращает одно значение, тип которого определяется именем функции. Определение функции может располагаться в любом месте
программы (обычно в начале или в конце). Например,
F = FNa (1.5)
PRINT F
DEF FNa (x)
FNa = x*x
END DEF
END или
F = FNa (1.5) PRINT F
END
DEF FNa (x) FNa = x*x
END DEF
В результате будет напечатано 2.25.
Список параметров оператора-функции может включать только имена переменных.
Процедура - это последовательность строк программы, расположенная между операторами SUB и END SUB и выполняемая при обращении к ней при помощи оператора CALL.
SUB имя [(список параметров)] описание переменных операторы
[EXIT SUB]
END SUB
Имя может содержать до 31 символа. Список параметров (не более
16) может включать имена переменных и массивов. Для массивов в скобках указывается размерность. Например, 1 - для одномерного массива, 2 - для двухмерного и т.д.
В обращении к процедуре за именем фактического массива следуют пустые скобки. Например,
SUB SUM (x (1), n, S)
S = 0
FOR I=1 to n
S = S + x (I)
NEXT I
END SUB
DIM A (3)
A (1) = 1 : A (2) = 2 : A (3) = 4
CALL SUM ( A (), 3, S)
S = S/3
PRINT S
END
Эта программа вычисляет среднее значение элементов массива A, процедура SUM суммирует элементы массива.
Основные отличия процедуры от подпрограммы-функции :
1 - процедура не обязана возвращать значение, она не имеет типа; 2 - вызывается оператором CALL, а не из выражения.
Отдельные переменные, используемые в процедуре (или подпрограмме-функции), могут быть объявлены локальными, т.е. действующими только в данной подпрограмме (оператор LOCAL), общими, т.е. действующими как в подпрограмме, так и в основной программе (оператор SHARED) и статическими, т.е. действующими в данной подпрограмме как LOCAL, но сохраняющими полученные значения до следующего обращения (оператор STATIC). По умолчанию в подпрограмме-функции переменная является SHARED, а в процедуре STATIC.
DEF FNF1
LOCAL i, S
FOR i =1 to 10
S = S + i
NEXT i
FNF1 = S
END DEF
После выхода из подпрограммы-функции переменные i и S теряют свои значения (при входе в подпрограмму всегда S = 0). Эти же имена могут использоваться в программе для обозначения других величин.
DEF FNF2
LOCAL i
SHARED S
FOR i = 1 to 10
S = S + i
NEXT i
FNF2 = S
END DEF
В этом случае S сохраняет значение после выхода из подпрограммы и имеет один и тот же смысл во всех частях программы.
DEF FNF3
LOCAL i
STATIC S
FOR i = 1 to 10
S = S + i
NEXT i
FNF3 = S
END DEF
В этом случае S сохраняет значение после выхода из подпрограммы до следующего обращения к ней, т.е. после первого обращения значение функции FNF3 будет 55, после второго - 110 и т.д. (S нельзя изменять в основной программе).
2. ЦВЕТ И ГРАФИКА
В графическом режиме экран рассматривается как решетка, точки в узлах которой могут быть включены (белым или другим возможным цветом) или выключены. Точка идентифицируется координатами x, y; x - номер позиции по горизонтали (от 0 до 319 или до 639 в зависимости от режима), y - номер позиции по вертикали (от 0 до 199 или до 349 в зависимости от режима). Точка с координатами 0,0 находится в верхнем левом углу экрана.
Графический режим устанавливается (или отменяется) операто-
ром SCREEN.
SCREEN i[,j]
i = 0, j = 0 черно-белый текстовый режим
i = 0, j = 1 цветной текстовый режим
i = 1, j = 0 цветная графика при средней разрешающей способности (320 позиций по горизонтали, 200 по вертикали)
i = 1, j = 1 черно-белая графика при средней разрешающей способности
i = 2 черно-белая графика при высокой разрешающей спосо-
бности (640 позиций по горизонтали, 350 по вертикали)
После выполнения оператора SCREEN точка устанавливается в середину экрана.
Оператор COLOR устанавливает цвет фона экрана и палитру (из
трех цветов) для окрашивания точек (для текстового режима - еще и
цвет рамки).
Существует две палитры цветов: 0 и 1, следующего состава: Палитра 0 Палитра 1
1 - зеленый 1 - голубой
2 - красный 2 - сиреневый
3 - желтый 3 - белый
Для фона можно выбрать один из 16 цветов (0 - черный, 1 - синий, 2 - зеленый, 3 - бирюзовый, 4 - красный, 5 - лиловый, 6 - коричневый, 7 - белый, 8 - серый, 9 - голубой, 10 - ярко-зеленый, 11 - ярко-бирюзовый, 12 - ярко-красный, 13 - ярко-лиловый, 14 - желтый, 15 - ярко-белый)
Оператор COLOR имеет вид
COLOR i, j[,k]
где i - цвет фона, j - номер палитры, k - цвет рамки.
Например, операторы
SCREEN 1,0
COLOR 9,0
устанавливают цветной графический режим при средней разрешающей способности; цвет фона - голубой; последующие операторы должны использовать цвета из 0-й палитры.
В графическом режиме (для получения на экране неподвижных изображений) могут использоваться следующие операторы:
PSET (PRESET) - включает (или выключает) точку; LINE - чертит линию; CIRCLE - чертит окружность или ее часть; PAINT - закрашивает указанную часть экрана.
Более сложные операторы для получения движущихся изображений (DRAW, GET, PUT) рассматриваются в п.4.
Оператор
PSET (x, y)
включает точку с координатами x,y.
Оператор
PSET STEP (x, y)
включает точку, отстоящую на x позиций по горизонтали и на y позиций по вертикали от текущей точки. Например, если в предыдущем положении точка имеет координаты (60, 75), то оператор
PSET (10, 20) определяет точку с координатами (10, 20), а оператор
PSET STEP (10, 20) определяет точку с координатами (70, 95). Операторы
PSET (x, y), 0 или
PRESET (x, y)
стирают точку (x, y) с экрана.
Оператор LINE позволяет начертить отрезок прямой, указав его начало (x1, y1), конец (x2, y2) и цвет k
LINE [(x1, y1)] - (x2, y2), k
Если начальная точка отсутствует, то линия будет прочерчена, начиная с точки, в которой остановился предыдущий оператор.
С помощью оператора LINE можно также чертить и закрашивать прямоугольники
LINE (x1, y1) - (x2, y2), [k], B[F]
Точки (x1, y1) и (x2, y2) трактуются при этом как левая нижняя и правая верхняя вершины прямоугольника. Если цвет k отсутствует, то прямоугольник будет начерчен 3-м цветом палитры. При наличии параметра F площадь внутри прямоугольника будет закрашена. Например, оператор
LINE (80, 175) - (100, 25), 2, BF закрашивает красным цветом прямоугольник, расположенный между 80-ой и 100-ой позициями по горизонтали и 175-ой и 25-ой позициями по вертикали.
Оператор CIRCLE позволяет строить окружности, дуги, секторы и эллипсы.
Оператор CIRCLE (x, y), r, k
чертит окружность радиуса r с центром в точке (x, y) цветом k.
После вычерчивания окружности последней использованной точкой считается ее центр.
Оператор CIRCLE (x, y), r, k, ALPHA1,ALPHA2
вычерчивает дугу, имеющую начало под углом ALPHA1 и конец - под углом ALPHA2.
Например, оператор (при PI = 3.1416)
CIRCLE (160, 100), 80, 2, PI/2, PI строит дугу от PI/2 до PI окружности радиуса 80 с центром в точке (160, 100) вторым цветом палитры.
Если использовать знак " - " перед начальной и конечной точками дуги, то будет нарисован сектор, т.е. конечные точки дуги будут соединены с центром. Например,
CIRCLE (160, 100), 80, 2, - PI/2, - PI
Можно изобразить сплюснутую (или наоборот вытянутую) окружность, добавив в оператор CIRCLE еще один параметр. Если значение этого параметра меньше 1, то окружность будет сплюснута по вертикали, если больше 1, то - по горизонтали. Например,
CIRCLE (160, 100), 80, 2, , , 3/4
Все параметры оператора CIRCLE задаются в определенном порядке и разделяются запятыми. Обязательными являются только параметры, указывающие положение центра и радиус окружности. Остальные параметры необязательны, однако, запятые должны быть оставлены, если пропущены параметры в середине списка.
Оператор PAINT позволяет закрашивать большие области экрана. Для закрашивания необходимо указать произвольную точку внутри закрашиваемой области (x, y), цвет, которым нужно закрасить область (k1) и цвет границы, которую нельзя пересекать при закрашивании (k2), k1 и k2 могут совпадать. Оператор PAINT имеет вид
PAINT (x, y), k1, k2
Например, оператор
PAINT (160, 100), 2, 2
закрасит окружность нарисованную последним оператором CIRCLE,
красным цветом, как и цвет окружности, использованный в операторе
CIRCLE.
... третьих фирм имеют логотип "Featuring Microsoft Visual Basic Technology". Это заставляет задуматься над тем, что же такое BASIC - "стандартный код для начинающих" или "основной язык для основной среды"... ГЛАВА3. разработка программы для расчета показателей финансового состояния предприятия. Для осуществления планирования деятельности любой фирмы на любом этапе работы осуществляются некоторые ...
... плана и состав слушателей, происходит определение стратегии курса, разрабатывается сценарий и интерактивное взаимодействие программы с пользователями. Разрабатываемый электронный справочник предназначен для самостоятельной работы студентов младших курсов по изучению Visual Basic в рамках университетского курса. Его создание имеет своей целью предоставить студентам, изучающим Visual Basic весь ...
... "тиках" (1/18 секунды) y SOUND x, y Оператор SOUND с нулевой длительностью прерывает работу пре- дыдущего оператора SOUND, даже если тот не отзвучал до конца. Ис- пользуется для специальных звуковых эффектов (сирена и пр.). 4.5. Оператор PLAY Этот оператор позволяет создавать музыку. Общий вид операто- ра PLAY 1символьное выражение - 29 - где символьное ...
... плохо защищенного от появления ошибок; · низкая скорость программирования; · невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от ...
0 комментариев