Пример программ обработки числовых файлов

Воробейчикова Ольга Владимировна, Каверина Ирина Сергеевна

Программирование на языке Object Pascal в среде Borland Delphi 7.0

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

Часть 1.

Методические указания. 2

К теме 12: 2

К теме 13: 2

Тема 12. Типизированные файлы.. 3

Теоретическая часть. 3

Пример программ обработки числовых файлов. 3

Контрольные вопросы.. 4

Тестовые задания. 4

Практические задания. 5

Задание 1: работа с готовым файлом данных (контрольное) 5

Задание 2: работа с готовым файлом данных (контрольное) 5

Задание 3: создание и обработка типизированного файла. 6

Тема 13. Текстовые файлы.. 7

Теоретическая часть. 7

Примеры работы с текстовыми файлами. 7

Контрольные вопросы.. 10

Тестовые задания. 10

Практические задания. 10

Задание 1: работа с текстовыми файлами (контрольное) 10

Задание 2: работа с текстовыми файлами (контрольное) 11

Задание 3: обработка текстовых файлов, содержащих одномерные массивы (контрольное) 12

Задание 4: обработка текстовых файлов, содержащих одномерные массивы.. 12

Задание 5: обработка текстовых файлов, содержащих матрицы (контрольное) 14

Задание 6: обработка текстовых файлов, содержащих матрицы.. 14

Приложение: Примеры типовых алгоритмов. 16

Задание элементов одномерного массива. 16

Вывод элементов одномерного массива. 16

Обработка элементов одномерного массива. 17

Задание элементов двумерного массива. 18

Вывод элементов двумерного массива. 19


Методические указания

К теме 12:

Исходные файлы чисел находятся на сервере в папке:

\2 курс\ кибернетики\ практики\

Файлы обязательно скопировать в папки своих проектов.

Файл отчета включает:

1) ответы на тестовые вопросы по теме (стр. 4);

2) листинг и скрин-шот экрана с результатом работы программ;

В рейтинг входят все три задания.

 

К теме 13:

Файл отчета включает:

1) ответы на тестовые вопросы по теме (стр. 10);

2) листинг и скрин-шот экрана с результатом работы программ;

В рейтинг входят первые два задания.

 


Тема 12. Типизированные файлы

Цель изучения темы: В результате изучения темы студенты должны усвоить понятие «типизированного файла» и приобрести навыки работы с ними.

Теоретическая часть

Типизированным файлом в Object Pascal называется переменная, которую можно рассматривать как бесконечный список однотипных элементов. Для определения конца файла используется стандартная функцияEOF, которая является булевской и возвращает ИСТИНУ, когда достигнут конец файла.

Для чтения элементов из файла используется процедура-оператор READ, для записи – WRITE. Каждое чтение элемента из файла вызывает перемещение курсора внутри файла к последующему элементу. Каждая запись элемента в файл вызывает перемещение курсора внутри файла к концу файла.

Пример:

Пусть в файле целых чисел хранится следующий набор значений: 2 4 3 1 0.

Var F: file of integer;

X: integer;

. . .

Reset(f); //перемещение курсора в файле на его начало

Read(f,x); //считываем первый элемент файла x=2

Read(f,x); // считываем второй элемент файла x=4

Reset(f); //перемещение курсора в файле на его начало

For i:=1 to 5 do read(f,x);//считываем первые 5 элементов

//при выходе из цикла в х – 5 элемент: x=0

. . .

 

Так как по определению, файл – это бесконечный список, то для его обработки чаще всего используются циклы с пред- или с пост-условием, для выхода из цикла используя значений функции EOF.

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

Пример программ обработки числовых файлов

Программа создания файла целых чисел

Program Project1;

{---Программа формирования файла целых чисел---}

{$APPTYPE CONSOLE}

Uses SysUtils, EsConsole in ‘EsConsole.pas’;

Var F : File of Integer ;

i, j : Integer ;

Begin

Randomize;

AssignFile (F, ‘file.dat’) ;

Rewrite (F) ;

for i := 1 to Random(20) do

Begin

j := Random(100) ;

Write (F,j);

end ;

CloseFile (F) ;

end.

 

Программа обработки файла целых чисел

Program Project1;

{--- Программа распечатки существующего файла целых чисел---}

{$APPTYPE CONSOLE}

Uses SysUtils, EsConsole in ‘EsConsole.pas’;

Var F : File of Integer;

i, j : Integer;

Begin

AssignFile (F, ‘file.dat’) ;

Reset (F) ;

{---Распечатка данных из файла на экран---}

WriteLn(‘Исходный файл:’) ;

While not eof(F) do

Begin

read (F, i);

write (i : 3) ;

end ;

Writeln;

CloseFile (F) ;

end.

Контрольные вопросы

1. Что такое файл?

2. Как обрабатывать элементы файла в программе?

Тестовые задания

1. КАКИЕ КОНСТРУКЦИИ ИСПОЛЬЗУЮТСЯ ПРИ ОПРЕДЕЛЕНИИ ТИПИЗИРОВАННЫХ ФАЙЛОВ

1) File

2) Of

3) <тип элементов>

4) <тип файла>

5) While

6) Repeat

7) for

2. ВЫБЕРИТЕ ВЕРНЫЙ ПРИМЕР ОПИСАНИЯ ФАЙЛОВ, СОДЕРЖАЩИХ ВЕЩЕСТВЕННЫЕ ЧИСЛА

1) Var f: file of real;

2) Var f: array of real;

3) Var f: real file;

4) Var f: real file real;

5) Var f: real file of real element;

3. ВЫБЕРИТЕ ВЕРНЫЙ ПРИМЕР ОПИСАНИЯ ФАЙЛОВ, СОДЕРЖАЩИХ СИМВОЛЫ

1) Var st: file of string[1];

2) Var st: file of array[1] of char;

3) Var st: char file of char;

4) Var st: file of char;

 

Практические задания

Задание 1: работа с готовым файлом данных (контрольное)

Цель задания

1. Изучение операторов, использующихся при работе с файлами.

2. Получение навыков работы с числовыми файлами.

Постановка задачи

Дан файл целых чисел dosja.my1 (маршрут уточнить у преподавателя). Определить:

· количество элементов в файле;

· серединный элемент файла;

· отсечь данные, составляющие последнюю четверть файла.

Методические указания

1. Программа должна вначале обязательно выводить содержимое исходного файла на экран.

2. После отсечения также вывести оставшееся содержимое файла на экран.

3. Все выводы обязательно сопровождать заголовками.

 

Задание 2: работа с готовым файлом данных (контрольное)

Цель задания

1. Изучение операторов, использующихся при работе с файлами.

2. Получение навыков работы с числовыми файлами.

Постановка задачи

Дан файл вещественных чисел dosja.my2 (маршрут уточнить у преподавателя). Определить:

· количество элементов в файле;

· серединный элемент файла;

· отсечь данные, составляющие последнюю четверть файла.

Методические указания

1. Программа должна вначале обязательно выводить содержимое исходного файла на экран.

2. После отсечения также вывести оставшееся содержимое файла на экран.

3. Все выводы обязательно сопровождать заголовками.

Задание 3: создание и обработка типизированного файла

Цель задания

1. Изучение алгоритмов обработки типизированных файлов.

2. Закрепление навыков работы с числовыми файлами.

Постановка задачи

Реализовать алгоритм решения задачи, указанной в индивидуальном варианте.

Методические указания

1. Написать одну программу, создающую файл данных. Данные сохранить в файле с расширением my.

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

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

 

Варианты заданий

1 вариант. Дан файл, компоненты которого целые числа. Найти количество четных чисел среди компонент и сумму квадратов нечетных чисел.

2 вариант. Дан файл с компонентами из действительных чисел. Найти разность первой и последней компонент файла.

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

4 вариант. Дан файл с компонентами из действительных чисел. Найти наименьшее из значений компонент с четными номерами.

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

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

7 вариант. Дан файл с компонентами из действительных чисел. Найти модуль суммы и квадрат произведения компонент файла.

8 вариант. Дан файл с компонентами из действительных чисел. Найти сумму квадратов компонент файла.

9 вариант. Дан файл с компонентами из действительных чисел. Найти произведение компонент файла.

10 вариант. Дан файл с компонентами из действительных чисел. Найти сумму компонент файла.

11 вариант. Дан файл с компонентами из действительных чисел. Найти количество одинаковых элементов в файле.

12 вариант. Дан файл с компонентами из действительных чисел. Найти количество элементов, равных числу, введенному с клавиатуры.

 

 


Тема 13. Текстовые файлы

Цель изучения темы: В результате изучения темы студенты должны освоить понятие «текстовые файлы» и приобрести навыки работы с такими файлами.

Теоретическая часть

Текстовые файлы– это файлы, состоящие из строк различной длины. В строках могут находиться данные разных типов: символы, числа.

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

В текстовых файлах можно хранить разнообразные данные: числа, символы. Для определения конца строкииспользуется стандартная логическая функцияEOLN, которая возвращает значение ИСТИНА (TRUE), когда достигнут конец строки.

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

 

Для записи данных в текстовой файл – процедуры WRITE и WRITELN.