- •1.Массивы.
- •2.Строковые массивы.
- •4.Процедура без параметров.
- •5.Процедура с параметрами.
- •6.Использование параметров-значений и параметров-переменных в качестве входных. Параметры константы.
- •7. Ограничения, наложенные на формальные и фактические параметры.
- •8.Аппарат функций.
- •9. Побочный эффект в процедурах и функциях.
- •10)Рекурсия
- •11.Опережающее описание процедур
- •12.Параметры процедурного типа:
- •13.Внешние модули, реализованные на других языках программирования. Структура основной программы, вызывающей процедуру. Присоединение текстового файла.
- •14. Структура tpu- модуля и программы.
- •15.Ссылочные типы данных, работа со связанным списком.
- •16.Ссылочные типы данных, формирование списка студентов из файла.
- •17.Поиск элемента в списке.
- •18.Исключение и добавление
- •19.Включение в список.
- •20.Типизированный файл.
- •21.Текстовые файлы
- •22.Файлы прямого доступа:
- •1.Особенности языка Си. Программа печати текста.
- •2.Программа печати таблицы с циклом «пока».
- •3.Программа печати таблицы с арифметическим циклом.
- •4.Программа печати таблицы с арифметическим циклом при использовании символических констант.
- •5.Ввод, вывод символов. Копирование файла.
- •6.Подсчет числа символов в файле
- •7.Подсчет числа строк в файле.
- •8.Подсчет числа символов, строк и слов в файле.
- •9.Подсчет числа каждой цифры, символов пустых промежутков и всех остальных символов.
- •10.Функции
- •11.Методы передачи параметров в функциях
- •12.Заполнение массива одинаковыми значениями.
21.Текстовые файлы
Текстовый файл - это совокупность строк, разделенных метками конца строки. Сам файл заканчивается меткой конца файла. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Одновременная запись и чтение запрещены.
Чтение из текстового файла:
Read(f, список переменных);
ReadLn(f, список переменных);
Процедуры читают информацию из файла f в переменные. Способ чтения зависит от типа переменных, стоящих в списке. В переменную char помещаются символы из файла. В числовую переменную: пропускаются символы-разделители, начальные пробелы и считывается значение числа до появления следующего разделителя. В переменную типа string помещается количество символов, равное длине строки, но только в том случае, если раньше не встретились символы конца строки или конца файла. Отличие ReadLn от Read в том, что в нем после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки. Если список переменных отсутствует, то процедура ReadLn(f) пропускает строку при чтении текстового файла.
Запись в текстовый файл:
Write(f, список переменных);
WriteLn(f, список переменных);
Процедуры записывают информацию в текстовый файл. Способ записи зависит от типа переменных в списке (как и при выводе на экран). Учитывается формат вывода. WriteLn от Write отличается тем, что после записи всех значений из переменных записывает еще и метку конца строки (формируется законченная строка файла).
Добавление информации к концу файла:
Append(f)
Процедура открывает текстовый файл для добавления информации к его концу. Используйте эту процедуру вместо Rewrite.
Расширения для работы с текстовым файлом в турбо Паскале(лекции): 1)Возможно чтение и запись группами символов. write(f,x1,x2,..,xn)=write(f,x1);write(f,x2);..write(f,xn);
Read(f,x1,x2,..xn)=read(f,x1);read(f,x2);read(f,xn);
2)Считывание, чтение и запись группы символов позволяет, и читать и писать строками. Для того чтобы писать и читать целыми строками нужно иметь строку по длине не менее чем самая длинная строка. Для этого нужно в поле var иметь:
S:string[100];
While not eof(f) do
Begin
Readln(f,s);
G(s);
End;
3)В турбо Паскале существует автоматическое преобразование типов где ИКС может быть не только символом, но и любым другим типом(real..)
(*)файла файлов не существует.
Схема чтения без обработки по строкам:
While not eof(f) do
Begin
Read(f,c);{чтение}
Write(c);{запись}
End;
Проверка ошибок работы с файлом.
Если существует опция {$I+} или по умолчанию, то при некорректной работе с файлом задача снимается с решения с распечаткой «ошибка работы с файлом». Но пользователю не известно, при какой процедуре произошла ошибка. Для того чтобы пользователь мог проанализировать задачу, ее нельзя снимать с решения {$I-}.
If (ioresult < > 0) then
Сообщить что с файлом в процедуре записи произошла ошибка. Затем нужно самим снять задачу с решения.
HALT
End;