- •Указания по выполнения практических и лабораторных работ
- •Лабораторная работа № 1 Блок-схемы как графическое представление алгоритмов. Основные блоки, используемые в блок- схемах алгоритмов
- •Краткие теоретические сведения Основные этапы решения задач на компьютере
- •Языки программирования
- •Трансляторы
- •Язык программирования Паскаль
- •Использование среды программирования турбо паскаль
- •Порядок выполнения работы
- •Типы вычислительных процессов
- •Блок-схемы алгоритмов
- •Примеры составления блок-схемы алгоритма
- •Основные файлы пакета Турбо Паскаль
- •Запуск интегрированной среды программирования Турбо Паскаль
- •Работа с меню ис
- •Меню File
- •Меню Run
- •Меню Compile
- •Меню Debug
- •Меню Tools
- •Меню Options
- •Меню Window
- •Меню Help
- •Порядок выполнения работы
- •Процедуры ввода-вывода
- •Порядок выполнения работы
- •Оператор записи WriteLn аналогичен процедуре Write, но после вывода последнего в списке значения для текущей процедуры WriteLn происходит перевод курсора к началу следующей строки.
- •Пример программы с использованием процедур ввода-вывода данных с различными форматами выводимых данных
- •Порядок выполнения работы
- •Операторы языка Паскаль
- •Оператор присваивания
- •Оператор безусловного перехода (go to)
- •Порядок выполнения работы
- •Оператор выбора case
- •Порядок выполнения работы
- •Оператор повтора for
- •Примеры программ с использованием оператора for
- •Оператор повтора Repeat
- •Пример программы с использованием оператора repeat
- •Пример программы с использованием операторов присваивания, повтора и выбора
- •Порядок выполнения работы
- •Пример программы с использованием оператора повтора while
- •Порядок выполнения работы
- •Примеры описания одномерных и двумерных массивов
- •Действия над массивами
- •Действия над элементами массива
- •Ввод-вывод элементов массива
- •Пример программы ввода-вывода одномерного массива
- •Пример программы ввода-вывода двумерного массива
- •Порядок выполнения работы
- •Пример программы нахождения в одномерном массиве максимального элемента
- •Порядок выполнения работы
- •Порядок выполнения работы
- •Основные логические структуры:
- •Функции в Паскале
- •Встроенные функции и процедуры
- •Арифметические процедуры и функции
- •Скалярные процедуры и функции
- •Функции преобразования типов
- •Процедуры управления программой
- •Специальные процедуры и функции
- •Вызов стандартной процедуры или функции
- •Порядок выполнения работы
- •Пример программы с использованием функции, определенной пользователем
- •Порядок выполнения работы
- •Пример программы с использованием процедуры, определенной пользователем
- •Механизм передачи параметров
- •Порядок выполнения работы
- •Нетрадиционное использование подпрограмм. Косвенная рекурсия
- •Порядок выполнения работы
- •Линейный поиск
- •Линейный поиск в упорядоченном массиве данных
- •Бинарный (двоичный) поиск
- •Пример программы с использованием алгоритма бинарного поиска
- •Порядок выполнения работы
- •Методы внутренней сортировки
- •Сортировки включением
- •Сортировка выбором
- •Порядок выполнения работы
- •Шейкерная сортировка
- •Пирамидальная сортировка
- •Обменная сортировка разделением
- •Порядок выполнения работы
- •Естественное слияние
- •Многопутевое слияние
- •Порядок выполнения работы
- •Пример разработки собственного модуля
- •Порядок выполнения работы
- •Скалярные процедуры и функции
- •Функции преобразования типов
- •Процедуры управления программой
- •Специальные процедуры и функции
- •Вызов стандартной процедуры или функции
- •Порядок выполнения работы
- •Формат описания строкового типа
- •Фрагмент описания строковых данных
- •Стандартные строковые процедуры и функции
- •Пример программы работы со стандартными строковыми процедурами и функциями
- •Примеры программ работы со строковыми переменными
- •Порядок выполнения работы
- •Пример программы работы с записями
- •Порядок выполнения работы
- •Пример программы работы с записями
- •Порядок выполнения работы
- •Операции над множествами
- •Объединение Пересечение Разность
- •Порядок выполнения работы
- •Формат описания файлового типа
- •Средства обработки файлов
- •Текстовые файлы
- •Пример программы работы с текстовым файлом
- •Порядок выполнения работы
- •Средства работы с типизированными файлами
- •Пример программы работы с типизированным файлом
- •Порядок выполнения работы
- •Средства работы с нетипизированными файлами
- •Пример программы для работы с типизированными файлами
- •Порядок выполнения работы
- •Распределение памяти при выполнении программы
- •Пример программы распределения памяти и получения доступа к полям psp.
- •Порядок выполнения работы
- •Статические и динамические переменные
- •Указатели
- •Типизированные указатели
- •Нетипизированный указатель (pointer)
- •Доступ к переменной по указателю
- •Управление динамической памятью
- •Процедуры динамического распределения
- •Пример программы с использованием динамической памяти
- •Порядок выполнения работы
- •Пример программы создания и использования связанного списка
- •Порядок выполнения работы
- •Параметр процедурного типа
- •Порядок выполнения работы
- •Контрольные вопросы
- •Литература
- •Содержание
Порядок выполнения работы
Изучить теоретические сведения по теме “Написание программы на языке Паскаль с использованием файловых переменных. Разработка программы для работы с текстовым файлом”.
Получить у преподавателя индивидуальное задание и разработать программу для работы с текстовым файлом согласно заданному варианту.
Показать работающую программу преподавателю.
Ответить на контрольные вопросы.
Контрольные вопросы
Понятие файла. Описание файлового типа данных.
Файлы последовательного и прямого доступа. Средства обработки файлов.
Текстовые файлы. Процедуры и функции работы с текстовыми файлами.
Лабораторная работа № 29
Разработка программы для работы с типизированным файлом
Цель работы: формирование знаний и умений по работе с типизированными файлами.
Краткие теоретические сведения
Типизированные файлы
К типизированным файлам относятся файлы строго определенного типа. Чаще всего это файлы, состоящие из записей. Они применяются для создания различных баз данных. Стандартное задание в программе такой файловой переменной осуществляется следующим образом:
Type
FileRec = record
…
end;
Var
F : file of FileRec;
Если в текстовых файлах содержимое рассматривается как наборы символов, подготовленные специальным образом с учетом общепринятых соглашений о представлении текстовой информации, то в типизированных файлах их содержимое рассматривается как последовательность записей определенной структуры. Единицей измерения такого набора данных является сама запись. Длина записи определяется как SizeOf(FileRec). Так как длина любого компонента типизированного файла строго постоянна, это дает возможность организовать прямой доступ к любому компоненту по его порядковому номеру, поэтому типизированные файлы часто называют файлами прямого доступа.
Seek(var F; NumRec: Longint)
Процедура устанавливает текущую файловую переменную F на запись с номером NumRec; F - файловая переменная для типизированных и нетипизированных наборов данных. При открытии типизированного файла текущая позиция для работы с ним установлена на начало первой записи, которая по принятым соглашениям имеет номер 0, т. е. номер физической записи на единицу меньше номера логической записи.
Средства работы с типизированными файлами
Для работы с файлами прямого доступа дополнительно можно использовать следующие средства:
Truncate(var F);
Процедура уничтожает все компоненты файла F, начиная с места текущего положения файлового указателя.
FilePos(var F) : Longint
Функция возвращает для файла F текущую файловую позицию (номер записи, на которую она установлена) в виде значения типа Longint
FileSize(var F) : Longint
и его размер (количество записей) в виде значения типа Longint.
Для пустого файла вызов FileSize возвращает значение 0. Локализация ошибок при обращении к внешним носителям для обоих функций производится через IOresult.
Для того чтобы очередная запись могла быть записана в конец типизированного файла, необходимо перевести текущую файловую позицию в конец файла. Когда создается новый файл, это происходит автоматически после формирования каждой очередной записи. Если файл уже создан и файловая позиция, установленная по Seek, находится где-нибудь в начале файла (FilePos(F) < FileSize(F)), то в конец файла ее позволяет перевести вызов
Seek(F, FiieSize(F));
В каждом файле число логических и физических записей совпадает, а при позиционировании номер физической записи на единицу меньше номера логической записи.
Когда записи располагаются в неотсортированном по фамилиям порядке, поиск необходимо осуществлять последовательно по всему файлу. Такое расположение записей требует значительных расходов ресурсов системы для поиска нужной записи. Любая программная система по манипулированию базами данных всегда имеет в своем составе средства упорядочения записей по ключу.
Ключом называется совокупность знаков, идентифицирующая запись в файле. Ключ сортировки — одно или несколько полей в записи файла, по содержимому которых осуществляется упорядочение его записей, например список учащихся в классном журнале отсортирован по ключу фамилия.
На практике это выражается в создании так называемых индексных файлов по отношению к главному файлу данных. Индексные файлы содержат номера записей главного файла, отсортированных по конкретному ключу. Такое построение позволяет экономить время обращения к внешним носителям, так как во всех перемещениях при сортировке участвуют записи малой длины, содержащие номера записей главного файла в соответствии с ключом сортировки.