- •История появления и развития языка Паскаль.
- •19,18,17) Для этого в Паскаль включаются специальные средства -графические процедуры и операторы, которые находятся в модуле Graph (uses Graph;).
- •16,15,14) Файл – совокупность данных, записанная во внешней памяти под некотором именем.
- •{Loadposition adsense2}
- •{Loadposition adsense1}
- •Varuntypedfile:file;
{Loadposition adsense2}
Причины использования
- оптимизация ввода большого количества данных
- файл данных может быть подготовлен другой программой
- не требуется присутствия пользователя при работе с файлом
Характерные особенности файлов
- имеет имя, одновременно можно работать с несколькими файлами
- состоит из компонентов одного типа (любого, кроме файлового)
- длина создаваемого файла при объявлении не указывается
Типы файлов:
По способу доступа
- последовательного
- прямого
По типу (логической структуре)
- текстовые
- типизированные
- не типизированные
Файл имеет
- логическое имя (из раздела var)
- физическое имя (на диске)
Команды
Assign (логическое имя, ‘ физическое имя ‘) установления соответсвия между логическим и физическим именами
Rewrite (логическое имя) – открытие файла для записи, перезапись
Reset (логическое имя) – открытие файла для чтения
Write (логическое имя, переменная которую записуют) – запись информации в файл
{Loadposition adsense1}
Read (логическое имя, переменная которую записуют) – чтение информации из файла
Eof (логическое имя) – анализ признака конца файла. ( whilenoteof (f) do <оператор> - работа с файлом до последнего элемента)
Close (логическое имя) – закрытие файла
Rename (логическое имя, 'физическое имя') – переименование файла
Erase (логическое имя) – удаление файла.
Объявление файла
Var f:file of <тип>;
F:text; (текстовый файл)
Типизированные файлы
Это файлы строго определенного типа. Обычно состоят из записей.
Объявление
Typefilerec=record
…
End;
Var
F:file of filerec;
Для определения размера:
Sizeof (filerec)
Т.к. длина любого компонента файла постоянная, то это дает возможность организовать прямой доступ к любому компоненту по его порядковому номеру, поэтому эти файлы называют файлами прямого доступа.
Процедура seek (var f ; numrec : longint) устанавливает текущую длину переменной f на запись с номером numrec.
Для данных файлов существуют следующие операции:
Truncate (varf) – уничтожает все компоненты файла f, начиная с места текущего положения файлового показателя
Filepoz (varf):longint – возвращает для файла f текущую файловую позицию в виде значения типа longint;
Filesize (varf):longint – возвращает размер файла.
Seek (f, filesize (f)); - команда помещения позиции курсора в конец файла.
Нетепизированный файл
Объявление
Varuntypedfile:file;
Нетепизированный файл является файлом прямого доступа
Открытие
Rewrite (untypedfile, <длина записи>);
Или
Reset (untypedfile, <длина записи>);
Команды
Blockread (varf:file; varbuf; count:word); - процедура считывает из файла F некоторое число блоков в память, начиная с 1-го байта переменной buf. Параметр buf – любая переменная, используемая для извлечения информации из файла. Параметр count – задает число считывающих блоков
Blockwrite (varf:file; varbuf; count:word); - процедура записи в файл, переменные одинаковые с предыдущей командой.
Текстовые файлы
Данные файлы можно редактировать и просматривать с помощью обычного текстового редактора
Eoln (<имя файла>) – проверка, есть ли символы в строке.
Описание
Var <список имен переменных>:text;
Команды считывания информации:
Read (<имя файла>, <список параметров>);
Readln (<имя файла> , <список параметров>);
Создание строки:
Write (<имя файла>,<список выражений>);
Writeln (<имя файла>,<список выражений>);
Для дописывания в файл данных выполнить (вместо rewrite)
Append (<имя файла>);
13) Рекурсия (от латинского recursio - возвращение) - это такой способ организации вычислительного процесса, при котором процедура или функция в ходе выполнения составляющих ее операторов обращается сама к себе. Для того, чтобы такое обращение не было бесконечным, в тексте подпрограммы должно быть условие, по достижению которого дальнейшего обращения не происходит. таким образом, рекурсивное обращение может включаться только в одну из ветвей подпрограммы.
Хорошей иллюстрацией механизма рекурсии является функция для вычисления факториала натурального числа. Вспомним, что факториалом числа называется произведение всех натуральных чисел от 1 до этого числа включительно:
N! = 1*2*3* . . . *(N-2)*(N-1)*N 1! = 1 0! = 1
Сначала покажем обычную не рекурсивную функцию для вычисления факториала, которая реализует итеративный алгоритм вычисления:
Function NonRecFact(N:integer) : LongInt; Var i : integer; {переменная цикла } Res : LongInt; {результат} Begin Res := 1; for i := 1 to N do res := Res*i; NonResFact := Res; End; |
12) Запись – это структура, состоящая из фиксированного числа компонент, называемых полями. Данные одного поля разных записей имеют один и тот же тип, а разных полей могут иметь разные типы. Общий вид описания типа record:
type t = record
id11, id12, …: type1;
id21, id22, …: type2;
……………….
end;
здесь id – идентификаторы полей; type – типы полей; t – имя типа.
10,9,8) Существует множество методов сортировки. Одни из них являются более эффективными, другие – проще для понимания. Достаточно простой для понимания является сортировка методом пузырька, который также называют методом простого обмена. ак известно воздух легче воды, поэтому пузырьки воздуха всплывают. Это просто аналогия. В сортировке методом пузырька по возрастанию более легкие (с меньшим значением) элементы постепенно "всплывают" в начало массива, а более тяжелые друг за другом опускаются на дно (в конец массива).
При сортировке выбором выбирается элемент с наименьшим значением и делается его обмен с первым элементом массива. Затем находится элемент с наименьшим значением из оставшихся n-1 элементов и делается его обмен со вторым элементом и т.д. до обмена двух последних элементов. Например, если сортировку выбором применить для массива "bdac", то будут получены следующие проходы:
исходное положение: b d a c;
первый проход: a d b c;
второй проход: a b b c;
третий проход: a b c d.
Сортировка вставкой является последней из класса простых алгоритмов сортировки. При сортировке вставкой сначала упорядочиваются два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению к первым двум элементам. Затем делается вставка четвертого элемента в список из трех элементов. Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены. Например, для массива "dcab" сортировка вставкой будет проходить следующим образом:
исходное положение: d c a b;
первый проход: c d a b;
второй проход: a c d b;
третий проход: a b c d.