- •Программирование в системе Pascal abc
- •Введение
- •1. Система программирования pascal abc
- •1.1. Структура меню среды
- •1.2. Команды редактора Pascal abc
- •Команды удаления и вставки
- •1.3. Правила оформления программ
- •1.4. Компиляция и исправление синтаксических ошибок
- •1.5. Этапы подготовки и решения задач на компьютере
- •1.6. Словарь основных терминов
- •2. Начальные сведения о языке pascal abc
- •2.1. Алфавит языка
- •2.2. Константы
- •2.3. Идентификаторы и типы данных
- •2.4. Переменные и именованные константы
- •2.5. Структура простой программы и комментарий
- •3. Оператор присваивания и числовые данные
- •3.1. Арифметические выражения
- •Приоритеты операций в выражении
- •3.2. Оператор присваивания
- •3.3. Процедуры ввода-вывода
- •3.4. Стандартные функции Pascal abc
- •3.5. Целые типы в Pascal abc
- •3.6. Вещественные типы
- •Переменные комплексного типа
- •3.7. Примеры и задания к самостоятельному выполнению
- •4. Программирование разветвленных алгоритмов
- •4.1. Логические выражения
- •4.2. Условный оператор if
- •4.3. Составной и пустой операторы
- •4.4. Оператор безусловного перехода
- •4.5. Пример и задания с оператором if
- •4.6. Оператор выбора варианта case
- •4.7. Примеры и задания с оператором case
- •5. Программирование алгоритмов циклической структуры
- •5.1. Оператор счётного цикла
- •5.2. Примеры и задания для оператора цикла со счётчиком
- •Задания к самостоятельному выполнению
- •5.3. Оператор цикла с предусловием
- •5.4. Пример и задания для оператора цикла с предусловием
- •5.5. Оператор цикла с постусловием
- •5.6. Процедуры прерываний циклов
- •5.7. Примеры и задания для циклов с постусловием
- •Задания для самостоятельного выполнения
- •6. Структурированные типы данных
- •6.1. Массивы данных
- •Типизированные константы-массивы
- •6.2. Пример и задания для одномерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •6.3. Ограниченный тип (диапазон)
- •6.4. Пример и задания для двумерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •Задание 3
- •7. Структурное программирование
- •7.1. Структура сложной программы
- •7.2. Подпрограммы. Процедуры и функции
- •7.3. Структура подпрограммы-функции
- •7.4. Примеры и задания с подпрограммой-функцией
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •7.5. Структура подпрограммы-процедуры
- •7.6. Передача в подпрограмму массивов и строк
- •7.7. Рекурсия в программе
- •7.8. Вложенные подпрограммы
- •7.9. Процедуры exit и halt
- •7.10. Пример и задания с подпрограммой-процедурой
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •8. Обработка символьных данных
- •8.1. Символьный тип
- •8.2. Задания для символьных данных
- •9. Обработка строк текста
- •9.1. Строковый тип
- •9.2. Встроенные функции и процедуры для обработки строк
- •9.3. Пример и задания для обработки строк
- •Задания для самостоятельного выполнения
- •10. Файлы
- •10.1. Процедура связывания файлов
- •10.2. Процедуры и функции для работы с файлами
- •10.3. Типизированные файлы
- •10.4. Текстовые файлы
- •10.5. Процедуры ввода
- •10.6. Процедуры вывода
- •10.7. Примеры и задания для работы с файлами
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •11. Комбинированный тип – записи
- •11.1. Структура данных типа записи
- •11.2. Обработка полей записей
- •11.3. Задания с обработкой записей Задание 1
- •Задание 2
- •12. Процедурные типы
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Содержание
10. Файлы
Файл именованная область внешней памяти ПК. Файлом может называться логическое устройство, потенциальный источник или приемник информации.
Файл характеризуется именем и содержит компоненты одного типа (может быть любой тип, кроме файлов). Длина вновь создаваемого файла не указывается при его объявлении.
В Pascal ABC различают типизированные и текстовые файлы. Определяются файловые типы в блоке TYPE следующим способом:
Type
<имя> = FILE OF <тип>; {типизированный}
<имя> = TEXT; {текстовый}
где <имя> имя файлового типа (правильный идентификатор);
FILE, OF зарезервированные слова (файл, из),
TEXT имя стандартного типа для текстовых файлов;
<тип> любой тип, кроме файлового.
Например:
TYPE
FIL = file of char; {файл символов}
text30 = file of string[30]; {файл строк }
Вид файла определяет способ хранения информации в файле.
Переменные файловых типов объявляются в разделе VAR:
VAR f: FIL;
ff: text30; а также
f1: TEXT; {переменная для текстового файла }
f2: file of real; {переменная файла вещественных чисел}
т. е. сразу можно описывать файловые переменные без объявления типа, например:
VAR
<имя_переменной>: TEXT;
<имя_переменной>: FILE OF <тип>;
Некоторые файлы могут только вводить информацию (клавиатура), другие только принимать ее (устройства печати), третьи позволяют и считывать, и записывать (файл на диске). Именно с помощью файловой системы осуществляется весь ввод и вывод информации в программе.
Все файлы становятся доступными программе только после связывания ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него.
10.1. Процедура связывания файлов
Связывание выполняется стандартной процедурой ASSIGN:
ASSIGN (<файловая_переменная> , <имя_файла);
где <файловая_переменная> правильный идентификатор, объявленный как переменная файлового типа; <имя_файла> текстовое выражение, содержащее имя файла (заключается в апострофы).
Пример. VAR f, f1, f2 : text; {объявление файловых переменных}
Begin
ASSIGN(f, ' nameF.txt '); // связывание с файлом nameF.txt
<Имя_файла> это любое выражение строкового типа, которое строится по правилам определения имен в MS DOS:
содержит до 8 разрешенных символов: прописные и строчные латинские буквы, цифры и следующие символы ! @ # $ % ^ & ( ) ' ~ - _ ;
начинается с любого разрешенного символа;
за именем может следовать расширение последовательность до трех разрешенных символов. Расширение, если оно есть, отделяется от имени точкой, например: Lab1.pas или date.txt.
Имя физического файла должно быть корректным и уникальным. Нельзя вставлять символы шаблонов '*' и '?' в имя файла, но можно связывать файловые переменные с несуществующими пока на диске файлами (для их создания).
Перед именем может указываться путь к файлу, имя диска и/или имя текущего каталога и имена каталогов вышестоящих уровней. Если имени каталога предшествует обратная косая черта, то путь к файлу начинается из корневого каталога, если черты нет – из текущего каталога, установленного в системе по умолчанию.
Имя диска это один из символов А: В: С: ... Z. При этом А: и В: относятся к дисковым накопителям на гибких дискетах, а С:, D: и другие – к жестким и виртуальным дискам. Если имя диска не указано, то по умолчанию подразумевается устройство, установленное в операционной системе перед началом работы программы. Максимальная длина имени пути с файлом 79 символов, например:
VAR
f1, f2: text;
Begin
...
Assign( f1 , 'd:\V-129\date.txt ' ) ;
Assign( f2, name.dat); {файл в текущем каталоге}
…
Однажды установленная связь процедурой Assign между файловой переменной f и физическим файлом сохраняется до следующего вызова Assign с той же файловой переменной f. То есть можно проделывать различные операции с файлом, лишь один раз связав его с файловой переменной f. Для инициализации файла необходимо указать имя физического файла и направление передачи данных. В Pascal ABC можно открыть файл для чтения, записи, а также для чтения и записи одновременно.