4778

Файлы и задачи их обработки

Лабораторная работа

Информатика, кибернетика и программирование

Файлы и задачи их обработки Содержание. Понятие последовательного файла как структуры данных, в которой хранится информация на внешних носителях. Операции с файлами открытие, закрытие, чтение, запись. Задача корректировки файла. Цель. Освоит...

Русский

2012-11-26

64 KB

53 чел.

Файлы и задачи их обработки

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

Цель:. Освоить понятие файла как основной формы хранения и обработки информации на внешних носителях и изучить основные задачи обработки файлов.    

Задание:  Предварительно изучив лекционный и теоретический материал, выполнить задания, изложенные в разделе Ход занятия.

Литература:

1. М.С. Львов, А.В.Спиваковский, С.В.Белоусова. Основы программирования на языке Паскаль. Херсон: МИБ, 1997.- 153 с.

2. В.М.Заварыкин, В.Г.Житомирский, М.П.Лапчик. Основы информатики и вычислительной техники. М.: Просвещение, 1989.- 207с.

3. Конспект лекций.

Теоретический материал

Файлы. Управление файлами.

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

(Последовательный) файл - это последовательность однотипных компонент, снабженная признаком конца и обрабатываемая последовательно - от начала к концу.

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

Над файлами можно выполнять два явных вида действий:

1.Просмотр (чтение) файла.

2.Создание (запись) файла - выполняется путем добавления новых компонент в конец первоначально пустого файла.

Файлы, с которыми работает программа, должны быть описаны в программе. Часть файлов (представляющих собой физические устройства) имеет в операционной системе стандартные имена. Например, для чтения данных с клавиатуры и вывода результатов на экран монитора мы пользуемся стандартными файлами Input и Output. Файл - принтер имеет имя Prn:

Имена нестандартных файлов, используемых в программе, необходимо описывать в разделе переменных. Описание файлового типа соответствует диаграмме:

 

<Имя типа> = File of  <тип компоненты>

 

Файл, компоненты которого являются символами, называется текстовым и имеет стандартный тип Text:

Примеры:

Type

ExtClass = File of Person;

CardList = File of Integer;

    

Var

F : Text;

Data : File of real;

List1, List2 : CardList;

Class10A, Class10B : ExtClass;

Для работы с нестандартными файлами имя файла должно быть отождествлено с реально существующим объектом - внешним устройством. Для отождествления внутреннего имени файла со внешним именем используется процедура Assign.

Assign(< внутреннее имя >, < 'внешнее имя'>).

После того, как имя файла описано и определено, можно приступить к работе с файлом. При использoвании нестандартных файлов следует помнить, что перед работой необходимо открыть их, т.е. сделать доступными из программы. Для этого нужно применить одну из двух следующих процедур:

  •  Процедура Rewrite(<имя файла>) - открывает файл для записи. Если файл ранее существовал, все данные, хранившиеся в нем, уничтожаются. Файл готов для записи первой компоненты.
  •  Процедура Reset(<имя файла>) - открывает файл для чтения. Файл готов для чтения из него первой компоненты.
  •  По окончании работы с файлом (на запись) он должен быть закрыт. Для этого используется процедура Close(<имя файла>). Эта процедура выполняет все необходимые машинные манипуляции, обеспечивающие хранение данных в файле.

Для обмена данными с файлами используют процедуры Read и Writе.

  •  Процедура Read(<имя файла>, <список ввода>) читает данные из файла (по умолчанию имя файла - Input). Список ввода - это список переменных.
  •  Процедура Write(<имя файла>, <список вывода>) записывает данные в файл (по умолчанию имя файла - Output). Список вывода - это список выражений.

Если F - файл типа Text, то в списке ввода/вывода допустимы переменные/выражения типа Integer, Real, Char, String[N]. В других случаях типы всех компонент списка должны совпадать с типом компоненты файла. При работе с файлами применяют стандартные логические функции:

  •  Eof(F) (end of file) - стандартная функция - признак конца файла. Если файла F исчерпан, то Eof(F) = True, в противном случае Eof(F) = False.
  •  Eoln(F) (End of line) - стандартная функция - признак конца строки текстового файла. Если строка текстового файла F исчерпана, то Eoln(F) = True, в противном случае Eoln(F) = False. Функция Eoln определена только для файлов типа Text.

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

