Лекция: Примеры выполнения задания 11
Пример 1. Создать файл f.dat из целых чисел. Переписать в файл g.dat из файла f.dat отрицательные элементы.
Первая программа создает файл f.dat.
program lab10_1;
uses CRT;
var f :file of integer;
i, n, x :integer;
begin clrscr;
assign{f, ‘f.dat’);
rewrite(f);
writeln(‘введите число элементов в файле’);
readln(n);
for i := 1 to n do
begin
writeln(‘введите значение’, i,‘ –го элемента’);
readln(x);
write(f,x)
end;
close(f)
end.
Следующая программа будет читать элементы файла f.dat, выбирать только те элементы, значения которых отрицательны, переписывать их в файл g.dat. Выводить элементы файла g.dat на экран ПК.
program lab10_11;
uses CRT;
var f ,g: file of integer;
i, x: integer;
begin clrscr;
assign{f, ‘f.dat’);
reset(f);
assign{g, ‘g.dat’);
rewrite(g);
while not eof (f) do
begin
read(f, x);
if x<0 then write (g, x)
end;
{вывод элементов файла g.dat на экран}
reset (g);
while not eof (g) do
begin
read(g, x);
writeln(x)
end;
close(f);
close(g)
end.
Пример 2. Содержимое файла f.dat не изменилось. Заменить элементы данного файла с отрицательными значениями на -1. Остальные элементы оставить без изменения.
program lab10_2;
uses сrt;
var f: file of integer;
i, x: integer;
begin clrscr;
assign(f, ‘f.dat’);
reset(f);
while not eof (f) do
begin
read(f, x);
if x<0 then
begin
x := -1;
seek(f, filepos (f) -1);
write(f, x)
end
end;
{вывод элементов файла f.dat на экран}
reset (f);
while not eof (f) do
begin
read(f, x);
writeln(x)
end;
close(f)
end.
Пример 3. На диске в файле с именем FV размещены вектора, каждый из которых содержит по 8 действительных элементов. Вычислить максимальные значения для каждого из векторов, записать их в файл GM и вывести на экран ПК.
program file12;
type vect = array [ 1..8 ] of real;
fil1 = file of vect;
fil2 = file of real;
var a: vect;
i: integer;
аmax, b: real;
f1: fil1;
f2: fil2;
begin clrscr;
assign ( f1, ' FV.DAT ');
assign ( f2, ' GM.DAT ');
reset ( f1 );
rewrite ( f2 );
while not eof ( f1 ) do
begin
read ( f1, a); amax := a[1];
for i := 1 to 8 do
if a[i] > amax then amax := a[i];
write( f2, amax );
end;
close( f2 );
reset( f2 );
while not eof ( f2 ) do
begin read ( f2, b );
writeln ( b: 7: 2 )
end;
close(f1);
close(f2);
end.
ОГЛАВЛЕНИЕ
| Тема 1. | Основы построения программы. Вычисление значения арифметического выражения | |
| Тема 2. | Логические выражения. Условный оператор | |
| Тема 3. | Использование циклических структур. Операторы цикла с предусловием и с постусловием. | |
| Тема 4. | Использование циклических структур. Оператор цикла с параметром. | |
| Тема 5. | Использование и обработка одномерного массива. | |
| Тема 6. | Использование и обработка двумерного массива. | |
| Тема 7. | Организация программ с использованием функций. | |
| Тема 8. | Организация программ с использованием процедур. | |
| Тема 9. | Текстовые файлы. | |
| Тема 10. | Работа с комбинированными типами данных (записями) | |
| Тема 11. | Типизированные файлы. |
Редактор Н.Н. Калинина
Изд. лиц. ИД №02558 от 18.08.2000 г.
Подписано в печать 2010 г. Формат 60*84 1/16
Бумага офсетная. Объем п. л. Уч.-изд. л.
Тираж 350 экз. Заказ
Редакционно-издательский отдел СПбГУКиТ
192102. Санкт-Петербург, ул. Бухарестская, 22
Подразделение оперативной полиграфии СПбГУКиТ
192102. Санкт-Петербург, ул. Бухарестская, 22