- •Министерство образования российской федерации
- •Содержание
- •Алгоритмизация вычислительных процессов.
- •Основные определения и понятия.
- •Средства изображения алгоритмов.
- •Вопросы к главе 1.
- •Базовые канонические структуры алгоритмов.
- •1)Следование
- •2) Развилка
- •3)Повторение
- •Введение в Турбо Паскаль.
- •Общая характеристика языка Паскаль.
- •Основные понятия языка Турбо Паскаль.
- •Алфавит языка.
- •Элементарные конструкции.
- •Типы данных.
- •Операторы языка Паскаль.
- •Оператор присваивания.
- •Оператор перехода. Пустой оператор. Составной оператор.
- •Условный оператор.
- •Оператор выбора.
- •Операторы цикла.
- •Var X: real; {аргумент }
- •If not fl then Writeln(‘ нет чисел на 3‘);
- •Вопросы к главе 2.
- •Структурированные типы данных.
- •Свойства множеств.
- •Операции над множествами.
- •If fl then writeln('идентификатор')
- •Описание записи (record).
- •Оператор присоединения.
- •Запись с вариантами.
- •Вопросы к главе 3.
- •Использование подпрограмм в Турбо Паскале.
- •Структура программы на языке Паскаль.
- •Описание и вызов процедур.
- •Описание функции.
- •Формальные и фактические параметры.
- •Параметры-значения.
- •Параметры-переменные.
- •Var r:tvect; {результат - вектор}
- •Var k:byte); {длина полученного вектора}
- •Параметры-константы.
- •Параметры-процедуры и параметры-функции.
- •Область действия имен.
- •Процедуры и функции без параметров.
- •Рекурсивные процедуры и функции.
- •Предварительно-определенные процедуры.
- •Модули.
- •Вопросы к главе 4.
- •Стандартные процедуры и функции.
- •Математические функции.
- •Функции округления и преобразования типов.
- •Функции порядкового типа.
- •Процедуры порядкового типа.
- •Строковые функции.
- •Строковые процедуры.
- •Прочие процедуры и функции.
- •Процедуры ввода данных.
- •Процедуры вывода данных.
- •Особенности вывода вещественных значений.
- •Вопросы к главе 5.
- •Работа с файлами.
- •Общие сведения о файлах.
- •Процедуры и функции для работы с файлами.
- •Особенности обработки типизированных файлов.
- •Особенности обработки текстовых файлов.
- •Файлы без типа.
- •Проектирование программ по структурам данных
- •Работа с файлами при обработке экономической информации
- •Постановка задачи.
- •Проектирование программы.
- •Кодирование программы.
- •Вопросы к главе 6.
- •Динамическая память.
- •Указатель.
- •Стандартные процедуры размещения и освобождения динамической памяти.
- •Стандартные функции обработки динамической памяти.
- •Примеры и задачи.
- •Работа с динамическими массивами.
- •Организация списков.
- •Задачи включения элемента в линейный однонаправленный список без головного элемента.
- •Формирование пустого списка.
- •Формирование очередного элемента списка.
- •Подсчет числа элементов списка.
- •Вставка элемента в начало списка.
- •Включение элемента в конец списка.
- •Включение в середину (после I-ого элемента).
- •Задачи на удаление элементов из линейного однонаправленного списка без головного элемента.
- •Удаление элемента из начала списка.
- •Удаление элемента из конца списка.
- •Удаление элемента из середины списка (I-ого элемента).
- •Удаление всего списка с освобождением памяти.
- •Задачи на замену элементов в линейном однонаправленном списке без головного элемента.
- •Стеки, деки, очереди.
- •Использование рекурсии при работе со списками.
- •Бинарные деревья.
- •Действия с бинарными деревьями.
- •Решение задач работы с бинарным деревом.
- •Построение бинарного дерева.
- •Вопросы к главе 7.
- •Основные принципы структурного программирования.
- •Понятие жизненного цикла программного продукта
- •Основные принципы структурной методологии.
- •Структурное кодирование.
- •Модульное программирование.
- •Вопросы к главе 8.
- •Список литературы
Особенности обработки текстовых файлов.
Текстовые файлы состоят из символов. Каждый текстовый файл разделяется на строки неопределенной длины, которые заканчиваются символом конец строки. Весь файл заканчивается символом конец файла.
К текстовым файлам возможен только последовательный доступ. С текстовыми файлами работают различные редакторы текстов. Текстовые файлы имеют стандартный тип TEXT.
VAR < имя файла>: TEXT;
Посимвольные операции ввода-вывода выполняются для текстовых файлов процедурамиread и write. Строки обрабатываются специальными процедурами для текстовых файловreadln и writeln. Кроме того, для текстовых файлов применяются процедурыASSIGN, RESET, REWRITE, CLOSE, EOF, eoln. Процедура append открывает существующий текстовый файл для добавления записей. Для текстовых файлов нельзя использовать процедуры и функцииSEEK, FILEPOS, FILESIZE, т.к. элементы имеют разную длину.
input иoutput стандартные текстовые файлы для ввода с клавиатуры и вывода на экран.
Рассмотрим программу, реализующую следующую задачу. Дан текстовый файл F1.Необходимо заменить во всех записях этого файла код группы ДС-101 на ДС-201. Скорректированные записи поместить в файлF2.
var f1,f2: text;
pole:string;
name:string[12];
pz: integer;
begin write(‘ввод имени входного файла:’);
readln(name);
assign(f1,name);
write(‘ввод имени выходного файла:’);
readln(name);
assign(f2,name);
reset(f1); rewrite(f2);
while not eof(f1) do
begin
readln(f1,pole);
while pos(‘дс-101’, pole) <> 0 do
begin
pz:= pos(‘дс-101’, pole);
delete(pole,pz+3,1);
insert(‘2’,pole,pz+3);
end;
writeln(f2,pole)
end;
close(f1);
close(f2);
end.
Здесь читаются последовательно строки из входного файла и в каждой строке в номере группы заменяется символ 1 на 2. Скорректированные строки выводятся в новый файл.
Файлы без типа.
Любой файл может быть представлен в виде последовательности символов кодаASCII. Турбо Паскаль позволяет рассматривать файл с любой организацией как бы состоящим из блоков по 128 байт.
Файлы без типа используются обычно при копировании файлов, когда не важна внутренняя структура записи файла. Если длина сегмента на диске 1024 байта, то количество блоков в группе равно 8 при длине блока 128 символов.
Обмен информацией происходит непосредственно между программой и файлом без использования буферной памяти. Адресация блоков производится по их номерам. Блоки в этом случае являются компонентами файла. Использование файлов без типа приводит к экономии памяти.
Для работы с такими файлами предусмотрены специальные процедуры, позволяющие производить обмен группами блоков по 128 символов.
BLOCKREAD(<имя файла>,<переменная>,<число компонент>
[,<факт.число>]);
для чтения блока из файла.
BLOCKwrite(<имя файла>,<переменная>,<число компонент>
[,<факт.число>]);
- для записи блока в файл.
Здесь:
<имя файла> - имя файла без типа;
<переменная>- имя переменной для чтения или записи;
<число компонент> - количество передаваемых компонент за один раз;
<фактическое число> - количество фактически переданных записей длиной 128 байт.
Файл для блочного ввода-вывода описывается с типом FILE. Для файла без типа нельзя использовать процедурыREAD иWRITE.
VAR < имя файла > : FILE;
При открытии файла без типа можно указать длину записи файла в байтах. Она указывается вторым параметром при обращении к процедуре Reset илиRewrite, в качестве которого используется выражение типаWord. Если длина записи не указана, она принимается равной 128 байтам.
Рассмотрим пример блочного ввода-вывода. Пусть требуется скопировать данные из файла FromFв файлToF.
var
FromF, ToF: file;
NR, NWr: Word;
NAME:STRING[12];
Buf: array[1..2048] of Char;
begin
WRITE(‘ИМЯ ВХ.ФАЙЛА’);
READLN(NAME);
Assign(FromF, NAME);
WRITE(‘ИМЯ ВЫХ.ФАЙЛА ’);
READLN(NAME);
assign(ToF,NAME);
Reset(FromF, 1);
Rewrite(ToF, 1);
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NR);
BlockWrite(ToF, Buf, NR, NWr);
until (NR = 0) or (NWr <> NR);
Close(FromF);
Close(ToF);
end.
В примере программы при открытии файла без типа в вызове процедурыRESET указана длина записи равная 1. В этом случае при копировании файла не будут записаны лишние символы в новый файл.
