Файловый ввод-вывод данныхв Pascalе Средства обработки файлов 11 класс Дугина Ирина Радиковна, учитель информатики и ИКТ, МБОУ СОШ с.Камышки Александрово-Гайского района Саратовской области
Описание Файл – это область памяти на внешнем носителе, в которой хранится некоторая информация. Особенности: а) файл имеет имя; б) файл содержит компоненты одного типа (файл строк, файл записей) в)объем файла не оговаривается в программе ;
Типы файлов Турбо Паскаль Турбо Паскаль поддерживает три типа файлов: текстовые файлы; типизированные файлы; нетипизированные файлы. Файл, в описании которого указывается тип элементов, называется типизированным. Все элементы файла пронумерованы начиная с нуля.(базы данных) Текстовый файл представляет собой последовательность символов разбитую на строки. Каждая строка заканчивается маркером конца строки.Нетипизированные файлы рассматриваются как совокупность символов и байтов, не имеют определенного типа.
Средства обработки файлов установить связь программы с файлом; "открыть" файл для чтения или записи; считать из файла или записать в файл; закрыть файл.
Установка связи программы с файлом Описание файловой переменной Var <имя файловой переменной>: text ; Например: Var f,g:text; Для установления связи переменной и файла служит процедура Assign(<имя файловой переменной>,’<имя файла на диске>’); Например: Assign (f,‘input.txt’); Assign (g,’output.txt’);
Открытие файла для чтения или записи Для чтения из файла необходимо открыть файл для чтения с помощью процедуры RESET(<имя файловой переменной>); Например: Reset (f); Для записи в файл открываем файл для записи с помощью процедуры REWRITE(<имя файловой переменной>); Например: Rewrite (g);
Чтение из файла.Запись в файл. Чтение данных из файла выполняется процедурой READ (<имя файловой переменной>,’<имя переменной>); Например: Read (f,a,b); Запись данных в файл выполняется процедурой WRITE(<имя файловой переменной>, <значение>); Например: Writeln(g,c);
Закрытие файлов После того как данные из файла прочитаны, его необходимо закрыть посредством процедуры CLOSE (<имя файловой переменной>); Например: Close (f); После того как данные в файл записаны его необходимо закрыть посредством процедуры CLOSE (<имя файловой переменной>); Например: Close (g);
Примеры программ Program geron; var a,b,c:integer; s,p:real; f,g:text; begin assign(f,'input.txt'); reset(f); readln(f,a,b,c); close(f); assign(g,'output.txt'); rewrite(g); if(a+b>c)and (a+c>b)and(b+c>a) and (a>0)and(b>0)and(c>0) then begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)* (p-b)* (p-c)); writeln (g,s:12:6); end else writeln(g,-1); close(g);end. Нахождение площади треугольника по формуле Герона.
Примеры программ Program F; var rArg, rF: Array[1..200] of Real; inf: Text; outf: Text; n, l: Integer; begin Assign(inf,'ID.txt'); Assign(outf,'RD.txt’); Reset(inf); Rewrite(outf); n:=0; while not EOF(inf) do begin n:=n+1; ReadLn(inf,rArg[n],rF[n]) end; for l:=1 to n do begin WriteLn(l:2,rArg[l]:8:2,rF[l]:8:2); Write(outf,rArg[l], rF[l]); end; close(outf); end. Составить программу, которая читает файл, значения аргумента и функции записывает в одномерные массивы, подсчитывает их количество, выводит на экран дисплея и записывает в файл .
1.Даны три целых числа. Определить, имеется ли среди них хотя бы одна пара равных между собой чисел. Формат входных данных Входной файл содержит три целых числа через пробел. Формат выходных данных Выведите 'YES' если это так, и 'NO' в противном случае. Примеры: Вход 544 935 911 Выход NO . Program vetvlenie; Var a,b,c:integer; f,g: text; begin assign (f,'input.txt'); reset (f); readln (f,a,b,c); close (f); assign (g,'output.txt'); rewrite (g); if (a=b) or (b=c) or (c=a) then writeln (g,'YES') else writeln (g,'NO'); close(g); end.
Закрепление Задача №2 из «Задачника по PascalABC.NET» Адаптировать к файловому вводу-выводу данных.
Использованные источники: Turbo Pascal, В.Б.Попов,Москва, 2002г. «Программирование на языке Паскаль», А.И.Епанешников, 2009г.