Similar presentations:
Программирование на языке Паскаль. Работа с файлами
1. Программирование на языке Паскаль
1Программирование
на языке Паскаль
§ 68. Работа с файлами
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
2. Как работать с файлами?
Алгоритмизация и программирование, Паскаль, 10 класс2
Как работать с файлами?
файлы
текстовые
«plain text»:
• текст, разбитый на строки;
• из специальных символов
только символы перехода
на новую строку
К.Ю. Поляков, Е.А. Ерёмин, 2013
двоичные
• любые символы
• рисунки, звуки, видео, …
http://kpolyakov.spb.ru
3. Принцип сэндвича
Алгоритмизация и программирование, Паскаль, 10 класс3
Принцип сэндвича
хлеб
начинка
хлеб
открыть файл
работа с файлом
закрыть файл
файловые
переменные
var Fin, Fout: Text;
связать с
Assign(Fin, 'input.txt');
файлами
Assign(Fout, 'output.txt');
Reset(Fin);
{ открыть на чтение }
Rewrite(Fout); { открыть на запись }
{ здесь работаем с файлами }
Close(Fout);
{ закрыть файлы }
Close(Fin);
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
4. Ввод данных
Алгоритмизация и программирование, Паскаль, 10 класс4
Ввод данных
var a, b: integer;
Fin: Text;
...
Assign(Fin, 'input.txt');
Reset(Fin);
readln(Fin, a, b);
Close(Fin);
Переход к началу открытого файла:
Close(Fin);
Reset(Fin);
Определение конца файла:
if Eof(Fin) then { end of file }
write('Данные кончились');
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
5. Вывод данных в файл
Алгоритмизация и программирование, Паскаль, 10 класс5
Вывод данных в файл
var a, b: integer;
Fout: Text;
...
a:= 1; b:= 2;
Assign(Fout,'output.txt');
Rewrite(Fout);
writeln(Fout, a, '+', b, '=', a+b);
Close(Fout);
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
6. Чтение неизвестного количества данных
Алгоритмизация и программирование, Паскаль, 10 класс6
Чтение неизвестного количества данных
Задача. В файле записано в столбик неизвестное
количество чисел. Найти их сумму.
program z1;
var s,x:integer;
fin: text;
begin
assign(fin,'input.txt');
reset(fin);
s:=0;
while not (eof(fin)) do
begin
readln(fin,x);
s:=s+x;
end;
close(fin);
writeln(s)
end.
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
7. Задачи
Алгоритмизация и программирование, Паскаль, 10 класс7
Задачи
«A»: Напишите программу, которая находит среднее арифметическое всех
чисел, записанных в файле в столбик, и выводит результат в другой
файл.
program z2;
var s,x,k:integer;
fin,res: text;
begin
assign(fin,'input.txt');
reset(fin);
s:=0;
k:=0;
while not (eof(fin)) do
begin
readln(fin,x);
s:=s+x;
k:=k+1;
end;
close(fin);
assign(res,'output.txt');
rewrite(res);
writeln(res,s/k);
close(res);
end.
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru