
- •Федеральное агентство по образованию
- •Структурированные типы данных. Классификация
- •Массивы Определение массива
- •Обращение к элементу массива. Хранение элементов массива. Доступ к элементам массива
- •Действия над массивами
- •Поиск элемента (одномерного ) массива Поиск среди неупорядоченных элементов массива
- •Поиск среди упорядоченных элементов массива
- •Сортировка элементов (одномерного) массива
- •Линейная сортировка (сортировка отбором)
- •Сортировка методом пузырька
- •5 4 3 1 2
- •5 4 3 2 1 Метод быстрой сортировки с разделением
- •Множества
- •Объявление множеств
- •Представление в памяти переменной типа множество
- •Операторы для работы с множествами Проверка принадлежности элемента множеству
- •Операции над множествами
- •Сравнение множеств
- •Применение множеств
- •Процедуры и структурное программирование
- •Преимущества структурного программирования
- •Планирование структурированной программы
- •Метод программирования сверху вниз
- •Определение процедуры
- •Передача управления при вызовах процедур и функций
- •Функции: подпрограммы,возвращающие единственный результат
- •Понятие блока
- •Область действия и время жизни переменных
- •Особенности локальных переменных
- •Особенности глобальных переменных
- •Особенности использования процедур и функций в турбо паскале
- •Опережающее определение процедур и функций
- •Рекурсия и итерация
- •Процедуры и функции как параметры
- •Директивы подпрограмм
- •Отладка и тестирование программ, содержащих подпрограммы
- •Нисходящее тестирование и подпрограммы-заглушки
- •Восходящее тестирование и программы-тестеры
- •Рекомендации по отладке программ, содержащих подпрограммы
- •Использование отладчикадля трассировки процедур
- •Запуск внешних программ
- •Стандартные модули
- •Модуль Crt
- •Модуль Graph
- •Функции
- •Текстовые файлы
- •Нетипизированные файлы
- •Типизированные файлы
- •Прямой доступ
- •Дополнительные функции работы с файлами
- •Обработка ошибок ввода-вывода
- •Указатели и динамические переменные Статические и динамические переменные
- •Адресация памяти в Турбо Паскале
- •Карта памяти Турбо Паскаля
- •Указатели
- •Операция для получения адреса
- •Функции для работы с адресами
- •Процедуры для работы с указателями
- •Присваивание значений указателям
- •Организация ссылок
- •Динамические структурированные переменные Динамические записи
- •Динамические массивы
- •Массивы размером более 64 кбайт
- •Строки с завершающим нулем (asciiz)
- •Процедуры и функции модуля strings
- •Указатели на процедуры и функции
- •Динамические структуры данных
- •Линейные списки
- •60 Лекции по курсу «Языки программирования» Часть II
Стандартные модули
В систему Turbo Pascal 7.0 включены следующие стандартные модули:
System – является основной библиотекой среды Turbo Pascal, обеспечивает поддержку всех стандартных идентификаторов. Используется автоматически любой программой или модулем без необходимости указывать этот модуль в операторе Uses..
Crt – содержит дополнительные средства управления текстовым режимом работы экрана и клавиатурой, включая установку курсора, создание окон, определение цвета и фона для выводимых символов, обработку возвращаемых кодов клавиатуры, а также ограниченные звуковые эффекты.
Graph – содержит средства управления графическим режимом работы экрана, с помощью которых можно создавать разнообразные графические изображения, которые можно сопровождать текстовыми надписями с использованием различных шрифтов.
Printer - обеспечивает быстрый доступ к печатающему устройству.
Strings – содержит подпрограммы, позволяющие работать с ASCIIZ-строками (последний байт строки содержит нуль-символ с кодом 0), а также преобразовывать их в строки типа String и наоборот.
Dos - содержит средства, позволяющие управлять возможностями DOS, такими как поддержка даты и времени, поиск в каталоге и запуск программы на выполнение.
WinDos – позволяет использовать возможности операционной системы, не предусмотренные в стандарте языка, при использовании ASCIIZ-строк (используется вместо модуля Dos).
Overlay - предназначен для организации оверлейных программ.
Turbo3, Graph3 - введены для совместимости с более ранней версией Turbo Pascal 3.0.
Модули System, Crt, Printer, Dos, Overlay находятся в файле Turbo.TPL, остальные - в файлах Graph.tpu, Strings.tpu, WinDos.tpu, Turbo3.tpu, Graph3.tpu соответственно.
Модуль Crt
Модуль Crt предназначен для организации эффективной и эффектной работы с экраном, клавиатурой и встроенным динамиком. Программы, не использующие модуль Crt, осуществляют вывод на экран с помощью средств операционной системы DOS, что является весьма медленным способом. При подключении модуля Crt выводимая информация посылается в базовую систему ввода-вывода (BIOS) или непосредственно в видеопамять. При этом ввод-вывод выполняется гораздо быстрее; кроме того, появляется возможность управлять цветом и размещением на экране.
Примечание. Модуль Crt предназначен для использования только на IBM-совместимых компьютерах.
В текстовом режиме экран представляется как совокупность строк и столбцов. Каждый символ располагается на так называемом знакоместе на пересечении строки и столбца. Символы хранятся в специальной части оперативной памяти, называемой видеопамятью. Ее содержимое отображается на экране.
Под каждый символ отводится два байта: один байт занимает ASCII-код символа, другой байт хранит атрибуты символа — его цвет, цвет фона и признак мерцания (см. рис.). Изображение символа по пикселам содержится в специальной матрице, а цвет формируется из трех составляющих — синей, зеленой и красной, наличие которых задается установкой соответствующего бита в единицу. Под цвет фона отводится три бита, а под цвет символа — четыре (четвертый бит управляет яркостью цвета). Таким образом, можно получить восемь различных цветов фона и 16 цветов символов. Для каждого цвета в модуле Crt определена соответствующая константа.
Текстовый режим монитора
Модуль Crt позволяет:
выполнять вывод в заданное место экрана заданным цветом символа и фона;
открывать на экране окна прямоугольной формы и выполнять вывод в пределах этих окон;
очищать экран, окно, строку и ее часть;
обрабатывать ввод с клавиатуры;
управлять встроенным динамиком.
Работа с экраном
Текущие цвета символа и фона задаются с помощью процедур TextColor и TextBackGround и действуют на следующие за ними процедуры вывода. Текущие атрибуты хранятся в младшем байте переменной TextAttr, ее значение можно установить и непосредственно. Вывод выполняется в текущую позицию курсора. Для ее изменения служит процедура GotoXY.
Окно определяется с помощью процедуры Window. Оно задается координатами левого верхнего и правого нижнего угла. После определения окна позиционирование курсора выполняется относительно него. Если окно не задано, им считается весь экран.
Очистка текущего окна выполняется с помощью процедуры ClrScr, которая заполняет его пробелами с текущим цветом фона и устанавливает курсор в левый верхний угол.
Работа с клавиатурой
Стандартные процедуры read и readln воспринимают только алфавитно-цифровые символы и конец строки (символы с кодами #13 и #10). Модуль Crt позволяет работать с управляющими клавишами и комбинациями клавиш.
Нажатие каждой клавиши преобразуется либо в ее ASCII-код, либо в так называемый расширенный код (сканкод) и записывается в буфер клавиатуры, из которого затем и выбирается процедурами ввода. Под каждый код отводится два байта. Если нажатие клавиш соответствует символу из набора ASCII, в первый байт заносится код символа. Если нажата, например, клавиша управления курсором, функциональная клавиша или комбинация клавиш с Ctrl или Alt, то первый байт равен нулю, а во втором находится расширенный код, соответствующий этой комбинации.
Для работы с клавиатурой модуль Crt содержит функции ReadKey и KeyPressed.
Функция ReadKey : char считывает символ с клавиатуры, но не отображает его на экране. При нажатии специальной клавиши или комбинации функция возвращает символ с кодом 0, а при повторном вызове — расширенный код клавиши.
Функция KeyPressed : boolean возвращает значение true, если на клавиатуре нажата клавиша, и false в противном случае. Символ (или символы) остаются в буфере клавиатуры.
Модули Dos и WinDos
Модули Dos и WinDos содержат подпрограммы, реализующие возможности операционной системы MS-DOS, такие как переименование, поиск и удаление файлов, получение и установка системного времени, выполнение программных прерываний и т. д. Эти подпрограммы в стандартном Паскале не определены. Для поддержки подпрограмм в модулях определены константы и типы данных.
Модуль Dos использует строки Паскаля, a WinDos — строки с завершающим нулем.