Примеры задач
Файлы
Даны два файла, причем первый А-целочисленный, т.е. его элементы целые числа, а второй В-символьный. Вывести на экран все числа первого, а рядом с ним элементы второго с этим номером, если элементов второго файла с данным номером нет, то сообщить об этом. Методика решения
Используемые переменные:
Для реализации данной программы понадобятся следующие процедуры и функции для работы с файлами: seek(f,N) — устанавливает маркер на позицию N ; eof(f) — возвращает TRUE , если найден конец файла.
A,b – файловые переменные,
N – целое число,
M – символ,
Kol – количество элементов файла,
I – параметр цикла.
Для начала заполняем файлы А и В : открываем файлы для записи, считываем с экрана элементы и записываем их в файлы, после чего файлы закрываем. Далее необходимо вывести на экран числа из файла a и элементы с соответствующими номерами из файла b . Для этого открываем файлы А и В для чтения. Далее в цикле, считываем числа ( n ) из первого файла, во втором файле с помощью процедуры seek(b, n-1) ставим маркер перед элементом с соответствующим номером, считываем этот элемент из файла b , затем выводим на экран число из первого файла и элемент с соответствующим номером из второго файла. Цикл повторяем пока не закончится файл a ( while not(eof(a)) ). И в завершении программы закрываем оба файла.
Program ex6_1; Uses Crt; Var a:file of integer; b:file of char; n,i,kol:integer; m:char; Begin Clrscr; Assign(a,'A.dat'); Assign(b,'B.dat'); Write('Введите колличество элементов файла A: '); Readln(kol); Writeln('Введите элементы файла A:'); Rewrite(a); For i:=1 to kol do begin Readln(n); Write(a,n); end; Close(a); Write('Введите колличество элементов файла B: '); Readln(kol); Writeln('Введите элементы файла B:'); Rewrite(b); For i:=1 to kol do begin Readln(m); Write(b,m); end; Close(b); Writeln; reset(a); reset(b); While not eof(a) do begin read(a,n); seek(b,n-1); Write(n,' '); If not eof(b) then begin read(b,m); Writeln(m); end else Writeln('Элемента второго файла с данным номером нет'); end; Close(a); Close(b); Readkey; End.