Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции программирование.doc
Скачиваний:
15
Добавлен:
01.03.2025
Размер:
1.01 Mб
Скачать

Библиотека crt

Паскаль содержит небольшое число встроенных команд, но зато может расширять свои возможности за счёт создания новых команд. Не обязательно описывать новые команды прямо в тексте программы. Можно подключить описания, хранящиеся в отдельных файлах – модулях. Универсальные модули, пригодные для подключения ко многим программам называются библиотеками. Библиотеки группируют команды по темам, например, библиотека, отвечающая за мультипликацию, библиотека, организующая вывод музыки и т.д… Некоторые библиотеки входят в поставку PascalABC. Они называются стандартными библиотеками. К ним относится и библиотека CRT. При её подключении возникает специальное текстовое окно для ввода и вывода. Большинство команд из CRT относятся к управлению выводом текста в это окно. Но в CRT входят также команды управления клавиатурой.

Для подключения к программе библиотеки используется команда USES, после которой указывается одна или (через запятую) несколько библиотек (например, uses crt; ). Эта команда располагается в следующей после заголовка строке, до других описаний.

При включении в программу библиотеки CRT, можно использовать такие новые команды:

  1. TextSize(высота); Устанавливает размер символов в пунктах (по умолчанию 10 пунктов). Пункт - отрезок 1/3 мм.

  2. CRTWindowSize(ширина,высота); Устанавливает размер текстового окна в символах.

  3. Window(x1,y1,x2,y2); Определяет на экране текущее окно (в котором в дальнейшем будет происходить весь ввод-вывод). Устанавливает курсор в левый верхний угол текущего окна. Координаты задаются в символах текущего размера.

  4. ClrScr; Очищает цветом фона все текстовое окно (или текущее окно, установленное процедурой window). Устанавли­вает курсор в левый верхний угол очищенного окна.

  5. ClrEol; Очищает все символы с позиции курсора до конца строки без перемещения курсора.

  6. DelLine; Удаляет строку, содержащую курсор.

  7. InsLine; Вставляет пустую строку в позиции курсора.

  8. HideCursor; Скрывает текстовый курсор.

  9. ShowCursor; Делает текстовый курсор видимым.

  10. TextBold; Устанавливает жирный стиль символов.

  11. TextNormal; Устанавливает нормальный стиль символов.

  12. TextColor(цвет); Устанавливает цвет текста, печатаемого после этой команды. Цвета, используемые в этой и следующей команде, указываются либо числом, либо английским словом-константой:

основные цвета их светлые оттенки

0 Black

чёрный

8 DarkGray

тёмно-серый

1 Blue

синий

9 LightBlue

светло-синий

2 Green

зелёный

10 LightGreen

светло-зелёный

3 Cyan

бирюзовый

11 LightCyan

голубой

4 Red

красный

12 LightRed

светло-красный

5 Magenta

малиновый

13 LightMagenta

сиреневый

6 Brown

коричневый

14 Yellow

жёлтый

7 LightGray

серый

15 White

белый

  1. TextBackGround(цвет); Устанавливает цвет фона позади печатаемых после этой команды символов. Если после этой команды применить ClrScr, то поменяется цвет всего окна.

  2. GotoXY(x,y); Перемещает курсор в позицию (x,y). Ближайший ввод или вывод начнётся с этой позиции.

  3. ScrollingOff; / ScrollingOn; Отключает / включает прокрутку при выводе.

Кроме перечисленных команд для управления текстовым выводом, библиотека CRT содержит ещё две функции, помогающие при вводе отдельных символов с клавиатуры.

  1. Ожидание нажатия одного символа: readkey; В разделе VAR объявляется переменная типа char для хранения одного символа. Используется она так: kl:=readkey;

  2. В некоторых случаях нужно посмотреть нажатую клавишу, не ожидая её нажатия (не нажато, ну что ж, пойдём дальше). В этих случаях удобно использовать функцию keypressed; булевского типа. Она даёт true, если нажата хоть какая-нибудь клавиша и false, если ничего не нажато.

Обычно readkey и keypressed используют совместно: если нажато, посмотрим, что нажато. Например, if keypressed then kl:=readkey;

Рассмотрим пример задачи с использованием библиотеки CRT. Нужно организовать заставку к игре «Смертельная битва». Пусть слово «Смертельная» движется слева направо, а «битва» - немного ниже справа налево. Дойдя до середины, слова должны остановиться.

Движение организуем так: в цикле верхнее слово ставим каждый раз правее, а нижнее – левее. Чтобы за словами не оставался след, мы верхнее слово начинаем с пробела (который затирает предыдущую букву), а нижнее слово оканчиваем пробелом. Начальные и конечные координаты подбираем так, чтобы слова в последний раз стали ровно посередине экрана. Чтобы при движении курсор не моргал около слова, мы отключаем его.

program zastavka;

uses crt;

var

x1,x2:integer;

begin

TextSize(12); //Зададим размер символов

CRTWindowSize(80,25); //Зададим размер экрана

Textbackground(0); clrscr; //Затемним и очистим экран

textcolor(12); //Зададим красный цвет текста

x1:=1; x2:=69; //Задаём начальные координаты слов

HideCursor; //Отключим курсор

repeat

gotoxy(x1,12); write(' СМЕРТЕЛЬНАЯ'); //Верхнее слово

gotoxy(x2,14); write('БИТВА '); //Нижнее слово

sleep(50); //Делаем задержку

x1:=x1+1; x2:=x2-1; //Перемещаем слова

until x1>33;

end.

Команда sleep(50); позволяет замедлить движение.

Второй пример: Пусть слово «МЯЧИК» летает по экрану, отражаясь от его краёв. При каждом отражении слово меняет цвет. Остановка движения – по нажатию любой клавиши. Движение организуем так. Ставим слово в текущих координатах, делаем паузу и стираем слово (написав на его месте пробелы). Затем меняем координаты и ставим его на новом месте.

Следующая задача – более сложная, уже целый проект: Написать программу – клавиатурный тренажёр. В пустом окне сверху вниз движется случайно выбранная русская заглавная буква случайного цвета (след не затирается). Если нажать клавишу с этой буквой, новая буква начнёт падать в новом столбце. Если нажать неправильный символ, увеличивается счётчик ошибок, а буква продолжает падение. Если буква доходит до конца столбца, новая буква появляется в соседнем столбце. Когда заканчивается последний столбец, окно очищается, и выводятся результаты. Чем раньше мы нажимаем правильную букву, тем больше пустой остаток в данном столбце. Сумма таких остатков и будет нашим результатом – очками.

Для выбора случайной буквы мы придумаем случайный номер буквы (в пределах от 1 до 33) и возьмём её под этим номером из алфавита, который хранится в строковой переменной. (Подробности о работе со строками - при изучении этой темы).