
- •Самарский государственный университет путей сообщения
- •Информатика Основы программирования в среде Turbo Pascal
- •О сновы программирования в среде turbo pascal введение
- •Лабораторная работа №1. Знакомство с интегрированной средой Turbo Pascal
- •Задание 1. Знакомство с интерфейсом среды Turbo Pascal
- •Задание 2. Работа с буфером обмена
- •Задание 3. Компиляция и запуск программы
- •Лабораторная работа №2. Программирование линейных алгоритмов
- •Задание 1. Вычисление площади треугольника
- •Задание 2. Вычисление сопротивления цепи
- •Задание 3. Вычисление значения функции
- •Задание 4. Самостоятельное решение задач
- •Тестовое задание. Вариант задает преподаватель!
- •Лабораторная работа №3. Разветвляющиеся алгоритмы
- •Р ис. 1. Блок-схема условного оператора
- •Задание 1. Использование условного оператора
- •Р ис. 2. Блок-схема программы
- •Задание 2. Вложенные условные операторы
- •Задание 3. Нахождение максимума двух чисел
- •Задание 4. Самостоятельное решение задач
- •Тестовое задание. Вариант вашего задания совпадает с номером вашего компьютера!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №4. Программирование циклов с условием
- •Задание 1. Оператор цикла с предусловием
- •Задание 2. Программа "Угадай число".
- •Задание 3. Алгоритм Евклида.
- •Задание 4. Оператор цикла с постусловием
- •Задание 5. Решение задач по теме
- •Лабораторная работа №5. Программирование циклов с параметром
- •Задание 1. Нахождение суммы
- •Задание 2. Таблица перевода миль в километры
- •Задание 3. Табулирование функции
- •Задание 4. Решение задач по теме Номера задач задает преподаватель!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №6. Решение задач целочисленной арифметики
- •Номера задач задает преподаватель!
- •Лабораторная работа №6. Одномерные массивы
- •Задание 1. Ввод и вывод элементов массива
- •Задание 2. Использование массивов при вычислении значений функции
- •Задание 3. Однотипная обработка элементов массива
- •Задание 4. Нахождение минимального (максимального) элемента массива
- •Задание 5. Нахождение суммы элементов массива
- •Задание 6. Нахождение количества элементов массива
- •Задание 7. Решение задач по теме Номера задач задает преподаватель!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №7. Строковые переменные
- •Задание 1. Проверка на совпадение первой и последней букв строки
- •Задание 2. Подсчет количества букв
- •Задание 3. Слова - перевёртыши
- •Задание 4. Замена букв в слове
- •Задание 5. Удаление символов в слове
- •Задание 6. Решение задач по теме Номера задач задает преподаватель!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №8. Файлы
- •Задание 1. Запись вводимых данных во внешний файл
- •Задание 2. Чтение данных из файла
- •Задание 3. Нахождение суммы компонент числового файла
- •Задание 4. Вывод списка учащихся из файла
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Библиографический список
Лабораторная работа №8. Файлы
Цель работы: Изучить практические навыки работы с переменными файлового типа.
Тип-файл представляет собой последовательность компонент одного типа, расположенных на внешнем устройстве (например, на диске). Элементы могут быть любого типа, за исключением самого типа-файла. Число элементов в файле при описании не объявляется. Работа с физическими файлами происходит через так называемые файловые переменные.
Тип-файл можно описать непосредственно при введении файловых переменных:
Var Z: File Of Real;
Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций (присваивать значение, сравнивать и т.д.). Их можно использовать лишь для выполнения операций с файлами (чтение, запись и т.д.).
Элементы файла считаются расположенными последовательно, то есть так же, как элементы линейного массива. Отличие состоит в том, что, во-первых, размеры файла могут меняться, во-вторых, способ обращения к элементам совсем другой: невозможно обратиться к произвольному элементу файла; элементы его просматриваются только подряд от начала к концу, при этом в каждый момент времени доступен только один элемент. Можно представить себе, что для каждого файла существует указатель, показывающий в данный момент на определенный компонент файла. После проведения операции чтения или записи указатель автоматически передвигается на следующий компонент.
Перед тем, как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом при помощи процедуры Assign:
Assign(<ф. п.>,<Имя файла>);
Здесь <ф. п.> имя файловой переменной, <Имя файла> строка, содержащая полное имя файла на внешнем носителе.
После объявления файл должен быть открыт одной из процедур:
Reset(<ф. п.>); открывается существующий файл для чтения, указатель текущей компоненты файла настраивается на начало файла. Если физического файла, соответствующего файловой переменной не существует, то возникает ситуация ошибки ввода-вывода.
Rewrite(<ф. п.>); открывается новый пустой файл для записи, ему присваивается имя, заданное процедурой Assign. Если файл с таким именем уже существует, то он уничтожается.
После работы с файлом он, как правило, должен быть закрыт процедурой
Close(<ф. п.>);
Важно!
Процедура закрытия обязательно должна выполняться для файла, в который производилась запись.
Для ввода информации из файла, открытого для чтения, используется оператор Read с небольшими изменениями:
Read(<ф. п.>, <Список ввода>);
При работе оператора происходит считывание данных из файла в переменные, имена которых указаны в списке ввода. Переменные должны быть того же типа, что и компоненты файла.
Вывод информации производит оператор
Write(<ф. п.>, <Список вывода>);
Данные из списка вывода заносятся в файл, открытый для записи.
Ниже приводится список основных процедур и функций, которые используются при работе с файлами.
Seek (<ф. п.>, <N компонента>) процедура, которая смещает указатель файла к его компоненту с номером N. (Первый компонент файла имеет номер 0!).
Filesize (<ф.п.>) функция, которая возвращает количество компонентов файла.
Filepos (<ф.п.>) функция, которая возвращает порядковый номер компонента файла, который будет обрабатываться следующей операцией ввода-вывода.
Eof(<ф.п.>) функция вырабатывает значение True, если файл окончен, и False в противном случае.