Xreferat.com » Рефераты по информатике » Описание языка Turbo Basic для студентов всех специальностей

Описание языка Turbo Basic для студентов всех специальностей

процедуры от подпрограммы-функции :

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


- 15 -

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 нельзя

изменять в основной программе).


- 16 -


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 . 2  0устанавливает цвет фона экрана и палитру (из

трех цветов) для окрашивания точек (для текстового режима - еще и

цвет рамки).

Существует две палитры цветов: 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 2  0имеет вид

COLOR 2  0i, 2  0j[,k]


- 17 -

где i - цвет фона, j - номер палитры, k - цвет рамки.

Например, операторы

SCREEN 1,0

COLOR 9,0

устанавливают цветной графический режим при средней разрешающей

способности; цвет фона - голубой; последующие операторы должны

использовать цвета из 0-й палитры.

В графическом режиме (для получения на экране неподвижных

изображений) могут использоваться следующие операторы:

PSET 2  0(PRESET) - включает (или выключает) точку; LINE 2  0- чер-

тит линию; CIRCLE 2  0- чертит окружность или ее часть; PAINT 2  0- зак-

рашивает указанную часть экрана.

Более сложные операторы для получения движущихся изображений

(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 2  0(x, y)

стирают точку (x, y) с экрана.

Оператор LINE 2  0позволяет начертить отрезок прямой, указав его

начало (x1, y1), конец (x2, y2) и цвет k

LINE 2  0[(x1, y1)] 2  0- 2  0(x2, y2), 2  0k

Если начальная точка отсутствует, то линия будет прочерчена, на-

чиная с точки, в которой остановился предыдущий оператор.

С помощью оператора LINE 2  0можно также чертить и закрашивать

прямоугольники

LINE (x1, y1) - (x2, y2), 2  0[k], 2  0B[F]

Точки (x1, y1) и (x2, y2) трактуются при этом как левая нижняя и


- 18 -

правая верхняя вершины прямоугольника. Если цвет k отсутствует,

то прямоугольник будет начерчен 3-м цветом палитры. При наличии

параметра F площадь внутри прямоугольника будет закрашена. Напри-

мер, оператор

LINE (80, 175) - (100, 25), 2, BF закрашивает красным цветом

прямоугольник, расположенный между 80-ой и 100-ой позициями по

горизонтали и 175-ой и 25-ой позициями по вертикали.

 _Оператор CIRCLE . 2  0позволяет строить окружности, дуги, секторы

и эллипсы.

Оператор CIRCLE 2  0(x, 2  0y), 2  0r, 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 . 2  0позволяет закрашивать большие области экрана.

Для закрашивания необходимо указать произвольную точку внутри

закрашиваемой области (x, y), цвет, которым нужно закрасить об-

ласть (k1) и цвет границы, которую нельзя пересекать при закраши-

вании (k2), k1 и k2 могут совпадать. Оператор PAINT имеет вид


- 19 -

PAINT (x, y), k1, k2

Например, оператор

PAINT (160, 100), 2, 2

закрасит окружность нарисованную последним оператором CIRCLE,

красным цветом, как и цвет окружности, использованный в операторе

CIRCLE.


- 20 -


3. ФАЙЛЫ. РАБОТА В БЕЙСИКЕ С ФАЙЛАМИ ПОСЛЕДОВАТЕЛЬНОГО

И ПРЯМОГО ДОСТУПА


Если необходимо использовать набор данных или программу мно-

гократно, то необходимо сохранить их на внешнем устройстве памяти

(например, диске или дискете). Для этого создается файл. Файл

должен иметь имя. Имя состоит из двух частей: собственно имя и

расширение

 1имя 0. 1расширение

Имя может содержать до 8 символов, расширение  1-  0до трех.

Могут использоваться следующие символы

A - z 0 - 9 ( ) { } @ # $ 1  0% ^ & ! - _ / ' ~

Полное имя файла в MS DOS содержит весь путь по дереву от

корневой директории к нужному файлу. Например,

C:STLABwork.bas,

где C - имя диска, ST - имя директории на диске, LAB - имя подди-

ректории директории ST, work.bas - имя программы на Бейсике.

Далее речь пойдет только о файлах данных.


3.1. Файлы последовательного доступа


Последовательный файл состоит из записей, доступ к которым

осуществляется последовательно, т.е. n-я запись следует за (n -

1)-ой как при формировании файла, так и при считывании из него.

Создание последовательного файла включает следующие шаги:

открытие файла (оператор OPEN), вывод данных в файл (операторы

PRINT#, WRITE#, или PRINT# USING) и закрытие файла (оператор

CLOSE).

Считывание из последовательного файла включает следующие ша-

ги: открытие файла, ввод данных из файла (операторы INPUT#,

INPUT$, LINE INPUT#), закрытие файла.

 _Оператор OPEN . 2  0подготавливает файл для чтения из файла

(INPUT) или записи в файл (OUTPUT, если создается новый файл,

APPEND, если добавляются записи в уже существующий файл).

INPUT

OPEN  1имя файла  0FOR OUTPUT  1  0 AS # 1номер файла

APPEND

 _Оператор CLOSE  .закрывает файл, т.е. делает невозможным чте-


- 21 -

ние или запись.

CLOSE [# 1номер файла 0]

Оператор CLOSE без параметров закрывает все открытые файлы.

Единицей информации, которая передается при записи в файл

или чтении из файла 1,  0является запись (логическая запись) 2.  0Запись

делится на поля. Каждое поле связано с одним элементом данных.

 0Могут быть созданы два типа последовательных файлов:

1) с разделителями полей, когда каждое поле автоматически

отделяется специальным символом (например, запятой). Для создания

такого файла используется оператор WRITE#, для чтения из него -

оператор INPUT#.

Данные в файле хранятся в таком виде, как если бы они наби-

рались на клавиатуре при выполнении оператора INPUT, т.е. разде-

лены запятыми и каждая запись заканчивается переводом строки.

 _Оператор INPUT# . 2  0имеет вид

INPUT # 1номер файла 0, 2  1список переменных

где переменные в списке по типу должны соответствовать данным в

файле.

2) поля не разделены 1,  0и каждая запись точно такая же, как

если бы эти данные отображались на экране или печатались на прин-

тере. Для создания такого файла используется оператор PRINT#, для

чтения из него - операторы INPUT$ или LINE INPUT#.  _Оператор

 _INPUT$ . передает из файла сразу всю строку (запись) указанной дли-

ны n в символьную переменную, например, ST$

ST$ 2 =  0INPUT$ (n, # 1номер файла 0)

 _Оператор LINE INPUT# . 2  0передает в указанную переменную ST$ всю

строку независимо от ее длины

LINE INPUT # 1номер файла 0, 2  0ST$

Пример (с разделителями полей):

OPEN "SEQU.DAT" FOR OUTPUT AS #1

ST$ = " ИВАНОВ "

INT% = 1972

FLOT! = 75.3

'теперь записываем строку в файл

WRITE #1, ST$, INT%, FLOT!

ST$ = " ПЕТРОВ "

INT% = 1975

FLOT! = 62.5

'записываем другую строку в файл


- 22 -

WRITE #1, INT%, ST$, FLOT!

CLOSE #1

END

Созданный файл будет следующим

" ИВАНОВ ", 1972, 75.3

1975, " ПЕТРОВ ", 62.5

Следующая программа читает из этого файла:

OPEN "SEQU.DAT" FOR INPUT AS #1

ST$ = " "

INT% = 0

FLOT! = 0

'теперь читаем строку текста из файла

INPUT #1, ST$, INT%, FLOT!

PRINT ST$, INT%, FLOT!

ST$ = " "

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: