Файловый ввод-вывод данных в Pascal. 11-й класс

Разделы: Информатика

Класс: 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 по новой теме.

СЛАЙД 9

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.