Дополнительные возможности языка Basic.
18.10.1 Работа с файлами.
Информация, вводимая с клавиатуры или обрабатываемая с помощью программных средств Бейсика, размещается в оперативной памяти компьютера, которая является энергозависимой, и, как только мы выключим питание, вся наша информация погибнет. Для этого необходимо сохранять информацию на диске в виде файлов.
Файл – это поименованная область на диске, т.е. имеющая имя. В файлах могут содержаться тексты, графические и видеоизображения, звуки и музыка, таблицы и базы данных и многое другое.
имя файла имеет некоторые ограничения:
- имя не должно быть более чем из 8 символов;
- имя может состоять из букв латинского алфавита, цифр и символов, например _ , - , $.
- в имени файла запрещено использовать символы, точка, запятая, кавычки, двоеточие.
У файла также есть расширение имени. Оно имеет длину не более 3 символов, и указывается через точку после имени. Расширение имени характеризует тип файла. Так, например язык Бейсика автоматически при сохранении файла добавляет к имени файла расширение bas, что упрощает поиск написанных нами программ и работу ними.
Для того чтобы сохранить свои файлы и результаты работы с ними на диске, лучше завести свой личный каталог (или папку – это одно и тоже).
Для работы в Бейсике нам чаще нужны файлы, хранящие однородные по типу или структуре сведения о каких-либо объектах. Набор данных о каком-либо одном объекте называется записью.
За самой последней записью в файле находится невидимый символ конца файла, который устанавливается автоматически системой ввода/вывода. Файл может быть пустым, т.е. содержать 0 байт информации, но имя файла и символ конца файла будут присутствовать всегда, таков закон. В соответствии со способом доступа к файлам они делятся на два вида:
- последовательный доступ;
- прямой доступ.
11.11.1. Файлы последовательного доступа наиболее просты, как в организации, так и в работе с ними. Записи обрабатываются последовательно одна за другой. Информация в таких файлах хранится в виде текста в кодах ASCII. Подобные файлы легко просмотреть на экране, используя любой простейший редактор. Но как всегда, у каждой модели две стороны. Простота – хорошо, а последовательность в данном случае – плохо. Если информация об интересуемом объекте упорядочена по алфавиту, то потребуется всякий раз перебирать практически весь файл, чтобы добраться до нужной записи. Отсюда, при большом информационном объёме файла обработка его резко замедляется.
18.10.2. Файлы прямого доступа хранят информацию в специальном формате, в котором каждая запись занимает строго фиксированную одинаковую с остальными записями длину. То, что такие файлы могут занимать на диске больше места, чем файлы последовательного доступа, с лихвой окупается высокой скоростью работы с ними.
18.10.3. Операции над файлами.
Независимо от того, какие действия мы проделываем с информацией, хранящейся в файле, мы должны будем производить следующие обязательные операции:
- открытие файла;
- чтение и запись обрабатываемых данных;
- закрытие файла.
При этом следует учитывать следующее. Нельзя одновременно пытаться читать и записывать в открытый файл. Сначала надо открыть файл для чтения, прочитать нужную информацию, обработать её и закрыть файл. Потом открыть файл для записи, записать туда результаты обработки и закрыть файл.
18.10.4. Открытие файла.
Для открытия файла предназначен оператор OPEN, имеющий следующий формат:
OPEN _ имя _ файла _ FOR _ режим AS# Номер файла, где имя файла это имя подчиняющееся правилам для имени; режим определяет способ доступа к файлу. Возможны следующие режимы:
§ INPUT – это режим чтения информации из файла;
§ OUTPUT – режим записи информации в файл;
§ APPEND – режим добавления информации в файл. Новая информация будет размещена в конце файла за последней записью.
Номер файла предваряется необязательным знаком # за которым следует целое число от 1 до 255.
18.10.5. Запись в файл.
Рассмотрим пример записи в файл.
10 REM ЗАПИСЬ В ФАЙЛ
20 OPEN “CAPITALS.bas” FOR OUTPUT AS #1
30 FOR x=1 TO 5
40 INPUT “Введите название столицы”; F$
50 PRINT #1, F$ : REM Запись текстового файла
60 NEXT x
70 CLOSE #1
80 END
В результате работы программы мы получили:
ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? Москва
… ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? Санкт-Петербург
ВВЕДИТЕ НАЗВАНИЕ СТОЛИЦЫ? Вильнюс
При этом на диске в текстовом каталоге образуется файл с именем capitals.dat, содержащий пять строковых значений. После ключевого слова AS указывается номер файла и имеющий уникальный номер в диапазоне от 1 до 255. Больше открывать файл с номером 1 в этой программе нельзя.
Рассмотрим ещё пример. Надо составить БД автомобилей для продажи. О каждом автомобиле заполнится информация о его марке, номере, цвете, годе выпуска и продажной цене.
10 REM БАЗА ДАННЫХ АВТОМОБИЛЕЙ
20 INPUT ”ВВЕДИТЕ ИМЯ ФАЙЛА”; F$
30 OPEN F$ FOR OUTPUT AS #1
40 DO
50 INPUT ”МАРКА АВТОМОБИЛЯ=” ; M$
60 IF UCASE$(M$)=”EOF” THEN GOTO 140
70 INPUT ”НОМЕР АВТОМОБИЛЯ=”; N$
80 INPUT ”ЦВЕТ АВТОМОБИЛЯ”; C$
90 INPUT ”ГОД ПРОИЗВОДСТВА АВТОМОБИЛЯ?”; G$
100 INPUT ”ПРОДАЖНАЯ ЦЕНА АВТОМОБИЛЯ”; S$
110 WRITE #1, M$, N$, C$, G$, S$
120 LOOP
130 REM ЗАКРЫТИЕ ФАЙЛА
140 CLOSE #1
150 PRINT «Файл сформирован»
Наберите эту программу с именем создаваемого файла AVTO.dat. Занесите сведения о пяти автомобилях: двух «Москвичах» и трёх «Волгах». Просмотрите этот файл в редакторе Бейсика.
18.10.6. Чтение из файла.
Чтение из файла производится аналогично записи, но – вместо режима OUTPUT используется режим INPUT. Попытаемся теперь прочесть созданный нами файл AVTO.dat.
10 REM Чтение файла AVTO.dat
20 INPUT «Введите имя файла»; F$
30 REM Открытие файла
40 OPEN F$ FOR INPUT AS #1
50 PRINT «База данных автомобилей»
60 I = 1
70 DO
80 PRINT «вывести данные об»; I; «автомобиле?»
90 INPUT «Для окончания введите QWE, для продолжения - <Enter>»; M$
100 IF UCASE$(M$)=”QWE” OR UCASE$(M$)=”ЙЦУ” THEN GOTO 1
110 INPUT #1, M$, N$, C$, G$, S$
120 PRINT M$, N$, C$, G$, S$
130 I =I+1
140 LOOP UNTIL EOF(1)
150 REM ЗАКРЫТИЕ ФАЙЛА
160 1: CLOSE #1
170 PRINT «Файл закрыт»
Оператор DO … LOOP повторяет блок операторов, пока целое верно, или
{цикл} пока оно не станет верным.
Оператор DO … LOOP является альтернативой операторам FOR … NEXT и повторяется цикл до тех пор. пока условие не станет либо истинным, либо ложным. Существует пять вариантов этого цикла:
DO {повторяется до тех пор, пока не встретится оператор
statements Exit DO или пользователь не нажмёт Ctrl-Break}
LOOP
18.10.7. Изменение данных в файле.
Для изменения какой-либо записи, удаления старых или добавления новых данных в последовательном файле необходимо открыть два файла: подлежащий изменению и новый, в котором создаётся обновлённая версия исходного файла. Старый файл в дальнейшем можно удалить. В приведённой ниже программе в файле AVTO.bas название «Москвич» изменяется на «Мерседес». Для этого открываются два файла AVTO.bas и новый пустой файл AVTO2.bas. Очередная запись из файла AVTO.bas считывается и если это не Москвич, то переписывается в AVTO2.bas. Если имя Москвич, то оно заменяется на Мерседес, путём присвоения переменной M$ нового значения. После того, как весь файл просмотрен, оба файла закрываются. Старый файл удаляется, а новый переименовывается.
Ниже представлена программа.
OPEN «AVTO.bas» FOR INPUT AS #1
OPEN «AVTO2.bas» FOR OUTPUT AS #2
FOR I = 1 TO 5
INPUT #1, M$, N$, C$, G$, S$
IF UCASE$(M$)=”Москвич” THEN M$=(Мерседес)
WRITE #2, M$, N$, C$, G$, S$
NEXT I
CLOSE 1,2
KILL «AVTO.bas» : REM - УДАЛИТЬ
NAME «AVTO2.bas» AS «AVTO.bas» : REM - Переименовать
END
18.10.8. добавление данных в файл.
Указание FOR APPENED в операторе OPEN подготавливает файл для вывода данных и смещает указатель на конец файла. Последующие операторы приписывают новую информацию к уже имеющейся. В предложенной ниже программе в файл данных об автомобилях добавляются сведения о двух новых поступлениях.
10 REM Создание файла данных об автомобилях
20 INPUT ”Введите имя файла”; F$
30 REM Открытие файла
40 OPEN F$ FOR APPEND AS #1
50 DO
60 INPUT ”Марка автомобиля?”, M$
70 IF UCASE$(M$)=”QWE” OR UCASE$(M$)=”ЙЦУ” THEN 140
80 INPUT ”НОМЕР АВТОМОБИЛЯ=”; N$
90 INPUT ”ЦВЕТ АВТОМОБИЛЯ”; C$
100 INPUT ”ГОД ПРОИЗВОДСТВА АВТОМОБИЛЯ?”; G$
110 INPUT ”ПРОДАЖНАЯ ЦЕНА АВТОМОБИЛЯ”; S$
120 WRITE #1, M$, N$, C$, G$, S$
130 LOOP
140 REM ЗАКРЫТИЕ ФАЙЛА
150 CLOSE #1
160 PRINT «Файл дополнен»
170 END
Вопросы к лекции
1. Что входит в алфавит языка Бейсик?
2. Что называется словарем Бейсик?
3. Что такое программа на алгоритмическом языке?
4. Что такое синтаксис алгоритмического языка?
5. Перечислите основные пять правил по оформлению программ на языке Бейсик.
6. Данные каких трех типов обрабатывает Бейсик?
7. Дать определение идентификатора.
8. Какое правило существует для записи идентификатора числовой переменной?
9. Для чего в Бейсик используется оператор DIM и какова его структура?
10. Какое правило существует для записи идентификатора символьной переменной?
11. Для чего предназначен оператор «Присваивание» в Бейсик и какова его структура?
12. Каким оператором Бейсик можно ввести данные в оперативную память и какова его структура?
13. Каким оператором Бейсик можно вывести данные из оперативной памяти компьютера и какова его структура?
14. Какие операторы Бейсик изменяют направление вычисления в программе и какова его структура?
15. Для чего применяется оператор цикла в Бейсик и какова его структура?
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Основная литература:
1. Острейковский В.А. Информатика, М., "Высшая школа", 1999.
2. Фигурнов В.Э. ШМ РС для пользователя, М., ИНФРА-М. 1999.
3. Гук М. Аппаратные средства РС. Энциклопедия, СПБ, 1999.
4. Новейший самоучитель работы на компьютере. Под ред. Симоновича С.В., М.,1999.
5. Роберт ИВ. Современные информационные и коммуникационные технологии в системе среднего профессионального образования, М., НМД СПО, 1999.
6. Бобровский С. Программирование на языке ОВаэдс для школьников и студентов, М., Инфорком-Пресс, 1999. Каймин В.А. Информатика, М., ИНФРА-М, 2000. Информатика. Базовый курс. Под ред. Симонович СВ., СПБ, 2000.
7. Шафрин Ю.А. Основы компьютерной технологии. Учебное пособие для 7-11 классов по курсу «Информатика и вычислительная техника».-М.:ABF, 1996.
8. Фигурнов В.Э. IBM PC для пользователя. Изд. 7-е перераб. и доп.-М.: ИНФРА-М,1996.
9. Левин А.С. Самоучитель работы на компьютере. Изд.3-е-М.: Международное агентство A.D.&T., 1996.
Дополнительная
1. Борланд Р. Знакомство Windows 98, М.,
2. Борланд Р. Эффективная работа Windows 98 , СПБ, 1998.
3. Степанов К.Е. Практикум по информатике, М., НМЦ СПО, 1999.
Дата добавления: 2015-08-14; просмотров: 841;