- •1.Файловая система. Директория, файл, путь.
- •2. Основные команды операционной системы для работы с файлами.
- •8.7. Удаление подкаталогов - команда rmdir (rd)
- •3. Физические носители данных. Их классификация, характеристики и назначение.
- •4.Статическая и динамическая области оперативной памяти. Их назначение и использование
- •Память типа rom
- •Память типа dram
- •Оперативная память rdram
- •5.Указатель. Размещение данных в динамической области оперативной памяти.
- •Оперативная память sdram
- •Оперативная память ddr sdram
- •Динамические структуры данных. Статические и динамические переменные. Адреса. Указатели и их объявление.
- •Присвоение значений указателю. Оператор @ с переменной. Оператор @ с параметром процедуры, переданным по значению. Оператор @ с параметром процедуры, переданным по ссылке.
- •6.Типы данных (целые и вещественные числа). Размер используемой памяти, пределы изменения и точность представляемых данных.
- •7.Приоритеты выполнения операций при вычислении значений арифметических и логических выражений .
- •8.Структурированные типы данных. Назначение и способы реализации.
- •9.Алгоритм, его свойства и формы представления. Типовые структуры алгоритма.
- •10.Линейная структура и ее свойства. Ввод и вывод данных. Оператор присваивания.
- •11.Циклическая структура. Назначение и основные элементы.
- •12.Цикл с явно заданным количеством повторений. Основные элементы и варианты реализации.
- •13.Цикл с неявно заданным количеством повторений. Основные элементы и варианты реализации.
- •14.Типовая структура-разветвление. Основные элементы и варианты реализации.
- •15.Процедуры. Назначение, варианты реализации.
- •16.Функции. Назначение, варианты реализации.!
- •17.Формальные и фактические параметры. Назначение, варианты реализации.
- •18.Линейный список. Реализация с использованием массивов. Реализация многомерного массива.
- •19.Линейный список. Реализация с использованием связных списков. Примеры применения.
- •20.Поиск в линейном списке. Назначение и варианты реализации. Бинарный поиск
- •Последовательный поиск
- •21.Сортировка данных в линейном списке. Назначение и варианты реализации. Упорядочивание списка. Вставление элемента в середину списка.
- •22.Стек и очередь. Назначение, варианты реализации и примеры применения.
- •Стек. Отличия стека от списка. Основные операции со стеком.
- •Очереди. Основные операции над очередью.
- •23.Дерево. Назначение, варианты реализации и примеры применения.
- •Представление деревьев. Основные операции над деревом.
- •24.Текстовые и типизированные файлы. Обмен данных с внешними носителями.
- •Типы файлов Турбо Паскаль
- •Стандартные процедуры и функции
- •Работа с типизированными файлами
- •Работа с текстовыми файлами
- •Работа с нетипизированными файлами
Очереди. Основные операции над очередью.
Очередь – линейный список, элементы в который добавляются только в конец, а исключаются из начала.
Изобразим очередь графически:
При программировании на Паскале также считается, что для очереди не существует обход элементов. Доступ возможен только к нижнему элементу структуры.
Итак, очередь – это вид связанного списка, в котором извлечение элементов происходит с начала списка, а добавление новых элементов – с конца.
Очередь является динамической структурой – с течением времени изменяется и ее длина, и набор составляющих ее элементов.
Опишем очередь на языке программирования:
Type EXO = ^O; O = record Data : integer; Next : EXO; end;
Над очередью определены две операции: занесение элемента в очередь и извлечение элемента из очереди.
В очереди, в силу ее определения, доступны две позиции: ее конец, куда заносятся новые элементы, и ее начало, откуда извлекаются элементы. Поэтому для работы с очередью необходимо описать две переменные:
Var BeginO, EndO : EXO;
где BeginO – соответствует началу очереди и будет использоваться для вывода элемента из очереди, EndO – соответствует концу очереди и будет использоваться для добавления новых элементов в очередь.
Занесение элемента в очередь
Занесение элемента в очередь соответствует занесению элемента в конец списка. Рассмотрите процедуру, описанную ниже.
Procedure writeO(Var BeginO, EndO : EXO; c : integer); Var u : EXO; Begin new(u); u^.Data := c; u^Next := Nil; if BeginO =Nil {проверяем пуста ли очередь} then BeginO := u {ставим указатель начала очереди на первый созданный элемент} else EndO^.Next := u; {ставим созданный элемент в конец очереди} EndO := u; {переносим указатель конца очереди на последний элемент} End;
23.Дерево. Назначение, варианты реализации и примеры применения.
Граф – это непустое множество точек (вершин) и множество отрезков (ребер), концы которых принадлежат заданному множеству точек.
Если на каждом ребре задать направление, то граф будет ориентированным.
Если, двигаясь по ребрам графа в заданном направлении, можно попасть из заданной вершины 1 в заданную вершину 2, то говорят, что эти вершины соединены путем.
Замкнутый путь, состоящий из различных ребер, называется циклом.
Граф называется связным, если любые две его вершины соединены путем.
Связный граф без циклов называется деревом.
С каждой вершиной дерева связывается конечное число отдельных деревьев, называемых поддеревьями.
Рассмотрите пример дерева, в узлах которого располагаются символы.
Для дальнейшей работы с деревьями необходимо определить ряд понятий.
Вершина у, находящаяся непосредственно ниже вершины х, называется непосредственным потомком х, а вершина х называется предком у.
Если вершина не имеет потомков, то она называется терминальной вершиной или листом, если имеет, то называется внутренней вершиной.
Количество непосредственных потомков внутренней вершины называется ее степенью.
Степенью дерева называется максимальная степень всех вершин.
Например,
вершины F, D, E являются непосредственными потомками вершины В;
вершины F, D, E являются листьями;
вершины C, G, H – внутренние;
степень вершины В – 3, а вершины Н – 1;
степень дерева равна 3.
Определение. Двоичное дерево – это дерево, в котором из каждой вершины исходит не более двух ребер.
