- •Ответственный за выпуск: Бивойно п.Г. , декан факультета электронных и информационных технологий, канд. Техн. Наук, доцент
- •Содержание
- •Лабораторная работа № 7. Одномерные массивы
- •Краткие теоретические сведения о массивах
- •Понятие массив
- •Объявление массива
- •Передача массивов в процедуры и функции
- •Операции с массивами
- •Типовые процедуры и функции для работы с массивами
- •Описание типа учебного массива
- •Процедуры создания, ввода и вывода массивов
- •Процедура создания случайного массива
- •Процедура ввода массива из строки текста
- •Процедура ввода массива из компонента tMemo
- •Процедура ввода массива с помощью функции InputBox
- •Функция преобразования массива в строку символов
- •Процедура вывода массива в компонент tMemo
- •Обработка массивов
- •Функция вычисления суммы элементов массива
- •Процедура определения минимального, максимального, и их индексов в массиве
- •Функция определения позиции элемента в массиве
- •Процедура удаления элементов из массива
- •Процедура переворота массива
- •Процедура циклического сдвига части элементов массива влево
- •Процедура формирования массива накопленных значений
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 8. Сортировка массивов
- •Методы сортировки массивов
- •Сортировка выбором
- •Пример сортировки массива по возрастанию методом выбора
- •Процедура сортировки массива методом выбора
- •Сортировка обменом (метод пузырька)
- •Пример сортировки массива по возрастанию методом обмена
- •Процедура сортировки массива методом обмена
- •Сортировка вставкой или включением
- •Пример сортировки массива по возрастанию методом вставки
- •Процедура сортировки методом вставки
- •Сортировка по усложненным правилам
- •Обработка упорядоченных массивов
- •Вставка элемента в отсортированный массив
- •Слияние двух отсортированных массивов в один
- •Поиск позиции элемента в отсортированном массиве
- •Удаление элемента из отсортированного массива
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 9. Работа с двумерными массивами (матрицами)
- •Краткие теоретические сведения
- •Описание матриц
- •Использование компонента StringGrid для ввода-вывода матриц
- •Тотальная обработка данных в матрицах
- •Выборочная обработка матрицы
- •Перестановки элементов матрицы
- •Удаление и вставка элементов матрицы
- •Сортировка элементов матрицы
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 10. Работа с записями
- •Краткие теоретические сведения
- •Объявление типа для записи
- •Массивы записей
- •Поля записей как массивы
- •Сортировка массивов записей
- •Ввод-вывод записей
- •Создание проекта «Результаты аттестации»
- •Интерфейс пользователя для проекта
- •Определение типов данных
- •Инициализация интерфейса
- •Добавление строки в таблицу
- •Удаление строки из таблицы
- •Процедура создания массива записей по содержимому StringGrid
- •Процедура отображения массива в компоненте StringGrid
- •Процедура сортировки массива записей по группе и фамилии
- •Сортировка записей по количеству неудовлетворительных оценок и среднему баллу
- •Выборка студентов какой-нибудь группы, имеющих средний балл выше 4
- •Подсчет числа студентов, имеющих более 2-х неудовлетворительных оценок и вывод упорядоченного списка этих студентов
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 11. Работа с типизироваными файлами
- •Краткие теоретические сведения
- •Объявление файловой переменной
- •Назначение файла файловой переменной
- •Открытие файла
- •Текущая позиция файла
- •Чтение данных из файла
- •Запись данных в файл
- •Обрезка “хвоста” файла
- •Закрытие и удаление файлов
- •Перечень основных процедур и функций для работы с типизированными файлами
- •Создание проекта «Результаты аттестации»
- •Требования к проекту
- •Интерфейс пользователя для проекта
- •Определение типов данных
- •Настройка интерфейса пользователя
- •Вспомогательные процедуры для работы с файлом Процедура выбора имени файла
- •Процедура открытия файла
- •Процедура вывода файла в StringGrid
- •Процедуры работы со StringGrid1
- •Процедуры реализации пунктов меню fileMenu Добавление данных из StringGrid1 в файл
- •Поиск записи по фамилии
- •Удаление записи по фамилии
- •Сохранение файла под другим именем
- •Процедуры для работы с упорядоченными файлами Процедура сортировки файла
- •Поиск записи в отсортированном файле
- •Добавление записи в отсортированный файл
- •Удаление записи из отсортированного файла
- •Процедуры реализации пунктов меню sortMenu Реализация пункта меню «Сортировка файла по фамилиям»
- •Реализация пункта меню «Поиск студента по фамилии»
- •Реализация пункта меню «Добавление в упорядоченный файл из StringGrid1»
- •Реализация пункта меню «Удаление записи из отсортированного файла»
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 12. Работа с текстовыми файлами
- •Краткие теоретические сведения
- •Объявление файловой переменной для текстового файла
- •Связывание файловой переменной с конкретным файлом
- •Открытие файла
- •Создание нового файла
- •Открытие файла для чтения
- •Открытие файла для дополнения
- •Текущая позиция файла
- •Записи данных в файл.
- •Чтение данных из файла
- •Особенности чтения чисел из текстового файла
- •Особенности чтения данных типа String
- •Особенности чтения и записи символов
- •Закрытие и удаление файлов
- •Перечень основных процедур для работы с текстовыми файлами
- •Общая схема работы с текстовым файлом
- •Примеры работы с текстовыми файлами
- •Пример ввода-вывода при решении простейшей задачи
- •Пример добавления данных из одного файла к другому
- •Пример чтение из файла в поле Memo
- •Пример ввода-вывода при работе с массивом
- •Пример ввода-вывода при работе с матрицей
- •Пример ввода-вывода при работе с записями
- •Задания для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •РекомендоваНная литература
Содержание отчета
-
Наименование работы.
-
Цель работы.
-
Краткая характеристика типа «Запись».
-
Интерфейс созданного проекта.
-
Текст модуля проекта с пояснениями в виде комментариев.
-
Результаты тестирования проекта в виде копий окон.
-
Выводы.
Контрольные вопросы
-
Характеристика типа «Запись». Описание типа, доступ к полям. Операции над записями.
-
Работа с массивами записей.
-
Объяснение текстов подпрограмм модуля и связей их с событиями и другими подпрограммами.
-
Написать процедуру для реализации запроса к массиву записей по указанию преподавателя.
-
Написать процедуру для реализации сортировки массива записей по правилу, заданному преподавателем.
Лабораторная работа № 11. Работа с типизироваными файлами
Цели работы:
-
Ознакомиться с принципами организации записей и хранением информации в типизированных файлах.
-
Познакомиться со способами описания типизированных файлов в Object Pascal.
-
Познакомиться со стандартными процедурами и функциями, которые обеспечивают работу с типизированными файлами.
-
Освоить алгоритмы обработки типизированных файлов.
Краткие теоретические сведения
Под файлом понимается именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, диска CD), представляющая собой последовательность байтов.
Любой файл имеет такие характерные особенности:
-
у него есть имя, что дает возможность программе работать одновременно с несколькими файлами;
-
файл не знает, то есть не содержит информацию о том, какого типа данные в нем находятся. Интерпретация последовательности байтов в файле зависит от программы, которая обрабатывает файл.;
-
длина файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.
-
Файл содержит специальный признак конца файла.
Файл, не содержащий ни одного байта кроме признака конца файла, называется пустым.
Типизированный файл - это последовательность данных одного типа.
Каждую единицу данных файла в типизированном файле называют записью, даже если в файле хранятся данные типа Char. В этом случае, записью будет один символ.
Особенность типизированных файлов в том, что все его записи имеют одинаковую длину и пронумерованы, начиная с нуля. Благодаря этому расположение записи на диске или в памяти может быть легко вычислено по ее номеру. Поэтому типизированные файлы называют еще файлами с прямым доступом к записям.
-
Объявление файловой переменной
В языке ObjectPascal программист оперирует не с самим файлом, а с некоторой переменной, которая представляет файл в программе. Такая переменная называется файловой переменной. Как и любая другая переменная, файловая переменная должна быть объявлена в разделе описания переменных с указанием ее типа. Типы файловых переменных зависят от типов данных файла. Следует заметить, что переменная файлового типа является достаточно специфичной. Ее нельзя, например, использовать в выражениях и операциях присваивания.
Объявление типа для файловой переменной выглядит так:
Рисунок 11.1 – Структура описания типа файловой переменной
Ниже приводится несколько примеров описания таких типов.
type
TMyCharFile = file of char; // файл символов
TMyRealFile = file of real; // файл вещественных чисел
TMyIntFile = file of integer; // файл целых чисел
Файловая переменная объявляется так же, как и любая другая переменная, например, так:
var f1: TMyIntFile; f2: TMyCharFile;
ObjectPascal позволяет объявлять файловые переменные и без введения соответствующего типа, то есть допустимо такое описание:
var f1: file of integer; f2: file of char;
Но приведенный вариант описания применять нецелесообразно, так как переменные, объявленные таким образом в разных местах, будут считаться несовместимыми, несмотря на идентичность типов данных. Кроме того, такое указание типа недопустимо при описании формальных параметров в процедурах и функциях