
- •Лекция 1. Основы языков программирования.
- •Лекция 2. Способы записи алгоритмов.
- •Лекция 3. Знакомство с языком Паскаль.
- •Лекция 4. Структура программы на языке Паскаль.
- •Лекция 5. Стандартные типы данных.
- •5.1 Целые типы
- •5.2 Вещественные типы
- •5.3 Символьный тип.
- •5.4 Ограничительные типы.
- •5.5 Перечислимые типы.
- •Л.6. Операторы языка Паскаль Ввод исходных данных.
- •Расчет.
- •Стандартные функции Турбо Паскаля
- •Стандартные процедуры
- •Константы
- •Вывод результатов
- •Лекция 7. Операторы условий if, case
- •7.1 Оператор безусловного перехода
- •7.2 Условный оператор
- •7.3 Оператор варианта
- •Лекция 8. Операторы цикла for, while, repeat
- •8.1 Оператор цикла с предусловием.
- •8.2 Оператор цикла с постусловием.
- •8.3 Оператор цикла с параметром.
- •Лекция 9. Одномерные и двумерные массивы.
- •Работа с массивами
- •Инициализация элементов массива
- •Лекция 10. Процедуры и функции в Паскаль.
- •Лекция 11. Параметры в процедурах.
- •11.1 Механизм параметров.
- •11.2. Параметры - значения.
- •11.3. Параметры - переменные.
- •11.4. Безтиповые параметры.
- •Лекция 12. Типы данных, определяемые пользователем. Записи.
- •Лекция 13. Работа с файлами. Обработка ошибок в Паскаль.
- •13.1 Файловые типы
- •13.2 Операции ввода-вывода Write, Read
- •13.3. Перемещение по файлу.
- •13.4 Обработка ошибок ввода - вывода
- •13.5 Текстовые файлы
- •13.6 Файлы без типа.
- •Лекция 14. Модули и внешние файлы в Паскаль.
- •15.1. Компиляция и использование модулей
- •15.2. Компиляция и поиск модулей.
- •15.3. Стандартные модули
- •Лекция 15. Динамические структуры данных.
- •15.1 Ссылочные типы и указатели.
- •15.2 Статические переменные.
- •15.3. Создание и удаление динамических переменных.
- •15.4. Установка размеров динамической памяти.
- •Лекция.16. Графические возможности языка Паскаль.
- •Лекция17. Практическое применение языка Паскаль в решении технологических и экологических задач
13.2 Операции ввода-вывода Write, Read
Процедура read предназначена для чтения значений из файла в программу. Первым параметром должно быть имя файловой переменной, к которой была применена одна из операций открытия (reset, rewrite). Далее должны следовать переменные, в которые будут помещаться читаемые из файла значения. Тип этих переменных должен совпадать с базовым типом файла из первого параметра. Начиная с текущей позиции указателя файла будут последовательно читаться значения, содержащиеся в файле.
Процедура write имеет обратный смысл, позволяя записывать в файл информацию из программы. Первым параметром должна быть файловая переменная (открытая). Далее должен следовать список выражений.
Выполнение процедуры write следующее:
Значение очередного выражения будет помещено в файл в место, отмеченное текущим указателем. После этого текущий указатель будет передвинут на одну позицию и действия повторяются для следующего выражения из списка параметров вызова процедуры write.
13.3. Перемещение по файлу.
При помощи двух процедур: Seek, Truncate.
И три дополнительные функции: FileSize, FilePos, EOF.
Процедура Seek позволяет явно изменить значение текущего указателя, установив его на элемент файла с заданным номером. Процедура имеет два параметра : переменную файлового типа и целое (типа longint).
Функции FileSize, FilePos позволяют получить дополнительную информацию о файле, который указывается в качестве их единственного параметра. Первая процедура возвращает общее число элементов файла, а вторая - номер текущего указателя.
Seek(f, FilePos(f)+1) {пропуск одного элемента}
Seek (f,0) {установка указателя на начало файла}
Seek(f, FileSize(f)) {установка за следующий за последним текущего указателя.
Добавление в 'хвост' файла данных}
Функция Eof вызывается с одним параметром - файловой переменной - и возвращает логическое значение true или false в зависимости от того достигнут ли конец файла или нет.
Процедура truncate используется для отсечения от файла его хвостовой части, начиная от текущей позиции указателя включительно. Параметр - файловая переменная.
13.4 Обработка ошибок ввода - вывода
При работе с файлами на внешних устройствах с достаточно высокой вероятностью может возникнуть ошибочная ситуация. По умолчанию при выполнении любой операции автоматически производится проверка на возникновение ошибок. При обнаружении ошибки выполнение программы прекращается, а на экране дисплея выводится краткое диагностическое сообщение, содержащий условный номер ошибки.
В системе имеется возможность предусмотреть собственную реакцию на ошибочные ситуации в самой программе. Для этого необходимо в начале опасного фрагмента отключить автоматическую проверку на возникновение ошибки {$I-}.
Тогда программа в случае ошибки не вызовет ее остановку, а запомнит в стандартной функции без параметров. И в зависимости от ее значения построить дальнейшие действия.
….
Assign(f, 'c:/data');
{$I-}
reset(f);
{$I+}
if ioresult <>0 then
write ('ошибка при открытии файла');
…..
Следует отметить, что после отключения режима автоматического контроля следует проверить сразу состояние ioresult. Пока этого не будет сделано, работу продолжать нельзя. После обращения переменная обнуляется до следующего аварийного завершения обращения к файлу.
Assign(f, 'c:/data' );
{$I-}
reset (f);
code:=ioresult;
if code<>0 then begin
write('ошибка при открытии файла : ');
case code of
1: write ('файл не найден');
3: write ('маршрут не найден');
4: write ('слишком много открытых файлов');
5: write ('запрет доступа к файлу');
12: write ('некорректный код доступа к файлу');
else
….
End;
End;
{$I+}