43604 (Описание языка Turbo Basic для студентов всех специальностей), страница 3

2016-07-31СтудИзба

Описание файла

Документ из архива "Описание языка Turbo Basic для студентов всех специальностей", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "43604"

Текст 3 страницы из документа "43604"

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

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

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

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

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

C:\ST\LAB\work.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$ = " "

INT% = 0

FLOT! = 0

'читаем другую строку

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

PRINT INT%, ST$, FLOT!

CLOSE #1

END

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

OPEN "SEQUEN.DAT" FOR OUTPUT AS #1

ST$ = " ИВАНОВ "

INT% = 1972

FlOT! = 73.1

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

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

ST$ = " ПЕТРОВ "

INT% = 1975

FLOT! = 64.3

'запишем другую строку, используя оператор

PRINT #1, USING "+####$#.##^^^^"; INT%, ST$, FLOT!

CLOSE #1

END

Содержание созданного файла будет таким:

ИВАНОВ 1972 73.1

1975 ПЕТРОВ 6.43Е+01

- 23 -

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

OPEN "SEQUEN.DAT" FOR INPUT AS #1

ST$ = " "

ST$ = INPUT$ (80,#1)

PRINT ST$

LINE INPUT #1, ST$

PRINT ST$

CLOSE #1

END

3.2. Файлы прямого доступа

Файл прямого доступа состоит из записей, доступ к которым

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

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

открытие файла (оператор OPEN); задание структуры записи файла,

или разметка буфера (оператор FIELD); передача записи в буфер

(операторы LSET 2  0или RSET); пересылка содержимого буфера в файл

(оператор PUT), при этом если номер записи в операторе PUT 2  0не

указан явно, буфер помещается на место текущей записи, при откры-

тии файла указатель текущей записи равен 1, после каждой операции

ввода или вывода указатель сдвигается на следующую запись; закры-

тие файла (оператор CLOSE).

Записи передаются в виде строк символов. Поэтому необходимо

использовать соответствующие функции преобразования данных в

строку символов и обратно.

Ниже перечислены функции и осуществляемые ими преобразова-

ния.

MKI$ (MKL$) - целое (длинное целое) в 2-х (4-х) байтовую

строку;

MKS$ (MKD$) - вещественное (вещественное двойной точности) в

4-х (8-ми) байтовую строку.

CVI(CVL) - 2-х (4-х) байтовую строку в целое (длинное це-

лое);

CVS(CVD) - 4-x (8-ми) байтовую строку в вещественное (ве-

щественное двойной точности).

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

гов: открытие файла; разметка буфера; передача записи из файла в

буфер (оператор GET); обработка данных буфера (переменные буфера

- 24 -

доступны из программы); закрытие файла.

Если вывод в файл и ввод из файла осуществляются в одной

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

перед началом и после окончания всех операций с файлом.

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

OPEN 2  1имя файла 2  0AS # 1номер файла 2  0LEN 2  0=  1длина записи

(отсутствие указания режима ввода или вывода означает, что файл

прямого доступа).

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

FIELD # 2  1номер файла 0, 2  0n1 2  0AS 2  1имя1 0 [ 2, 0n2 2  0AS 2  1имя2 0, 2  0...] 2  0,

где n1, n2, ... - длина поля в байтах под переменные  1имя1 0,  1имя2 0,

... ( 1имя1 0,  1имя2 0, - символьные переменные ).

 _Операторы .  _LSET, RSET . 2  0имеют вид

LSET 2  1имя 2  0= 2  1символьное выражение

RSET 2  1имя 2  0= 2  1символьное выражение

Оператор LSET (RSET) заполняет одно поле записи в буфере

(оператор LSET - с начала, RSET - с конца, оставшиеся позиции за-

полняются пробелами).

 _Оператор PUT . имеет вид

PUT 2  0# 2  1номер файла 2  0[ 2,  1номер записи 0]

Этот оператор передает содержимое буфера в файл на место за-

писи с указанным номером (или текущей, если номер не указан).

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

GET 2  0# 2  1номер файла 2  0[, 2  1номер записи 2и 0]

Этот оператор передает содержимое записи с указанным но-

мером в буфер (если номера нет, передается текущая запись).

В качестве примера приводится программа, которая формирует

файл прямого доступа из записей следующей структуры:

N п/п Фамилия Год рождения

В программе переменные обозначены n%, nam$, dat%; для соответс-

твующих полей буфера используются обозначения np$ (2 байта), nm$

(10 байт), dt$ (6 байт).

OPEN "GSR.DAT" AS #1 LEN = 18

FIELD #1, 2 AS np$, 10 AS nm$, 6 AS dt$

FOR i%=1 to 3

INPUT n%, nam$, dat%

LSET np$ = MKI$ (n%)

LSET nm$ = nam$

LSET dt$ = MKI$ (dat%)

- 25 -

PUT #1,i%

NEXT i%

CLOSE #1

END

Следующая программа осуществляет ввод данных из файла GSR.DAT и

их печать в обратном порядке.

OPEN "GSR.DAT" AS #1 LEN = 18

FIELD #1, 2 AS np$, 10 AS nm$, 6 AS dt$

FOR i% = 3 to 1 STEP -1

GET #1, i%

n% = CVI (np$)

dat%=CVI (dt$)

PRINT n%, nm$, dat%

NEXT i%

CLOSE #1

END

- 26 -

4. ДВИЖУЩИЕСЯ ИЗОБРАЖЕНИЯ, ЗВУКОВЫЕ ЭФФЕКТЫ

И НЕСТАНДАРТНЫЙ ВВОД С КЛАВИАТУРЫ

4.1. Оператор DRAW

При помощи оператора DRAW можно чертить (рисовать) на экране

различные фигуры (предметы), используя параметры Un, Dn, Ln, Rn

для перемещения на n позиций от текущей точки вверх (U), вниз

(D), влево (L) или вправо (R); En, Fn, Gn, Hn для перемещения по

диагонали на n точек вверх и вправо (E), вниз и вправо (F), вниз

и влево (G), вверх и влево (H); M h,V для перемещения в точку с

координатами h и V; M  7+ 0h, 7+ 0V для относительного перемещения на h

позиций вправо (+) или влево (-) и на V позиций вниз (+) или

вверх (-). Кроме того, параметр An устанавливает угол n, где n=0

(0 градусов), 1 (90 градусов), 2 (180 градусов) или 3 (270 граду-

сов); TAn - поворачивает на угол n, где n меняется от -360 до 360

градусов. При n>0 поворот осуществляется против часовой стрелки,

при n<0 - по часовой стрелке; Cn - устанавливает цвет n из теку-

щей палитры; Sn - определяет масштаб n/4, n может меняться от 1

до 255 (по умолчанию n=4); B - подавляет высвечивание точек по

пути перемещения в соответствии с командой С (по умолчанию путь

перемещения высвечивается в виде линий, С содержит какие-либо из

перечисленных параметров); N означает возврат в исходную позицию

после выполнения команды перемещения С.

Последовательность параметров, определяющая режим и порядок

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

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

DRAW "M 160, 100"

осуществляет перемещение от текущей позиции в позицию (160, 100),

оставляя при этом след в виде закрашенных точек. Оператор

DRAW "BM160, 100"

осуществляет то же перемещение, но не оставляя следа. Оператор

DRAW "L10 U10 R10 D10"

прочерчивает линию на 10 позиций влево, на 10 позиций вверх, на

10 позиций вправо и на 10 позиций вниз, т.е. образует квадрат.

Пробелы, разделяющие параметры, необязательны и используются для

наглядности. Оператор

DRAW "BM 180, 20 NU10 ND10 NL10 NR 10"

- 27 -

осуществляет перемещение без обозначения пути в точку (180, 20),

а затем чертит крест (знак +).

В операторе DRAW можно использовать не только символьные

константы (см.выше), но и символьные переменные, в которых зара-

нее заготавливаются отдельные фрагменты рисунка (или весь рису-

нок), что позволяет воспроизводить их многократно различными опе-

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

SQAR$ = "L10U10R10D10"

DRAW SQAR$

Аргументы перемещения n, k, V могут быть заданы константами, как

в приведенных выше примерах операторов DRAW, или переменными. В

последнем случае нужно использовать функцию VARPTR$. Например,

операторы

DRAW " E15 "

и

a = 15

DRAW " E = " + VARPTR$ (a)

выполняют одно и то же действие. Это же относится и к операторам

I% = 1

DRAW " M = " + VARPTR$ (I%) + " , 40"

и

DRAW " M = 1, 40"

Но в первом случае (при использовании переменной I%) оператор

DRAW может выполняться при различных ее значениях, например, в

цикле.

Замечание. Выполнение оператора DRAW возможно только в гра-

фическом режиме (переход при помощи оператора SCREEN).

4.2. Операторы GET и PUT

Операторы GET и PUT позволяют создавать движущиеся изображе-

ния.

При выполнении оператора GET текущее состояние части экрана

запоминается. При выполнении оператора PUT изображение, сохранен-

ное оператором GET, воспроизводится в другом указанном месте эк-

рана, т.е. изображение как бы движется.

Оператор GET запоминает изображение заданной области экрана в

массиве, который должен быть заранее описан. Оператор GET имеет

вид

- 28 -

GET (x1, y1) - (x2, y2), B

(x1, y1), (x2, y2) определяют верхнюю левую и нижнюю правую гра-

ницы запоминаемой области, B - имя числового массива, в котором

сохраняется копия этой части экрана.

Существует формула, определяющая требуемую длину массива (в

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее