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

Обработка типизированных файлов

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

Задания для подготовки к работе

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

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

3. Разбейте задачу на подзадачи. Если задача небольшая, выделите самостоятельной подзадачей обработку файла.

4. Опишите блок-схему алгоритма решения задачи в укрупненных блоках.

5. Для каждой подзадачи опишите используемые структуры данных, если необходимо, и спецификацию и блок-схему алгоритма.

6. Опишите блок-схему алгоритма решения задачи с использованием блоков «предопределенный процесс».

7. Опишите процедуру для вывода содержимого файла на экран.

8. В программе обработки файла выведите содержимое файла на экран до и после обработки файла

9. Закодируйте алгоритм.

10. Файлы для обработки создайте с помощью отдельной программы.

11. Подберите наборы тестовых данных с обоснованием их выбора.

Задания к работе

1. Наберите программу, отладьте ее, протестируйте.

2. Выполните анализ ошибок, выявленных при отладке программы

Содержание отчет а

1. Формулировка задачи.

2. Ответы на пункты 2 – 11 заданий для подготовки к работе.

3. Описание ошибок, выявленных при отладке программы с указанием вида ошибки, и почему она была сделана.

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

1. Дан файл, компонентами которого являются последовательности целых чисел длины n (n -const). Каждую последовательность в файле заменить максимальным членом.

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

3. Даны целочисленные файлы f и g одинаковой длины. Оставить в f только те компоненты fi, которые больше компонентов gi файла g.

4. В файле целых чисел хранятся последовательности натуральных чисел. Ноль – разделитель последовательностей. Преобразовать файл, сохранив в каждой последовательности члены, предшествующие первому минимальному значению.

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

6. Дан файл, компонентами которого являются n -мерные векторы (n -const). Векторы с наибольшим модулем перенести в конец файла.

7. Из файла квадратных матриц порядка n (n -const) удалить матрицы, обратные последней.

8. В файле записей хранится информация о спортсменах: Ф.И.О., наилучший результат. Требуется сформировать команду из n лучших спортсменов. Преобразовать файл, сохранив в нем информацию только о членах команды.

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

10. Дан файл с записями, состоящими из названия города и численности его населения. Файл упорядочен по неубыванию численности. Преобразовать его так, чтобы города в файле были упорядочены по невозрастанию численности.

11. Даны целочисленные файлы f и g. Удалить из файла f числа, которые есть в g.

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

13. В файле целых чисел хранятся последовательности натуральных чисел. Ноль – разделитель последовательностей. Преобразовать файл, удалив из каждой последовательности члены, следующие за последним максимальным значением.

14. В файле записей хранятся многочлены в порядке убывания степеней. Каждая запись содержит 2 поля: степень члена и коэффициент. Члены с нулевыми коэффициентами не хранятся. Свободный член присутствует обязательно, даже если он равен нулю. Удалить из файла многочлены, для которых данное x является корнем.

15. В файле f записей хранится следующая информация о товарах, имеющихся на складе: наименование товара, цена единицы товара, общая стоимость и количество. В файле записей g хранится информация о заказах: наименование товара и его количество. Обновить файл f с учетом отпущенных товаров в соответствии с заказами из файла g. Если товар отпущен полностью, запись о нем из файла f удаляется.

16. Даны целочисленные файлы f и g. Удалить из файлов f и g числа, которые входят в файл g более двух раз.

17. Дан символьный файл. Сократить число пробелов между словами до одного.

18. В файле записей о результатах вступительных экзаменов хранится следующая информация: Ф.И.О. абитуриента, результаты экзаменов по физике и математике (от 0 до 10) и по русскому языку (зачет/незачет). Удалить из файла записи об абитуриентах, имеющих неудовлетворительные оценки (меньше 4 баллов или незачет), и об абитуриентах, у которых сумма баллов по физике и математике меньше данного p.

19. Дан файл целых чисел. Нулевых компонент в файле нет. Число отрицательных компонент равно числу положительных. Преобразовать файл таким образом, чтобы сначала были положительные числа, а затем отрицательные. Порядок следования как положительных, так и отрицательных чисел сохранить.

20. В файле целых чисел хранятся последовательности целых положительных чисел. Ноль – разделитель последовательностей. Преобразовать файл, удалив из каждой последовательности члены, предшествующие первому минимальному значению.

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

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

23. В файле целых чисел хранятся последовательности ненулевых чисел. Ноль – разделитель последовательностей. Преобразовать файл, удалив в каждой последовательности члены между первым и вторым отрицательным числом. Если отрицательных чисел меньше двух последовательность исключить из файла.

24. В файле целых чисел хранятся последовательности целых положительных чисел. Ноль – разделитель последовательностей. Преобразовать файл, сохранив в каждой последовательности члены, следующие за последним максимальным значением.

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

26. Дан файл квадратных матриц порядка n (n –const). Преобразовать его, заменив каждую матрицу, не являющуюся симметричной, транспонированной.

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

28. В файле хранятся последовательности целых чисел, отличных от нуля. Ноль – разделитель последовательностей. Преобразовать файл, сохранив в каждой последовательности числа между первым и вторым отрицательным числом. Если отрицательных чисел меньше двух последовательность исключить из файла.

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

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

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

1. Назовите отличия текстовых файлов от типизированных.

2. В каком виде хранятся записи в типизированных файлах?

3. Чем отличается чтение из текстовых и типизованных файлов?

4. Чем отличается запись в текстовые и типизованные файлы?

5. Одну и ту же последовательность целых чисел сохранили в текстовом файле и в типизированном файле целых чисел. Имеют ли эти файлы одинаковые размеры?

6. Перечислите библиотечные процедуры и функции Паскаля для осуществления прямого доступа к файлам.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: