- •5.5.2. Стандартные функции для данных типа char
- •5.5.3. Определение переменных строкового типа. Особенности типа string
- •5.5.4. Строковые выражения
- •5.5.5. Строковые процедуры и функции
- •5.6. Пример программы
- •5.7. Варианты заданий
- •5.8. Содержание отчета (см. П. 1.10)
- •5.9. Контрольные вопросы
- •6.4. Порядок выполнения работы
- •5. Устно ответить на контрольные вопросы (п.6.9).
- •6. Оформить отчет (см. П. 1.10).
- •6.5. Справки по структуре и операторам Pascal-программы, использующей пользовательские процедуры и функции
- •6.5.1. Описание процедуры. Оператор процедуры
- •Структура описания процедуры
- •6.5.2. Описание функции. Указатель функции
- •6.5.3. Локализация имен в Turbo Pascal
- •6.6. Варианты заданий
- •6.7. Содержание отчета (см. П. 1.10)
- •6.8. Контрольные вопросы
- •5. Устно ответить на контрольные вопросы (п. 7.9).
- •6. Оформить отчет (см. П. 1.10).
- •7.5. Справки по файловым процедурам и функциям
- •7.5.1. Описание файловых переменных
- •7.5.2. Установочные и завершающие операции с файлами
- •7.5.3. Операции ввода-вывода
- •7.5.4. Операции перемещения по файлу, определение параметров файла
- •7.5.5. Обработка ошибок ввода-вывода
- •7.5.6. Текстовые файлы
- •7.6. Пример структуры программы
- •7.7. Варианты заданий
- •7.8. Содержание отчета (см. П. 1.10)
- •7.9. Контрольные вопросы
- •Основная литература
- •Дополнительная литература
- •Приложение. Титульный лист
- •Отчет о лабораторных работах по дисциплине «Информатика и программирование»
7.6. Пример структуры программы
program file_operation; {Программа для работы со списком сотрудников}
uses crt;
type
zap=record {Определение записи с полями «фамилия» - name, «тарифная ставка» - tarif}
name:string[15];
tarif:LongInt
end;
var
F1: file of zap;
s : zap; c : char;
procedure out_fil; {Процедура сохранения данных в файле}
var file_name : string;
begin
..... {Задание имени файла для сохранения}
assign(F1, file_name);
... {Открытие файла для записи и контроль ошибок при выполнении этой операции}
repeat
write(‘Введите фамилию или * (признак окончания ввода ‘);
readln(s.name);
if s.name <> ‘*’ then
begin
writeln(‘Введите тариф’);
readln(s.tarif);
write(F1,s)
end
until s.name = ‘*’;
close(F1)
end;
procedure IN_fil; {Процедура чтения данных из файла и вывода на экран}
var file_name : string;
begin
... {Задание имени файла для чтения}
assign(F1, file_name);
... {Открытие файла для чтения и контроль ошибок при
выполнении этой операции}
writeln(‘------ Список ... -------‘); {Заголовок списка}
repeat {Цикл чтения данных из файла и вывода на экран}
read(F1,s);
writeln(s.name, ‘ ‘,s.tarif)
until Eof(F1);
close(F1)
end;
begin { ---- Начало головной части программы ----}
repeat { Цикл сохранения данных. Если при каждом обращении к процедуре Out_fil задавать разные имена файлов, то этот
цикл позволит сохранить несколько списков; каждый список в своем файле}
clrscr;
Out_fil;
writeln(‘Закончить ввод списков ? (Y/N)’); readln;
until (c = ‘Y’) or (c=’y’);
repeat { Цикл чтения данных. Этот вариант позволяет просмотреть списки из разных файлов, имена которых задаются при каждом обращении к процедуре In_fil}
clrscr;
In_fil;
writeln(‘Закончить просмотр списков ? (Y/N)’); readln(с);
until (c = ‘Y’) or (c=’y’);
end. {Окончание программы}
7.7. Варианты заданий
Таблица 7.1
№ варианта |
Тип данных (табл. 7..2) |
Задание имени файла (табл. 7.3) |
Сообщение об ошибках (табл. 7.4) |
Последовательность операций над данными (табл. 7.5) |
1 |
1 2 |
1 2 |
2 1 |
1 2 |
2 |
1 2 |
2 1 |
1 2 |
3 4 |
3 |
1 3 |
1 2 |
2 1 |
1 2 |
4 |
1 4 |
1 2 |
2 1 |
3 4 |
5 |
2 4 |
1 2 |
1 2 |
1 2 |
6 |
2 4 |
2 1 |
2 1 |
3 4 |
7 |
2 5 |
1 2 |
1 2 |
1 2 |
8 |
2 5 |
2 1 |
2 1 |
3 4 |
9 |
2 6 |
1 2 |
1 2 |
1 2 |
10 |
2 6 |
2 1 |
1 2 |
3 4 |
11 |
2 7 |
1 2 |
2 1 |
1 2 |
12 |
2 7 |
2 1 |
2 1 |
3 4 |
13 |
1 2 |
2 1 |
2 1 |
4 3 |
14 |
1 3 |
1 2 |
2 1 |
2 1 |
15 |
2 8 |
1 2 |
1 2 |
1 2 |
16 |
3 4 |
2 1 |
2 1 |
3 4 |
17 |
3 5 |
1 2 |
1 2 |
1 2 |
18 |
3 6 |
2 2 |
1 2 |
3 4 |
19 |
3 7 |
1 2 |
1 2 |
1 2 |
20 |
3 8 |
2 1 |
1 2 |
3 4 |
Таблица 7.2
№ варианта |
Тип данных в файле |
1 |
Текст |
2 |
Вещественные числа |
3 |
Целые числа |
4 |
Записи со структурой табл. 7.6 |
5 |
Записи со структурой табл. 7.7 |
6 |
Записи со структурой табл. 7.8 |
7 |
Записи со структурой табл. 7.9 |
8 |
Записи со структурой табл. 7.10 |
Таблица 7.3 Таблица 7.4
№ варианта |
Вариант задания имени файла |
|
№ варианта |
Вариант вывода сообщений об ошибках |
1 |
Ввод с клавиатуры |
|
1 |
Краткий |
2 |
Строковая константа в программе |
|
2 |
Расширенный |
Таблица 7.5
№ варианта |
Вариант цепочки операций над данными |
1 |
Ввод с клавиатуры и запись в массив, запись из массива в файл, чтение из файла и вывод на экран |
2 |
Ввод с клавиатуры и запись в файл, чтение из файла и вывод на экран, дополнение файла |
3 |
Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран |
4 |
Ввод с клавиатуры и запись в массив, запись из массива в файл, дополнение файла, чтение из файла и вывод на экран |
Структуры данных для программы (к табл. 7.2)
Таблица 7.6 Таблица 7.7
Товар |
|
Сотрудник |
||||
Наименование |
Цена |
Количество |
|
Фамилия |
Должность |
Оклад |
Таблица 7.8 Таблица 7.9
Студент |
|
Фирма |
||||
Фамилия |
Экзаменационные оценки |
|
Название |
Курс акций |
||
|
Математика |
Информатика |
|
|
покупка |
продажа |
Таблица 7.10
Автомобиль |
||
Марка |
Мощность |
Максимальная скорость |
