spisok[j].srball[j]:=spisok[mesto].srball[mesto];
spisok[mesto].srball[mesto]:=t;
q:=spisok[j].famil;
spisok[j].famil:=spisok[mesto].famil;
spisok[mesto].famil:=q;
with spisok[j] do writeln(famil:8,srball[j]:6:2);
End;
End.
III. Работа с файлами.
Цель задания:
1. Изучение файловых типов.
2. Получение практических навыков работы с файлами.
ФАЙЛ (от англ. file, основные значения), совокупность упорядоченных и взаимосвязанных записей, имеющая описание для идентификации отдельных записей.
Язык Турбо Паскаль предлагает три вида такого представления:
- типизированные файлы,
- текстовые файлы,
- нетипизированные файлы.
Типизированный файл – последовательность элементов одного типа.
Текстовый файл – файлы символьных данных. Текстовые файлы имеют тип text.
Нетипизированные файлы – это файлы, поддержка которых осуществляется с максимально возможной скоростью. Введение таких файлов в систему Турбо Паскаль было вызвано стремлением повысить эффективность программ, участвующих в интенсивном обмене с внешними наборами данных.
Для работы с файлами используются следующие функции:
- Assign – функция, ассоциирующая имя файла с некоторой переменной, с которой и идет последующая работа.
- Reset – функция, открывающая уже существующий файл для чтения из него.
- Rewrite – функция, создающая новый файл, или перезаписывающая старый.
- Readln – чтение из указанного файла строки с переходом на следующую строку.
- Writeln – запись в указанный файл строки с переходом на следующую строку.
Вообще, файл рассматривается не просто как несколько строк, а как запись (record), что значительно упрощает работу с файлами.
Поставленная задача:
Подготовить данные и организовать ввод данных в файл. Организовать чтение файла и вывод нужной информации.
Дан файл f, содержащий различные даты. Каждая дата – это число, месяц и год. Год с наименьшим номером.
Решение:
program spisok;
uses crt;
var f:text;
name,txt,s,a: string;
s1,min,y:integer;
begin
clrscr;
write('Введите имя файла для записи текста:');
readln(name);
writeln;
assign(f,name);
rewrite(f);
repeat
write('введитедату:');
readln(txt);
writeln(f,txt);
until txt='';
close (f);
writeln;
reset (f);
min:= 9999;
while not eof(f) do
Begin
readln (f,a);
s:=copy(a,7,4);
val(s,s1,y);
if (s1<min) and (s1<>0) then min:=s1;
end;
writeln('наименьший год:',min);
close (f);
end.