Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика.docx
Скачиваний:
112
Добавлен:
31.05.2015
Размер:
65.28 Кб
Скачать
  1. Работа с внешними файлами в языке Турбо Паскаль. Типизированные и текстовые файлы. Организация ввода-вывода данных в Турбо Паскале.

Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк.

Типизированные – это файлы, состоящие из элементов одного и того же типа. Типизированные файлы записывают в том же формате, в котором хранятся в памяти компьютера, поэтому типизированный файл нельзя просмотреть из другой программы.

Текстовые – файлы, состоящие из произвольного числа строк. Текстовые файлы можно открывать в режиме добавления. После работы файл необходимо закрыть.

В языке Паскаль ввод-вывод информации осуществляется через файловые переменные.

Перед тем, как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом с помощью процедуры Assign. Этим файлом может быть файл на магнитном диске или ленте, а также устройство вычислительного комплекса (клавиатура, экран дисплея, принтер и т.д.). Затем файл должен быть открыт для чтения и/или записи. После этого можно осуществлять организацию ввода-вывода.

В Turbo Pascal имеется 3 категории файлов: текстовые (тип Text), типизированные (file of <тип>) и файлы без типа (file). Работа с этими категориями файлов несколько отличается друг от друга.

Обычно все файлы считаются файлами последовательного доступа. Однако для типизированных файлов и файлов без типа с помощью процедуры Seek можно установить режим произвольного доступа. При этом нумерация компонент файла начинается с нуля.

После работы с файлом он, как правило, должен быть закрыт процедурой Close. Это требование обязательно должно соблюдаться для файла, в который производилась запись.

При работе с файлами автоматически проверяются ошибки ввода-вывода. Если проверка ошибки включена (по умолчанию или с помощью ключа компилятора {$I+}), то при возникновении ошибки выполнение программы автоматически завершается, если же проверка ошибки отключена (с помощью ключа {$I-}), программа продолжает выполняться и можно проверить результат ввода-вывода с помощью функции IOResult.

  1. Понятие о машинной графике. Текстовый и графический режим работы дисплея. Основные графические процедуры и функции. Модуль Graph, другие стандартные модули.

Компьютер в машинной графике используется для описания изображений, их хранения, манипулирования ими, их вызова и визуализации, т. е. в основном для пассивных операций. Компьютер выводит на экран предварительно подготовленное изображение, и наблюдатель не может непосредственно управлять изображением, прежде чем оно появится на экране. В каждом конкретном случае изображение может быть либо таким простым, как, например, графики простых функций, либо столь сложным, как визуализация результатов моделирования процесса автоматического полета и посадки самолета или космического корабля.

В графическом режиме (например, в операционной системе Windows) ячейки видеопамяти содержат не ASCII-коды символов, а информацию о цвете каждого пикселя. То есть знакогенератор и его память, которые используются в текстовом режиме, в графическом режиме не задействуются. Например, в монохромной графике используется один бит на пиксель, в 16-цветной графике используются 4 бита на пиксель, в 256-цветной графике — 8 бит на пиксель и т.д.

Arc

Синтаксис:

procedure Arc(x,у: integer; УголНачала, УголКонца: integer; Радиус: integer);

Действие:

Вычерчивает дугу с центром в точке с координатами (х,у). Параметры УголНачала и УголКонца задают угловые координаты начальной и конечной точек линии дуги, которая вычерчивается против часовой стрелки от начальной точки к конечной. Угловые координаты задаются в градусах. Значение угловой координаты возрастает против часовой стрелки. Параметр Радиус задает радиус дуги.

Дуга вычерчивается цветом, заданным процедурой setcolor.

Bar

Синтаксис:

procedure Bar(x1,y1,x2,y2: integer);

Действие:

Вычерчивает закрашенный прямоугольник. Параметры x1 и y1 задают положение левого верхнего угла прямоугольника, х2 и у2 — правого нижнего. Используемый стиль и цвет заливки задается Процедурой SetFillStyle.

Модуль - это подключаемая к программе библиотека ресурсов. Он может содержать описания типов, констант, переменных и подпрограмм. В модуль обычно объединяют связанные между собой ресурсы: например, в составе оболочки есть модуль Graph для работы с экраном в графическом режиме.

