
- •С Кафедра моп эвм истема программирования Borland Pascal Методическая разработка к лабораторным работам фавт
- •Интерфейс системы
- •Меню и команды
- •Пункт File
- •Пункт Edit
- •Пункт Search
- •Пункт Run
- •Пункт Compile
- •Пункт Debug
- •Пункт Options
- •Пункт Window
- •Пункт Help
- •Страница Compiler Options окна свойств проекта
- •??? Страница Directories окна свойств проекта
- •??? Страница Preferences окна свойств проекта
- •Файлы проекта
- •Основные приемы работы в системе Паскаль Создание новой программы
- •Работа с уже созданной программой
- •Использование средств отладки
- •Пошаговое выполнение программы
- •Просмотр значений переменных
- •Использование точек останова
- •Порядок выполнения работы
- •If f then writeln('существует');
- •Var описание_переменных;
- •If условие then оператор1 else оператор2
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Оператор цикла с убывающим параметром
- •Контрольные вопросы
- •Var список_имен_массивов: array [тип_индекса1,тип_индекса2...] of базовый_тип;
- •Варианты заданий
- •Контрольные вопросы
- •Var список_имен_переменных:string[максимальная_длина_строки];
- •Var список_имен_переменных:string;
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 6. Использование процедур Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 7. Использование функций Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 8. Работа с текстовыми файлами Основные сведения
- •Var имя_файловой_переменной : text;
- •Пример выполнения
- •I : integer; {счетчик символов текущей строки выходного файла}
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 9. Работа с типизированными файлами и записями Основные сведения
- •Var имя_файловой_переменной : file of тип_записи_файла;
- •Var имя_переменной_записи:имя_типа_записи;
- •Пример выполнения
- •ICurs: integer {курс }
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 10. Использование данных ссылочного типа Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 11. Создание и использование модулей Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Литература
- •Содержание
Контрольные вопросы
Назначение процедуры assign ?
Отличие процедур rewrite и append ?
Типичный фрагмент последовательного чтения всего файла.
Назначение функции eof.
Вывод числовых переменных.
Лабораторная работа 9. Работа с типизированными файлами и записями Основные сведения
Типизированный файл состоит из последовательности записей одной и той же структуры. Структура записи задается типом, который может быть как стандартным, так и определенным в программе. Запрещено создавать файлы файлов и файлы объектов, а также файлы структурированных компонентов, содержащих файлы и объекты. Записи файла нумеруются начиная с 0.
Файловая переменная для типизированного файла задается следующим образом:
Var имя_файловой_переменной : file of тип_записи_файла;
Процедуры и функции для работы с типизированными файлами:
assign( var F; FileName:string ) связывает файловую переменную F с именем файла FileName.
reset( var F ) открывает существующий файл F для операций чтения и записи.
rewrite( var F ) создает новый файл F и открывает его для операций чтения и записи.
close( var F ) закрывает файл F.
eof( var F ):boolean возвращает TRUE, если достигнут конец файла, и FALSE в противном случае.
read( var F; var X1; var X2; … ) – ввод данных из файла F в переменные X1, X2, …, тип которых должен совпадать с типом записи файла. После чтения записи указатель файла устанавливается на запись, следующую за последней прочитанной.
write( var F; X1; X2; … ) – вывод в файл F переменных X1, X2, …, тип которых должен совпадать с типом записи файла. После вывода каждой переменной указатель файла устанавливается на запись, следующую за только что выведенной.
filesize( var F ): longint – возвращает количество записей в открытом файле F.
filepos( var F ): longint – возвращает номер записи открытого файла F, на которой находится указатель.
seek( var F; N: longint ) – устанавливает указатель в открытом файле F на запись с номером N.
truncate( var F ) – усекает открытый файл F отбрасыванием всех его записей, начиная с текущей, до конца файла.
Запись – это тип данных, состоящий из набора компонентов, называемых полями. Поля могут иметь любые допустимые в языке типы.
Описание типа записи и переменной записи:
type имя_типа_записи = record
имя_поля_1: тип_поля_1;
имя_поля_2: тип_поля_2;
...
имя_поля_N: тип_поля_N
end;
Var имя_переменной_записи:имя_типа_записи;
Обращение к полям переменной записи: имя_переменной_записи.имя_поля
Над полями записей можно выполнять любые действия, доступные для переменных типа соответствующего поля.
Пример выполнения
Имеется файл STUD.DAT, содержащий данные о студентах: фамилию, имя, отчество, номер группы, номер курса. Из этого файла выбрать данные о студентах только 1 курса и записать их в файл STUD1.DAT, после чего циклически запрашивать фамилию студента и выводить на экран информацию о всех студентах 1 курса с такой фамилией.
program PRIMER;
type
STUD=record
sFAM : string[30]; {фамилия }
sNAME: string[20]; {имя }
sOTCH: string[20]; {отчество}
sGRUP: string[5]; {группа }
ICurs: integer {курс }
end;
var
F1,fOut: file of STUD;
ST : STUD;
sSF : string[30];
C : char;
begin
assign(F1,'STUD.DAT');
assign(fOut,'STUD1.DAT');
reset(F1);
rewrite(fOut);
while not eof(F1) do begin
read(F1,ST);
if ST.CURS=1 then write(fOut,ST)
end;
close(F1);
repeat
writeln('Введите фамилию');
readln(sSF);
seek(fOut,0);
while not eof(fOut) do begin
read(fOut,ST);
if ST.FAM=SF then begin
writeln('Студент ', ST.sFAM, ' ',ST.sNAME,' ', ST.sOTCH);
writeln('Курс 1, Группа ',ST.iGRUP);
end
end;
writeln('Продолжить работу?(N-нет)');
readln(C);
until (C='N') or (C='n');
close(fOut)
end.