Для чего нам нужно уметь работать с файлами в Паскаль?

А для того, чтобы Вы могли начать самостоятельно решать задачи на портале и зарабатывать рейтинг.

Ранее мы рассмотрели ввод вывод данных в Паскаль. Ввод данных в этом случае осуществлялся вручную, с помощью клавиатуры и результат мы также смотрель сами в окне вывода. Для того чтобы Вам быть увереным в том, что программа написана правильно необходимо протестировать её.

Для того чтобы наша система автоматически тестировала Ваше решение необходимо, ввод и вывод данных осуществлять из текстовых файлов.

Ввод мы будем осуществлять из файла input.txt

Вывод будем производить в файл output.txt

Это не только наш принцип, по такой же схеме тестируются задачи на всех этапах республиканских олимпиад по информатике. Так что это важный момент, который Вам необходимо освоить.

Для того, чтобы организовать ввод данных из файла нам надо:

(буду писать так, чтобы было легко понять и запомнить, не научно)

1. Завести преременную типа текст и переменную в которую будем записывать прочитанное значение.

2. Связать эту текстовую переменную с файлом из которого будет производиться чтение.

3. Открыть файл для чтения.

4. Теперь можно читать данные. Тут нужно понимать и помнить отличия процедуры read, от readln. Про что я? Если в файле данные записаны в одной строке, через пробел, то мы пользуемся все время процедурой read столько раз, сколько чисел нужно прочитать.

Если же строк несколько, то когда доходим до символа стоящего в конце строки, используем readln. В результате чего будет считано последнее число строки и курсор переместится на новую.

Внимание! Для чтения из файла в скобках необходимо на первом месте указать ту текстовую переменную которую Вы связали с входным файлом, затем список переменных для чтения.

Самой распространенной ошибкой является то что забывают ставить эту переменную (текстовую).

5. Как только мы прочитали все переменные необходимо закрыть файл.

Внимание! Процедура close освобождает переменную t и мы можем её использовать в других целях, например для вывода данных. Если мы её не закрыли (нужно продолжать чтение), то для вывода необходимо будет завести еще одну текстовую переменную.

Все! На этом ввод окончен.

Опишем процесс вывода результатов в текстовый файл.

1. Опять как и в случае со вводом, необзодимо связать текстовую переменную с выходным файлом. Только файл уже называется (для нашего портала) output.txt.

2. Затем необходимо создать или перезаписать файл output.txt

3. Выводим данные. Не забываем ставить файловую переменную в начале списка вывода.

4. Как и в предидущем случае после вывода всех данных необходимо закрыть файл.

Запишем программу целиком.

Практическое задание к уроку.

Ваша задача сейчас состоит в том, чтобы ввести программу в среде программирования Free Pascal (можно и в ABC Pascal) и запустить ее на исполнение.

Если у Вас появилась ошибка типа:

Ошибка ввода/вывода 2: Не удается найти указанный файл (для ABC Pascal)

exited with exitcode=2 (для Free Pascal),

создайте в папке где сохранена ваша программа файл input.txt и введите в него число.

В этой же папке, после удачного (без ошибок) запуска программы на исполнение должен появиться файл output.txt .

Для любознательных!

Класс: 11

Цели урока:

  • Образовательные: познакомить с понятием файл, текстовым типом данных, сформировать умения пользоваться средствами обработки файлов, сформировать умение решать задачи с использованием файлового ввода-вывода данных.
  • Развивающие: развивать познавательный интерес, творческую активность учащихся; развивать логическое мышление.
  • Воспитательные: воспитывать интерес к предмету, аккуратность, внимательность, дисциплинированность.

Тип урока: урок совершенствования знаний.

Класс: 11

Оборудование: ПК, программное обеспечение – среда программирования PascalABC, проектор, доска, презентация « Файловый ввод-вывод данных»

Виды работы: беседа, работа с опорным конспектом, работа за ПК.

Этапы урока:

  1. Организационный момент.
  2. Фронтальный опрос.
  3. Проверка домашнего задания
  4. Постановка цели урока.
  5. Изучение нового материала.
  6. Первичное закрепление изученного.
  7. Практическая работа на ПК
  8. Подведение итогов урока.
  9. Постановка домашнего задания.

Фронтальный опрос

  1. Из каких частей состоит программа?
  2. Что включает в себя раздел описания ?
  3. В разделе описания переменных какие типы данных мы описываем?
  4. С каких служебных слов начинается исполняемая часть?
  5. Как осуществляется ввод-вывод данных?
  6. Как работает команда присваивания?
  7. для чего предназначен условный оператор?
  8. Какие операторы используются в условном операторе?
  9. Какими логическими связками могут быть соединены простые условия?

