- •Цель работы
- •Основные понятия и определения
- •Теоретические сведения
- •Типизированные файлы
- •Нетипизированные файлы
- •Текстовые файлы
- •Сводная таблица процедур и функций для работы с файлами
- •Примеры решения задач с использованием файлов
- •Типизированный файл
- •Текстовый файл
- •Задание
- •Программа
- •Задания
- •Контрольные вопросы
Примеры решения задач с использованием файлов
Типизированный файл
Задание
Создать файл, содержащий 50 случайных целых чисел в диапазоне [10..30], вывести числа на экран в обратном порядке.
Программа
Program FileTest1; const
N=50; var
F: file of integer; { объявление файла с целыми числами } i: integer;
m: integer; begin
Assign(F,'test1.dat'); {связать файловую переменную с файлом}
ReWrite(F); |
|
{ открыть файл |
для записи } |
for i:=1 to N do |
begin |
случайное число } |
|
m := Random(30-10+1)+10; { получить |
|||
Write(F, m); |
{ записать |
число в файл } |
|
end; |
{ закрыть файл } |
|
|
Close(F); |
чтения } |
||
ReSet(F); |
{ открыть тот же файл для |
||
for i:=50 downto |
1 do begin |
файла } |
|
Seek(F,i-1); { |
установить указатель |
||
Read(F,m); |
{ |
считать число из файла } |
|
Write(m:4); { |
вывести число на экран } |
||
end; |
{ закрыть файл } |
|
|
Close(F); |
|
||
WriteLn; |
|
|
|
end.
Результат выполнения программы:
Текстовый файл
Задание
В заданном текстовом файле на английском языке подсчитать частоту вхождения каждой буквы. Строчные и прописные буквы не различаются, все остальные символы пропускаются.
Программа
Program FileTest2; Type
{ объявление массива для подсчета символов } RateArray = array ['A'..'Z'] of integer;
var
FT: Text; { объявление файловой переменной текстового типа } ch: char;
N,i: integer; s: String;
rate: RateArray; begin
{начальная инициализация счетчика символов } for ch:='A' to 'Z' do
rate[ch] := 0;
{операции с файлом }
Assign(FT,'test.txt'); {связать |
файловую переменную с файлом} |
|||
ReSet(FT); |
{ |
открыть файл для чтения |
} |
|
while not EOF(FT) |
do begin { пока не конец файла |
} |
||
ReadLn(FT,s); { |
считать строку из файла |
} |
||
{ |
(с переходом на новую строку) } |
|||
N := Length(s); |
{ взять длину |
строки } |
строки } |
|
for i:=1 to N do begin |
{ цикл |
по всем символам |
||
ch := UpCase(s[i]); |
{перевести символ в верхний регистр} |
|||
if ch in ['A'..'Z'] then { если символ–английская буква } rate[ch] := rate[ch]+1;{увеличить счетчик соотв.символа}
end;
end;
Close(FT); { закрыть файл } for ch:='A' to 'Z' do
Write(ch,': ',rate[ch]:2,' '); {вывести частоты символов} WriteLn;
end.
Исходные данные для тестирования программы talk to me softly
there's something in your eyes don't hang your head in sorrow and please don't cry
i know how you feel inside I've i've been there before somethin's changin' inside you and don't you know
Результат выполнения программы