Модули можно разделить на стандартные, которые входят в состав системы программирования, и пользовательские, то есть создаваемые программистом. Чтобы подключить модуль к программе, его требуется предварительно скомпилировать. Результат компиляции каждого модуля хранится на диске в отдельном файле с расширением .tpu.

В интерфейсной секции модуля определяют константы, типы данных, переменные, а также заголовки процедур и функций.

В секции реализации описываются подпрограммы, заголовки которых приведены в интерфейсной части. Заголовок подпрограммы должен быть или идентичным указанному в секции интерфейса, или состоять только из ключевого слова procedure или function и имени подпрограммы. Для функции также указывается ее тип.

Кроме того, в этой секции можно определять константы, типы данных, переменные и внутренние подпрограммы.

Секция инициализации предназначена для присваивания начальных значений переменным, которые используются в модуле. Операторы, расположенные в секции инициализации модуля, выполняются перед операторами основной программы.

  1. Ссылочные типы и указатели в Турбо Паскале. Операции над указателями. Статические и динамические массивы, способы создания динамических массивов.

Указатель в Turbo Pascal - это переменная, которая содержит адрес объекта определённого базового типа. При определении ссылочного типа используется базовый тип, перед которым ставится признак указателя, - символ '^'.

ссылочный тип (указатель) определяет множество значений, которые указывают на динамические переменные определенного типа, называемого базовым типом. Переменная ссылочного типа содержит адрес динамической переменной в памяти.

Операция взятия указателя допустима для любых переменных, в том числе для элементов массивов, полей записи и т.д. Например, если есть описание

var

A: array[1..10] of integer;

то обращение @A[i] имеет смысл указателя на i-ое целое в массиве A и также может участвовать в присваивании:

p1 := @A[i];

Динамическое выделение памяти необходимо для эффективного использования памяти компьютера. При написании данной программы необходимо было объявить массив, то есть задать ему фиксированный размер (к примеру, от 0 до 100 элементов). Тогда данная программа будет не универсальной, ведь может обрабатывать массив размером не более 100 элементов.

  1. Динамические структуры данных. Списки. Виды списков. Деревья. Двоичные деревья.

В языках программирования (Pascal, C, др.) существует и другой способ выделения памяти под данные, который называется динамическим. В этом случае память под величины отводится во время выполнения программы. Такие величины будем называть динамическими. Раздел оперативной памяти, распределяемый статически, называется статической памятью; динамически распределяемый раздел памяти называется динамической памятью (динамически распределяемой памятью).

Если указатель ссылается только на следующее звено списка, то такой список называют однонаправленным, если на следующее и предыдущее звенья — двунаправленным списком. Если указатель в последнем звене установлен не в Nil, а ссылается на заглавное звено списка, то такой список называется кольцевым. Кольцевыми могут быть и однонаправленные, и двунаправленные списки.

Дерево — это совокупность элементов, называемых узлами (при этом один из них определен как корень), и отношений (родительский–дочерний), образующих иерархическую структуру узлов. Узлы могут являться величинами любого простого или структурированного типа, за исключением файлового. Узлы, которые не имеют ни одного последующего узла, называются листьями.

В двоичном (бинарном) дереве каждый узел может быть связан не более чем двумя другими узлами. Рекурсивно двоичное дерево определяется так: двоичное дерево бывает либо пустым (не содержит ни одного узла), либо содержит узел, называемый корнем, а также два независимых поддерева — левое поддерево и правое поддерево.

Двоичное дерево поиска может быть либо пустым, либо оно обладает таким свойством, что корневой элемент имеет большее значение узла, чем любой элемент в левом поддереве, и меньшее или равное, чем элементы в правом поддереве

Основными единицами физического хранения являются блок данных, экстент, файл (либо раздел жесткого диска). Логический уровень представления информации включает пространства (либо табличные пространства). Блок данных (block) или страница (page) является единицей обмена с внешней памятью. Размер страницы фиксирован для базы данных (Oracle) или для ее различных структур (DB2, Informix, Sybase) и устанавливается при создании. Очень важно сразу правильно выбрать размер блока: в работающей базе изменить его практически невозможно (для этого часто проводят ряд испытаний базы данных-прототипа).

Соседние файлы в предмете Информатика