Пример 1  Программа формирования файла как выборки из компонент другого файла.

Пусть F - файл записей вида (поле ключа, поле данных). Требуется сформировать файл G, содержащий те компоненты F, ключи которых удовлетворяют условию: значение ключа - целое число из интервала ]Min, Max[.

Program FileForm;

    Type Component = Record

              Key: Integer; { поле ключа }

              Data: String[20] { поле данных}

            End;

OurFile = File of Component;

     

Var F, G : OurFile;

Max, Min : Integer;

X: Component;

Begin

    Read(Max, Min);

    Assign(F, 'D:InpFile.dat');   {определено значение F }

    Assign(G, 'D:OutFile.dat');   {определено значение G }

    Reset(F);     {файл F открыт для чтения}

    Rewrite(G);     {файл G открыт для записи}

    While not(Eof(F)) do begin   {цикл чтения F - записи G}

      Read(F, X);  

      If (X.Key < Max) and (X.Key > Min)  then Write(G, X)

     end;

    Close(G)     {файл G закрыт}

   End;

Основные задачи обработки файлов.

Задача 1. Добавление элемента к файлу. Дан файл F и элемент X типа Component. Расширить F, включив в него компоненту X с сохранением упорядоченности.

Вот, наверное, единственно возможное решение:

  1.  Переписывать покомпонентно F в новый файл G до тех пор, пока F^.Key < X.Key ;
  2.  Записать X в G;
  3.  Переписать "хвост" файла F в G;
  4.  Переименовать G в F.

Задача 2. Удаление элемента из файла. Дан файл F и число K - значение ключа удаляемых элементов. Сократить F, удалив из него все компоненты с ключом K.

Решение аналогично решению задачи 1:

Переписывать покомпонентно F в новый файл G до тех пор, пока F^.Key < X.Key ;

Пока F^.Key = K читать F;

Переписать "хвост" файла F в G;

Переименовать G в F.

Задача 3. Слияние файлов. Даны файлы F и G. Требуется сформировать файл H, содержащий все компоненты как F, так и G.

Алгоритм состоит в последовательном и поочередном просмотре файлов F и G и записи очередной компоненты в H. Очередность определяется сравнением значений ключей компонент F и G

Procedure FileMerge(var F, G, H: OurFile);

         Var X, Y : Component;

                Flag : Boolean;

Procedure Step(var U:OurFile; var A, B:Component);

     begin

       Write(H, A);

          If Eof(U)

            then begin Write(H, B); Flag := False end

            else Read(U, A)

     end;

Procedure AppendTail(var U: Ourfile);

       Var A: Component;

       Begin

          While not(Eof(U)) do begin

          Read(U, A); Write(H, A)

         end

       end;




   Begin

      Reset(F); Reset(G); Rewrite(H);

      Flag := True;

      Read(F, X); Read(G, Y);

      While Flag do

        If X.Key < Y.Key

          then Step(F, X, Y)

          else Step(G, Y, X);

      AppendTail(F);

      AppendTail(G);

      Close(H)

  End.

Задача корректировки файла.

Задача корректировки файла является одной из основных задач обработки файлов. Рассмотрим ее формулировку:

Исходные данные задачи - корректируемый файл F, файл корректировок G. Результат - откорректированный файл H.  Будем считать, что файл F имеет тип OurFile. Тогда файл H имеет тот же тип. Файл корректировок G состоит из записей с вариантами:

Type

      CorСomponent = record

    Key: Integer;

job: (Include, Change, Exclude); {включить, изменить, исключить}

Case job of

 Include, Change: Data: String[20];  Exclude: ()

end

End;

       CorFile = File of CorComponent;

Var G : CorFile;

Это означает, что файл корректировок содержит компоненты, которые нужно включить в основной файл, компоненты, которые нужно исключить из файла и компоненты, содержание которых нужно изменить (с учетом содержания как основного файла, так и файла корректировок).

Файл F предполагается упорядоченным (по ключу), а файл G, вообще говоря, нет. Результатом должен быть упорядоченный откорректированный файл H.

Решение задачи обычно содержит два этапа:

а) Сортировка файла корректировок G по ключу;

б) Обобщенное слияние файлов F, G в H.

На практике файл G может быть небольшим. В этом случае применяют внутреннюю сортировку. Обобщенный алгоритм слияния производит все три варианта обработки файла F за один прогон.

Ход занятия.

Задание 1. Реализовать программу примера 1 для текстовых файлов F и G.

Задание 2. Реализовать процедуру преобразования текстового файла в структурированный файл примера 1.  

Задание 3. Составить процедуру вставки в текстовый файл записи с информацией о новом абоненте телефонного справочника.

Задание 4. Составить процедуру удаления из текстового файла записи с данной фамилией абонента.

Содержание и требования к оформлению протокола. Протокол занятия должен содержать условия и программу решения заданий 1-4.

Вопросы для самоконтроля.

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

Задачи для самостоятельного решения.

1.Разработайте программу Добавление элемента к файлу.

2.Разработайте программу Удаление элемента из файла.

3.Разработайте программу Пересечение файлов.

4.Разработайте программу Вычитание файлов.

5.Разработайте программу Корректировка файлов.

6.Разработайте программу корректировки упорядоченных файлов, в которой производится изменение значений ключевых полей.  Файл корректировок содержит пары

< старый ключ, новый ключ >.

7.Реализуйте улучшение a) алгоритма сортировки слиянием.

8.Реализуйте улучшение в) алгоритма сортировки - сортировку естественным слиянием.

Задания для зачетной работы.

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

  1.  Опишите тип записи - сведения о студенте группы, необходимые декану факультета. Сформируйте файл студентов своей подгруппы. Разработайте программу, которая определяет состояние успеваемости в подгруппе. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

  1.  Опишите тип записи - строчку зачетной книжки (экзаменационная часть). Сформируйте файл экзаменов, сданных Вами. Разработайте программу, которая определяет средний балл, составляет список экзаменаторов и по номеру семестра распечатывает результаты Вашей сессии. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

  1.  Опишите тип записи - строчку зачетной книжки (зачетная часть). Сформируйте файл зачетов, сданных Вами. Разработайте программу, которая определяет дни, когда Вы сдавали по два и более зачетов. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

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

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

  1.  Опишите тип записи - строчку в телефонной книге. Сформируйте файл записей - вашу телефонную записную книжку. Разработайте программу поиска номера телефона по фамилии и поиска адреса по номеру телефона. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

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

  1.  Опишите тип записи - сведения Ваших доходах и расходах. Сформируйте файл доходов - расходов. Разработайте программу корректировки этого файла. Разработайте программу получения сведений о расходах. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

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

  1.  Опишите тип записи  - сведения о пациентах поликлиники. Сформируйте файл пациентов поликлиники. Разработайте программу корректировки этого файла. Разработайте программу получения сведений о пациентах с данным заболеванием. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

  1.  Опишите тип записи  - сведения Ваших доходах и расходах. Сформируйте файл доходов - расходов. Разработайте программу корректировки этого файла. Разработайте программу получения сведений о доходах. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

  1.  Опишите тип записи – студенческий билет. Сформируйте файл студентов, родившихся в данном месяце. Разработайте программу, которая определяет месяц, в котором родилось наибольшее количество студентов. Расширьте возможности Вашей программы другими процедурами обработки файлов по Вашему выбору.

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


 

А также другие работы, которые могут Вас заинтересовать

79286. Профориентация и трудовая адаптация персонала 13.38 KB
  Профориентация и трудовая адаптация персонала Профессиональная ориентация и адаптация выступают важным составным элементом системы подготовки кадров и являются регулятором связи между системой образования и производством. Профессиональная ориентация представляет собой систему мер по профинформации профконсультации профподбору и профадаптации которая помогает человеку выбирать профессию наиболее соответствующую потребностям общества и его личным способностям и особенностям. Сложились следующие формы профориентационной работы: ...
79287. Основы организации труда персонала 15 KB
  Основы организации труда персонала Модель организации труда как и модель любой организации может быть представлена в трех основных аспектах. Вопервых организация труда как структура. Она определенным образом располагает соединяет моменты труда орудия груда предметы труда и сам труд. Вовторых организация труда как динамическая система т.
79288. Высвобождение персонала 55.85 KB
  Высвобождение персонала Высвобождение персонала это вид управленческой деятельности предусматривающий комплекс мероприятий по соблюдению правовых норм и организационно-психологической поддержки со стороны администрации при увольнении работников. Виды высвобождения персонала из организации приведены на рис. тот вид высвобождения который практически не прогнозируется администрацией и как правило происходит для нее неожиданно. Однако с точки зрения работника это наиболее мягкий вид высвобождения: работник готов покинуть организацию и...
79289. Управление социальным развитием организации 11.87 KB
  Управление социальным развитием организации Говоря об управлении социальным развитием организации можно использовать термин Социальная политика организации которая характеризуется как часть политики управления персоналом и включающая в себя все цели и мероприятия связанные с добровольными социальными услугами организации. Социальная политика организации означает уважение признание заслуг и поощрение людей. Соответственно этому система дополнительных социальных льгот должна быть не только привлекательной для сотрудника но и...
79290. Организация обучения персонала 19.09 KB
  Организация обучения персонала. Следует различать три вида обучения. Отечественный и зарубежный опыт выработал три концепции обучения квалифицированных кадров: Концепция специализированного обучения ориентирована на сегодняшний день или ближайшее будущее и имеет отношение к соответствующему рабочему месту. Концепция многопрофильного обучения является эффективной с экономической точки зрения так как повышает внутрипроизводственную и внепроизводственную мобильность работника.
79291. Аттестация персонала 13.3 KB
  Аттестация персонала организаций основного звена управления процедура определения квалификации уровня знаний практических навыков деловых и личностных качеств работников качества труда и его результатов и установления их соответствия несоответствия занимаемой должности. Аттестация персонала служит юридической основой для переводов продвижения по службе награждения определения размера заработной платы а также понижения в должности и увольнения. Аттестация направлена на улучшение качественного состава персонала определение степени...
79292. Управление деловой карьерой, служебно-профессиональным продвижением 353.73 KB
  Деловая карьера поступательное продвижение личности в какойлибо сфере деятельности изменение навыков способностей квалификационных возможностей и размеров вознаграждения связанных с деятельностью; продвижение вперед по однажды выбранному пути деятельности достижение известности славы обогащения. Планирование и контроль деловой карьеры заключаются в том что с момента принятия работника в организацию и до предполагаемого увольнения с работы необходимо организовать планомерное горизонтальное и вертикальное продвижение работника по...
79293. Работа с кадровым резервом 17.89 KB
  Работа с кадровым резервом Принципы формирования и источники кадрового резерва Формирование кадрового резерва основывается на следующих принципах: актуальность резерва потребность в замещении должностей должна быть реальной; соответствие кандидата должности и типу резерва требования к квалификации кандидата при работе в определенной должности; перспективность кандидата ориентация на профессиональный рост требования к образованию возрастной ценз стаж работы в должности и динамичность карьеры в целом состояние здоровья. Источниками...
79294. Теории мотивации трудовой деятельности 43.01 KB
  Различают первичные и вторичные потребности. Потребности можно удовлетворить вознаграждениями. Маслоу существует пять основных типов потребностей: физиологические потребности уровень 1; потребность в безопасности уровень 2; социальные потребности уровень 3; потребность в уважении и самоутверждении уровень 4; потребность в самовыражении уровень 5. Маслоу Эти потребности образуют иерархическую структуру которая определяет поведение человека причем потребности высшего уровня не мотивируют человека пока хотя бы частично не...