Проверка домашнего задания: На доске записать домашние задачи – 2 чел, на компьютере проверить составленные программы – 2 чел. Остальные карточки.

Постановка темы, целей и задач урока

До сегодняшнего момента мы с вами используя процедуры ввода-вывода вводили данные с клавиатуры. Конечно, программы, которые мы сейчас составляем очень просты, мы пока изучили только несколько операторов, команд, но если возникнет необходимость ввести большое количество исходных данных?, если появится необходимость вывести и сохранить данные для другой программы?, а если будет нужно пройти автоматизировано не три теста, как мы проходим в нашем электронном задачнике , а больше? Как же поступить в этом случае? Вот сегодня мы с вами и познакомимся с новым типом данных и с новыми процедурами работы с файлами. ИТАК:

Изучение нового материала

Тема урока: Файловый ввод-вывод данных. СЛАЙД 1

С понятием файла Вы знакомы еще с младших классов:
Файл- это область внешней памяти, предназначенная для хранения данных. Любой файл в Паскале имеет три характерные особенности: СЛАЙД 2
А) файла есть имя, что дает возможность программе работать сразу с несколькими файлами.
Б) файл содержит компоненты одного типа (файл строк, файл записей)
В) объем файла не оговаривается в программе , значит объем файла зависит только от внешнего устройства хранения этого файла

В Паскале по способу организации различают три типа файлов: СЛАЙД 3

  • Текстовые файлы
  • Типизированные файлы
  • Нетипизированные файлы

Типизированные файлы чаще всего используют для создания больших баз данные , так как в этих файлах используют четкой структуры записи и обработка данных может происходить с любого места записи в этом файле. Такой доступ к элементам файла называется прямым доступом.
Сегодня мы более подробно будем рассматривать текстовые файл, так как в основном автоматизированная проверка работы программы осуществляется вводом и выводом данных именно из текстовых файлов.
Текстовый файл представляет собой последовательность символов разбитую на строки. Каждая строка заканчивается маркером конца строки, или как мы привыкли нажатием кнопки Enter. Текстовые файлы являются файлами последовательного доступа , так как прежде чем начать обработку с нужного элемента надо последовательно пройти все ранее записанные элементы.
Для того чтобы мы могли работать с файлом:считать из него данные, изменить данные, записать результат мы должны проделать вот такой алгоритм: СЛАЙД 4

установить связь программы с файлом;
"открыть" файл для чтения или записи;
считать из файла или записать в файл;
закрыть файл.

В программе на Паскале текстовый файл представлен файловой переменной типа TEXT. СЛАЙД 5
Var : text;
Связь файловой переменной с именем файла на диске осуществляется с помощью оператора Assign(имя файловой переменной, имя файла на диске);
Имя файла на диске должно содержать полный путь для поиска данного файла. Если полный путь не указан, то программа будет искать файл в каталоге, где хранится программа.
Открытие файла для чтения выполняется процедурой Reset (имя файловой переменной), если на диске не будет файла с данным именем, то выполнение программы прервется; СЛАЙД 6
Открытие файла для записи осуществляется процедурой Rewrite (имя файловой переменной), если на диске нет такого файла, то он будет создан.
После открытия файлов, мы можем считывать данные и осуществлять вывод данных уже известными нами процедурами Read и Write. СЛАЙД 7
И после, что мы должны сделать – это закрыть и файл для чтения и файл для записи процедурой Close. СЛАЙД 8

Первичное закрепление изученного

Закрепим изученный материал составлением программа. Из задачника решаем задачу 1 по новой теме.

1. Даны три целых числа.
Определить, имеется ли среди них хотя бы
одна пара равных между собой чисел.
Формат входных данных
Входной файл содержит три целых числа через пробел.
Формат выходных данных
Выведите ‘YES’ если это так, и ‘NO’ в противном случае.

Вход
544 935 911
Выход
NO

1. 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);

Практическая работа на ПК

Сохраняем файл в папке 11 класс/Программирование под именем Demofile.pas
Создаем в папке входной файл – input.txt Выходной файл – output.txt
Самостоятельно: Задача №2, изменяем заранее созданную программу под файловый ввод-вывод.

2. 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.

Итоги урока и домашнее задание

– Что нового вы узнали?
– Какие знания вам помогли усвоить материал урока?
– Что на ваш взгляд вам удалось освоить лучше, а что нет?
– Над чем вам необходимо поработать?

Домашнее задание: учить конспект. Задача №3 из задачника.

