Для закрытия файлов применяется оператор
CLOSE # номер_файла
Если номер файла в операторе CLOSE указан, то будет закрыт именно этот, вполне определенный файл. Если же номер не указан, будут закрыты все открытые файлы.
Чтение из файла
Чтение из файла производится аналогично записи, но — вместо режима output используется режим input. Прочитаем занесенные нами данные из файла avto.dat.
REM Программа чтения файла данных об автомобилях
CLS
INPUT " Введите имя файла"; F$
' Открытие файла
OPEN F$ FOR INPUT AS #1
PRINT "База данных автомобилей на 17 декабря 2000 года"
I=1
DO
PRINT "Вывести данные об"; I; "автомобиле?"
INPUT "Для окончания введите QWE, для продолжения -<Enter>"; M$
IF UCASE$(M$)="QWE" OR UCASE$(М$)="ЙЦУ" THEN 1
INPUT #1, M$, N$, C$, G$, S$
PRINT M$, N$, C$, G$, S$
I=I+1
LOOP UNTIL EOF(1)
' Закрытие файла
1 : close #1
PRINT "Файл закрыт"
Оператор loop until eof(1) . Означает, что считывание ведется до тех пор, пока не будет обнаружен символ конца файла (end of file), а в скобках указан номер открытого файла.
Изменения данных в файле
Для изменения какой-либо записи, удаления старых или добавления новых данных в последовательном файле необходимо открыть два файла: подлежащий изменению и новый, в котором создается обновленная версия исходного файла. Старый файл в дальнейшем можно удалить.
Приведенная ниже программа в файле avto.dat изменяет "МОСКВИЧ" на "МЕРСЕДЕС". В первых строках открываются исходный файл avto.dat и новый файл avto2.dat, сначала пустой. Очередная запись считывается из файла avto.dat и, при условии, что это не "МОСКВИЧ", переписывается без изменения в новый файл. Если же встречается значение "МОСКВИЧ", то оно заменяется на "МЕРСЕДЕС" путем присваивания нового значения переменной м$. В следующей. Строке данное значение попадает в выходной файл. После того как весь входной файл просмотрен, оба файла закрываются.
OPEN "avto.dat" FOR INPUT AS #1
OPEN "avto2.dat" FOR OUTPUT AS #2
FOR i=1 TO 5
INPUT #1, M$, N$, C$, G$, S$
IF UCASE$(M$)-"МОСКВИЧ" THEN М$-"МЕРСЕДЕС"
PRINT 12, M$, N$, C$, G$, S$
NEXT i
CLOSE 1, 2
KILL "avto.dat"
NAME "avto2.dat" AS "avto.dat"
END
Заключительный этап — удаление исходного и переименование нового файла, которому придается прежнее имя, что обеспечивает и в дальнейшем наличие на дискете файла avto.dat.
Добавление данных в файл
Указание for append в операторе open подготавливает файл для вывода данных и смещает указатель на конец файла. Последующие операторы приписывают новую информацию к уже имеющейся. В предложенной далее программе в файл данных об автомобилях добавляются сведения о двух новых поступлениях.
REM Программа создания файла данных об автомобилях
CLS
INPUT " Введите имя файла"; F$
REM Открытие файла
OPEN F$ FOR APPEND AS 1
DO
INPUT "Марка автомобиля? (Для окончания работы введите QWE.); М$
IF UCASE$(M$)="QWE" OR UCASE$(М$)="ЙЦУ" THEN 1
INPUT "Номер автомобиля?"; N$
INPUT "Цвет автомобиля?"; С$
INPUT "Год производства автомобиля?"; G$
INPUT "Продажная цена автомобиля?"; S$
WRITE #1, М$, N$, C$, G$, S$
LOOP
REM Закрытие файла 1
CLOSE #1
PRINT "Файл дополнен"'
Порядок выполнения работы
1. Получить у преподавателя вариант задания.
2. Написать программу на Qbasic.
3. Отладить программу.
4. Пполучить результат.
5. Проанализировать полученный результат.
Содержание отчета
1. Содержательная постановка задачи.
2. Исходные данные.
3. Краткие теоретические данные.
4. Блок схема программы.
5. Листинг программы.
6. Распечатка полученных результатов.
Задание
1. Составить программу создания файла данных МАГАЗИН
(не менее 10 записей), каждая запись которого содержит следующие поля:
· Название товара
· Страна изготовитель
· Дата изготовления
· Срок годности (истек или нет, yes/no)
· Стоимость товара
2. Составить программу вывода на экран в табличной форме всех записей файла, и записей наименований товаров, срок годности которых не истек, найти самый дешевый товар, вывести его название и стоимость.
Пример решения задачи
· Зададим имя файла данных - magasin.txt
· Опишем переменные:
Название товара - name$
Страна изготовитель - ctrana$
Дата изготовления - den
Срок годности (истек или нет, yes/no) - god$
Стоимость товара - manu
ПРОГРАММА НА ЯЗЫКЕ QBasic
CLS
OPEN "magasin.txt" FOR OUTPUT AS #1
CLS
FOR i = 1 TO 10
INPUT " Название "; name$
INPUT " Страна изготовитель "; ctrana$
INPUT " год изготовления "; den
INPUT " годность yes/no: "; god$
INPUT " стоимость "; manu
WRITE #1, name$, ctrana$, den, god$, manu
NEXT i
CLOSE #1
PRINT "МАГАЗИН"
PRINT "------------------------------------------------------------------------------------"
PRINT "Название Страна изготовитель Дата Годность yes/no Стоимость"
OPEN "magasin.txt" FOR INPUT AS #1
DO WHILE NOT EOF(1)
INPUT #1, name$, ctrana$, den, god$, manu
PRINT name$, " "; ctrana$, den; " ", god$; " ", manu
LOOP
CLOSE #1
PRINT "------------------------------------------------------------------------------------"
min = 10 ^ 10
OPEN "magasin.txt" FOR INPUT AS #1
PRINT "Товары со сроком годности yes"
DO WHILE NOT EOF(1)
INPUT #1, name$, ctrana$, den, god$, manu
IF manu <= min THEN
nas1$ = name$: ctrana1$ = ctrana$: god1$ = god$: min = manu
END IF
IF god$ = "yes" THEN
PRINT TAB(10); name$;
PRINT TAB(20); ctrana$; " "; den; " "; god$; " "; manu
END IF
LOOP
CLOSE #1
PRINT "------------------------------------------------------------------------------------"
PRINT "Дешевый товар и его стоимость "
PRINT nas1$, min; "pyb", ctrana1$
END
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ
Созданный файл данных magasin.txt из 10 записей рисунок 11.
Рисунок 11.
Контрольные вопросы
1. Что такое файл?
2. Какие требования к имени файла?
3. Что такое расширение файла?
4. Что можно хранить в файлах?
5. Какие файлы в соответствии со способом доступа Вы знаете?
6. В чем отличие файла прямого доступа от последовательного?
7. Перечислите операции с файлами?
8. Как осуществляется открытие файла?
9. Перечислите режимы работы с файлами?
10. Как осуществляется запись в файл?
11. Как осуществляется чтение из файла?
12. Что используется в качестве параметра «имя файла»?
13. Какой оператор используется для закрытия файла?
14. Какими операторами производятся запись в файл?
15. Каком образом можно изменить данные в файле?
16. Как осуществляется добавление данных в файл?
17. В каком случае используется функция EOF(1)?
Варианты заданий к лабораторной работе
Вариант № 1.
1. Составить программу создания файла данных СКЛАД (не менее 10 записей), каждая запись которого содержит следующие поля:
• наименование товара;
• количество;
• стоимость за единицу;
• наличие на складе (да /нет).
2.Составить программу вывода на экран в табличной форме всех записей файла базы, и записей наименований товаров, количество которых превосходит 1000 и стоимость за единицы меньше 1000 руб.
Вариант № 2.
1. Составить программу создания файла данных ЗООПАРК (не менее 10 записей), каждая запись которого содержит следующие поля:
• вид животного;
• дата рождения;
• вес;
• является ли хищником (да / нет).
2.Составить программу вывода на экран в табличной форме всех записей файла базы данных, и записей видов животных, являющихся хищниками, вес которых превышает 150кг.
Вариант № 3.
1. Составить программу создания файла данных АВТОПАРК (не менее 10 записей), каждая запись которого содержит следующие поля:
• марка автомобиля;
• мощность двигателя;
• пробег;
• был ли в кап. ремонте (да / нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных, и записей марок автомобилей, которые не на ремонте и пробег которых более 100000 км.
Вариант № 4.
1. Составить программу создания файла данных БИБЛИОТЕКА (не менее 10 записей), каждая запись которого содержит следующие поля:
• автор;
• название;
• издательство;
• количество изданий;
• пользуется ли спросом (да / нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных, и записей, в которых содержится информация об авторах, количество изданий которых превышает 10000 и вышедших в
издательстве Вариус.
Вариант № 5.
1. Составить программу создания файла данных КОМПЬЮТЕРЫ(не
менее 10 записей), каждая запись которого содержит следующие поля:
• тип процессора;
• объем RAM;
• объем HDD;
• цветной ли монитор (да / нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных, компьютеров имеющих цветной монитор и объем HDD превышающий 50 Gb.
Вариант № 6.
1. Составить программу создания файла данных ПРИНТЕРЫ(не менее 10 записей), каждая запись которого содержит следующие поля:
• название фирмы;
• марка;
• характеристика (матричный, струйный, лазерный...);
• цветной (да/нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных, и записей содержащих название фирм, выпускающих лазерные, цветные принтеры.
Вариант № 7.
1. Составить программу создания файла данных СУПЕРМАРКЕТ(не
менее 10 записей), каждая запись которого содержит следующие поля:
• наименование товара;
• цена;
• количество на складе;
• отечественного производства (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных, отдельно записей, содержащий наименование товаров отечественного производства, не превышающих 200руб.
Вариант № 8.
1. Составить программу создания файла данных АВТОЗАПЧАСТИ(не
менее 10 записей), каждая запись которого содержит следующие поля:
• наименование запасной части;
• цена;
• марка автомобиля;
• отечественного производства (да/нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных, а так же записей, содержащих наименование запасных частей отечественного производства, ценно которых не превышает 500руб.
В следующих вариантах выполнить задание вывода на экран всех записей, а так же составить запрос на вывод (и вывести на экран) по двум условиям (см. вариант 1-8).
Вариант № 9.
1.Составить программу создания файла данных ГРУППА (не менее 10
записей), каждая запись которого содержит следующие поля:
• фамилия и инициалы;
• год рождения;
• телефон;
• изучал ли ранее английский язык (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 10.
1. Составить программу создания файла данных МЕБЕЛЬ (не менее 10
записей), каждая запись которого содержит следующие поля:
• наименование;
• размеры;
• цвет;
• цена.
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 11.
1.Составить программу создания файла данных КОСМЕТИКА (не менее 10 записей), каждая запись которого содержит следующие поля:
• название фирмы или торговая марка;
• предназначение;
• цена;
• импортный товар (да/нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант №12.
1. Составить программу создания файла данных ДЕНДРАРИЙ (не менее 10 записей), каждая запись которого содержит следующие поля:
• вид растения;
• возраст;
• страна произрастания;
• холодостойкость (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант №13.
1. Составить программу создания файла данных АТТРАКЦИОНЫ (не
менее 10 записей), каждая запись которого содержит следующие поля:
· название аттракциона;
· цена билета;
· количество мест;
· допуск детей до 16 лет (да/нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 14.
1. Составить программу создания файла данныхТЕАТРЫ (не менее 10
записей), каждая запись которого содержит следующие поля:
· название;
· количество мест;
· средняя цена билета;
· есть ли утренние спектакли (да/нет).
1.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 15.
1. Составить программу создания файла данных ОДЕЖДА (не менее 10
записей), каждая запись которого содержит следующие поля:
· наименование;
· размер;
· цена;
· импортного производства (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант №16.
1. Составить программу создания файла данных КОМПЬЮТЕРНЫЕ
ИГРЫ(не менее 10 записей), каждая запись которого содержит следующие поля:
· название;
· фирма-создатель;
· год выпуска;
· требуется ли RAM свыше 1 Mb (да/нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 17.
1. Составить программу создания файла данных ХИТ-ПАРАД(не менее 10 записей), каждая запись которого содержит следующие поля:
· название группы;
· солист;
· месяц и год выпуска последнего альбома;
· имеется ли в свободной продаже последний альбом (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 18.
1.Составить программу создания файла данных ВИДЕОТЕКА(не менее 10 записей), каждая запись которого содержит следующие поля:
• название фильма;
• год выпуска;
• краткая характеристика;
• допускается ли просмотр детьми до 16 лет (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 19.
1.Составить программу создания файла данных ГАЗЕТЫ(не менее 10 записей), каждая запись которого содержит следующие поля:
• название;
• тираж;
• цена подписки;
• выходит ежедневно (да/нет).
2. Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 20.
1.Составить программу создания файла данных ЖУРНАЛЫ (не менее 10 записей), каждая запись которого содержит следующие поля:
• название;
• цена подписки на год;
• количество листов;
• ежемесячный (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант №21.
1. Составить программу создания файла данных АПТЕКА (не менее 10
записей), каждая запись которого содержит следующие поля:
• наименование лекарства;
• цена;
• срок годности;
• импортное (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 22.
1. Составить программу создания файла данных БИРЖА ТРУДА (не менее 10 записей), каждая запись которого содержит следующие поля:
• профессия;
• стаж работы;
• ограничение по возрасту (не старше …);
• необходимое владение компьютером (да/нет)
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 23.
1. Составить программу создания файла данных РЕКИ МИРА (не менее 10 записей), каждая запись которого содержит следующие поля:
• название;
• континент;
• протяженность;
• впадает ли в океан (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 24.
1. Составить программу создания файла данных САД И ОГОРОД (не
менее 10 записей), каждая запись которого содержит следующие поля:
• название растения;
• сорт;
• возраст;
• многолетнее (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 25.
1.Составить программу создания файла данныхМЕНЮ (не менее 10
записей), каждая запись которого содержит следующие поля:
• название блюда:
• вес одной порции;
• цена;
• дежурное (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 26.
1. Составить программу создания файла данных ПОЛИКЛИНИКА (не
менее 10 записей), каждая запись которого содержит следующие поля:
• фамилия и инициалы врача;
• специальность;
• дни приема;
• нужна ли предварительная запись (да/нет).
1.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 27.
1. Составить программу создания файла данных МУЛЬТФИЛЬМЫ (не
менее 10 записей), каждая запись которого содержит следующие поля:
• название;
• год выпуска;
• продолжительность;
• рисованный или кукольный (да/нет).
1.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 28.
1.Составить программу создания файла данных УЧЕБНЫЙ ПЛАН (не
менее 10 записей), каждая запись которого содержит следующие поля:
• дисциплина;
• преподаватель;
• количество часов в неделю;
• есть ли лабораторные работы (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 29.
1.Составить программу создания файла данных ГОРОДА (не менее 10
записей), каждая запись которого содержит следующие поля:
• название;
• страна;
• количество жителей;
• является ли столицей (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Вариант № 30.
1.Составить программу создания файла данных ТУРБЮРО (не менее 10записей), каждая запись которого содержит следующие поля:
• название курорта;
• количество дней;
• цена путёвки;
• входит ли питание в цену (да/нет).
2.Составить программу вывода на экран в табличной форме всех записей файла данных.
Список литературы
1 Банди Б. Методы оптимизации. Вводный курс. – М.: Радио и связь, 1988.
2 Бахвалов Н.С. Численные методы : Численные методы/ Н.С.Бахвалов, ¾ М.: Наука, 1973. ¾ 630с.
3 Василькова Ю.В., Васильков Н.Н. Компьютерные технологии вычислений. – М.: Финансы и статистика, 2002 – 256 с.
4 Воробьёв Г.Н., Данилова А.Н. Практикум по численным методам: практикум по численным методам/ Воробьёв Г.Н., Данилова А.Н., ¾ М.: Высшая школа, 1979. ¾ 184с.
5 Гусева А.И. Учимся информатики: задачи и методы решения. – М.: Диалог-МИФИ, 1998 – 320 с.
6 Дьяконов В.П. Справочник по применению системы Eureka. – М.: Наука, 1993.
7 Конопленко Е.И Учебное пособие по курсу «Информатика»: учебное пособие по курсу «Информатика» ¾ М.: Издательский комплекс МГУПП, 2005 ¾ 102 с.
8 Сафонов И. Бейсик в задачах и примерах: бейсик в задачах и примерах/ Сафонов И., ¾ СПБ. БХВ, 2001. ¾ 224с.
9 Уайлд Д.Дж. Методы поиска экстремума. – М.: Наука, 1967.