- •Содержание
- •Линейные алгоритмы
- •Язык программирования Turbo Passcal
- •Типы переменных в Паскале:
- •Стандартные операции и функции от скалярных данных.
- •Структура программы на Pascal
- •Команда присваивания
- •Команды ввода и вывода
- •Справка по работе с системой Turbo Pascal
- •Условный оператор, оператор множественного выбора Алгоритмы с ветвлением
- •Ветвление в Pascal Логические выражения
- •Логические операции
- •Команды ветвления
- •1. Условный оператор if
- •2. Оператор Case.
- •3. Команда безусловного перехода goto
- •Циклы Алгоритмы с циклами
- •1. Цикл с предусловием
- •2. Цикл с постусловием.
- •Циклы в Pascal
- •1. Цикл с параметром
- •2. Цикл с предусловием.
- •3. Цикл с постусловием
- •Вложенные циклы
- •Подпрограммы
- •Функции пользователя
- •Процедуры
- •Массивы Одномерные массивы
- •Стандартные задачи обработки массивов:
- •Двумерные массивы
- •Обработка строк и символов
- •Процедуры и функции обработки строк.
- •Основные алгоритмы обработки строк
- •Графика в Pascal
- •Основные графические процедуры и функции
- •Работа с файлами
- •Процедуры и функции для работы с файлами.
Работа с файлами
Файл – это поименованная область на диске, содержащая некоторые данные.
В языке Паскаль допускаются следующие файловые типы:
типизированные файлы – файлы, состоящие из записей постоянной длины;
текстовые файлы - файлы, состоящие из записей неопределенной длины;
нетипизированный файл – файл, представляющий неструктурированный поток байтов.
Объявление файловых переменных:
типизированного файла - <идентификатор> : file of <тип>;
текстового файла - <идентификатор> : text ;
нетипизированного файла - <идентификатор> : file ;
где <идентификатор> – имя файловой переменной,
<тип> - любой тип данных, за исключением файлового.
Для доступа к файлу в программе на языке Паскаль необходимо:
определить файловую переменную – логический идентификатор файла;
связать эту переменную с конкретным физическим файлом;
открыть файл: если для записи, то с помощью процедуры Rewrite, если для чтения – то с помощью Reset;
обработать файл (прочитать или записать данные);
закрыть файл с помощью Close.
Процедуры и функции для работы с файлами.
assign(var f; name: string); - процедура связи файловой переменной с физическим файлом
где f – файловая переменная, name – переменная, определяющая имя физического файла.
Например, Assign (f, ‘spisok.dat’);
reset(var f); - процедура открывает файл, связанный с файловой переменной f для считывания данных.
rewrite(var f); - процедура открывает файл, связанный с файловой переменной f для записи данных.
read(var f; d1,d2,…dn); - процедура считывает данные из файла f в перечисленные переменные d1,d2,…,dn.
write(var f; d1,d2,…dn); - процедура записывает данные из переменных d1,d2,…dn в файл f.
seek(var f; n : longint); - процедура устанавливает текущей n-ую запись файла f. После вызова процедуры seek процедура read читает n-ую запись.
close(var f); - процедура закрывает файл f.
eof(var f) - функция возвращает результат boolean: true, если считан последняя запись файла и false – в противном случае.
Пример 1. Составить пргорамму, создающую на жестком диске текстовый файл, добавить в созданный файл данные (ф.и.о., номер школы, класс).
Program primer;
Var f: text;
x, y: real;
begin
assign(f,'prim.txt');
rewrite(f);
write(‘Иванов Иван Иванович, Школа № 1, 1 «а» класс’);
Close(f);
end.
Пример 2. а) Создать файл, содержащий значения функции y= x2 + x (0= x= 2, h= 0,2). б) Вывести на экран данные в виде таблицы.
Program primer;
Var f: file of real;
x, y: real;
begin
assign(f,'prim.txt');
rewrite(f);
x:=0;
repeat
y:=sqr(x)+x;
write(f,y, х);
x:=x+0.2;
until x>2;
Close(f);
reset(f);
while not eof(f) do begin
read(f,y,x); writeln('x=',x:4:2,' y=',y:8:4);
end;
end.
Пример 3. а) Создать файл, содержащий данные:
ФИО работника;
склад;
стаж работы.
б) Просмотреть записи. Определить фамилию работника, имеющего самый большой стаж работы.
Program pr;
Type rabotnik=record
Fio: string [20];
sklad: char;
stag: integer;
End;
Var
X: rabotnik; f: file of rabotnik;
N, i, max: integer;
Name: string [20];
Begin
Assign(f,’pr.txt’);
Rewrite(f);
Write(‘n=’); Readln (n);
For i:=1 to n do
Begin
Write(‘fio:’); Readln(x.fio);
Write(‘sklad:’); Readln(x. sklad);
Write(‘stag:’); Readln(x. stag);
Write(f,x);
End;
Close(f);
{******************}// можно сделать две разные программы
Assign(f,’pr.txt’);
Rewrite(f);
Max:=0;
While Not EOF(f) do
Begin
Readln(f,x);
Writeln(x.fio: 20, x. sklad:3, x. stag:5);
If x. stag >max then
Begin
Max:=x. stag;
Name:=x.fio;
End;
End;
Writeln(‘max stag -‘, max, name);
Close(f);
Readln;
End.