Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаБобарыкинаИнформатика.doc
Скачиваний:
65
Добавлен:
03.05.2015
Размер:
8.84 Mб
Скачать

4.4. Задания к лабораторной работе.

1. ;

2. ;

3. ;

4. ;

5. ;

6. ;

7. ;

8. ;

10. ;

11. ;

12. ;

    1. Лабораторная работа № 5 (C:\USER\GROUP\NOF\lab5.bas)

Файлы ПРЯМОГО И ПОСЛЕДОВАТЕЛЬНОГО ДОСТУПА

5.1. Цель работы. Получить практические навыки работы с файлами прямого и последовательного доступа.

5.2. Справочный материал. На внешних носителях информация хранится в файлах. В зависимости от способа доступа к ним различают файлы прямого и последовательного доступа. При последовательном доступе приходится просматривать все записи, предшествующие искомой. В файлах с прямым доступом записи имеют порядковый номер, которому операционная система ставит в соответствие адрес. Доступ к этому адресу прямой и в качестве внешних носителей используются диски или дискеты. В BASIC’е работа с файлом начинается с его открытия опратором OPEN:

OPEN файл [FOR тип] [ACCESS доступ] AS [#] номер [LEN= длина],

где

файл - символьное выражение, определяющее имя файла или устройства;

Тип

Описание

OUTPUT

определяет последовательный вывод

INPUT

определяет последовательный ввод

APPEND

определяет последовательный вывод с добавлением

RANDOM

определяет прямой ввод/вывод (умалчиваемый)

BINARY

определяет двоичный ввод/вывод

Доступ

Описание

READ

только для чтения

WRITE

только для записи

READ/ WRITE

чтение и запись

номер - целое выражение от 1 до 255, номер файла;

длина - длина записи, по умолчанию равна 128 байтам для файлов прямого доступа и 512 для файлов последовательного.

Заканчивается работа с файлом оператором CLOSE :

CLOSE номер [I, 1, 3-6].

5.3. Пример. Проиллюстрировать использование файлов можно на предыдущих программах, записав результат в файл последовательного доступа (работа № 7):

Input “X m h “ ; X , m% , h

OPEN “result” FOR OUTPUT AS #1

s = 0

FOR n% = 1 TO m% STEP h

t = x + n%

y = ( x + t) / ( t* SQR( n%+1))

s = s + y

NEXT n%

PRINT s

WRITE #1, “s = “, s

CLOSE #1

END

На файле с последовательным доступом можно организовать простую базу данных:

OPEN “товар” FOR OUTPUT AS #3

INPUT “ имя товара :”,it$

WHILE it$ <> “zzz”

INPUT “код и цена”, cod$, price$

WRITE #3, it$, cod$, price$

INPUT “имя товара :“, it$

WEND

CLOSE #3

END

Здесь использован неопределённый цикл WHILE . . . WEND, цикл по условию, который повторяет выполнение операторов тела цикла пока имя товара “it$” не равно “zzz”.

Эту же задачу можно реализовать с файлом прямого доступа:

TYPE buf описание пользовательского типа данных,

goods AS STRING *25 имеющего смысл записи в файл. Этому типу

code AS STRING *10 присвоено имя buf и в нём определены поля

price AS SINGLE записи

END TYPE

CLS очистка экрана

DIM recb AS buf описаниие переменной recb как записи buf

OPENgoods.dbFOR RANDOM AS #1 открытие файла прямого доступ

INPUTgoods :”,goods$ ввод наименования товара

WHILE goods$ <> “zzz” пока goods$  “zzz”

INPUT “code , price”, code$,price$ ввод кода товара и цены

I = I + 1 увеличение номера записи

recb.goods = goods$ присвоение полям записи

recb.code = code$ соответствующих значений

recb.price = price переменных

PUT #1 , I , recb передача записи в файл

INPUTgoods :”,goods$ ввод след. наимен. товара

WEND конец цикла

CLOSE #1 закрытие файла

END конец программы

5.4. В качестве задания составьте программу “Записная книжка” в файле прямого доступа с тремя полями: имя, адрес, телефон.

    1. Лабораторная работа № 6 (C:\USER\GROUP\NOF\lab6.bas)