Используемая литература:

  1. Л.А.Татарникова. Основы алгоритмизации и программирование на языке Pascal, Томск – 2007
  2. Информатика. Базовый курс. 7-9 классы / И.Г.Семакин, Л.А.Залогова, С.В.Русаков, Л.В.Шестакова. – М.: БИНОМ. Лаборатория знаний, 2004
  3. Информатика. Задачник-практикум в 2т / Под ред. И.Г.Семакина, Е.К.Хеннера. – М.: БИНОМ. Лаборатория знаний, 2004.
  4. CD-диск. Вычислительная математика и программирование, 10-11 класс. Учебное пособие / Фальков А.И., Молодцова М.Г., Юсупова И.С. ГУ РЦ ЭМТО, 2004.

Файловый ввод-вывод данных в Pascal. Средства обработки файлов

Просмотр содержимого документа
«Файловый ввод-вывод данных в Pascal»

Файловый ввод-вывод данных в Pascalе

Средства обработки файлов

Файл – это область памяти на внешнем носителе, в которой хранится некоторая информация.

а) файл имеет имя;

б) файл содержит компоненты одного типа (файл строк, файл записей)

в)объем файла не оговаривается в программе ;

учитель информатики и ИКТ Дугина И.Р.

Типы файлов Турбо Паскаль

Турбо Паскаль поддерживает три типа файлов:

  • текстовые файлы;
  • типизированные файлы;
  • нетипизированные файлы.

Файл, в описании которого указывается тип элементов, называется типизированным . Все элементы файла пронумерованы начиная с нуля.(базы данных)

Текстовый файл представляет собой последовательность символов разбитую на строки. Каждая строка заканчивается маркером конца строки. Нетипизированные файлы рассматриваются как совокупность символов и байтов, не имеют определенного типа.

учитель информатики и ИКТ Дугина И.Р.

Если на диске нет файла с данным именем, то выполнение программы прервется. Открытие файла для записи осуществляется оператором

Имя файла на диске больше нигде в программе не появляется. должно содержать полный путь для поиска данного файла. Если полный путь к файлу не указан, то файл будет искаться в каталоге, где находится исходный текст программы.

Открытие файла для чтения выполняется оператором

В программе на Паскале текстовый файл представлен файловой переменной типа TEXT.

Связь файловой переменной с именем файла на диске осуществляется с помощью оператора

Если на диске нет файла с данным именем, то файл будет создан.

Rewrite (имя файловой переменной);

Reset (имя файловой переменной);

Assign (имя файловой переменной, имя файла на диске);

Средства обработки файлов

  • установить связь программы с файлом;
  • "открыть" файл для чтения или записи;
  • считать из файла или записать в файл;
  • закрыть файл.

учитель информатики и ИКТ Дугина И.Р.

Установка связи программы с файлом

Описание файловой переменной

Для установления связи переменной и файла

Например: Assign (f,‘input.txt’);

учитель информатики и ИКТ Дугина И.Р.

Открытие файла для чтения или записи

  • Для чтения из файла необходимо открыть файл для чтения с помощью процедуры RESET ();

Например: Reset (f);

  • Для записи в файл открываем файл для записи с помощью процедуры

Например: Rewrite (g);

учитель информатики и ИКТ Дугина И.Р.

Чтение из файла. Запись в файл.

  • Чтение данных из файла выполняется процедурой
  • Запись данных в файл выполняется процедурой

учитель информатики и ИКТ Дугина И.Р.

После того как данные из файла прочитаны, его необходимо закрыть посредством процедуры

Например: Close (f);

После того как данные в файл записаны его необходимо закрыть посредством процедуры

Например: Close (g);

учитель информатики и ИКТ Дугина И.Р.

c)and (a+cb)and(b+ca) and (a0)and(b0)and(c0) 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. учитель информатики и ИКТ Дугина И.Р. " w

Нахождение площади треугольника по формуле Герона.

  • 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+bc)and (a+cb)and(b+ca) and (a0)and(b0)and(c0) 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.

учитель информатики и ИКТ Дугина И.Р.

var rArg, rF: Array[1..200] of Real;

while not EOF(inf) do begin

for l:=1 to n do begin

Составить программу, которая читает файл, значения аргумента и функции записывает в одномерные массивы, подсчитывает их количество, выводит на экран дисплея и записывает в файл .

Учитель информатики и ИКТ Дугина И.Р.

1. 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);

1.Даны три целых числа.

Определить, имеется ли среди них хотя бы

одна пара равных между собой чисел.

Формат входных данных

Входной файл содержит три целых числа через пробел.

Формат выходных данных

Выведите ‘YES’ если это так, и ‘NO’ в противном случае.

учитель информатики и ИКТ Дугина И.Р.

Задача №2 из «Задачника по PascalABC.NET»

Адаптировать к файловому вводу-выводу данных.

учитель информатики и ИКТ Дугина И.Р.

  • Turbo Pascal, В.Б.Попов,Москва, 2002г.
  • «Программирование на языке Паскаль», А.И.Епанешников, 2009г.