Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Оформление текста на экране

До сих пор мы выводили текст шрифтом белого цвета на черном экране, начиная с той позиции, где в настоящее время находится курсор. А нельзя ли выводить текст более красиво — например, цветными буквами в центре экрана?
Для реализации такой возможности в комплект Паскаля входит особый дополнительный модуль. Он называется CRT (это английская аббревиатура, обозначающая электронно-лучевую трубку — название модуля подчеркивает, что он умеет управлять способами вывода на экран).

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

 

Рассмотрим принцип работы с модулем CRT и его основные процедуры.

Как мы уже говорили, Паскаль работает в текстовом режиме. Это означает, что информация на экран выводится в виде символов, каждый из которых отображается на экране в определенной позиции, как бы в клеточке. Экран при этом можно себе представить как таблицу из 25 строк и 80 столбцов (рис. 1.2). Каждая ячейка этой таблицы имеет 2 координаты — х и у, где х — номер столбца, у — номер строки. Строки нумеруются сверху вниз, начиная с единицы до 25, столбцы — слева направо, с 1-го до 80-го. То есть левый верхний угол экрана имеет координаты (1,1), правый верхний — (80,1), а левый нижний — (1,25).

Символы можно выводить на экран 16 различными цветами, которые кодируются числами от 0 до 15. Каждому коду соответствует свой цвет. Полную таблицу кодов можно получить, набрав, например, слово red в окне редактора Паскаля и нажав Ctrl-Fl на клавиатуре.

Рис. 1.2. Схема нумерации позиций экрана для модуля CRT

 

Внимательно разберите следующую программу

Пример 1.3. Использование модуля CRT
program Second;
{ Использование возможностей модуля Crt при выводе на экран. Для того чтобы в программе можно было использовать дополнительные библиотечные функции (нам сейчас нужен блок функций CRT), необходимо в начале программы указать это в специальной секции объявления библиотечных модулей.
Она начинается словом uses.
Затем через запятую перечисляются подключаемые модули.
Заканчивается список символом ";"}
uses Crt:
{ Crt - имя подключаемого модуля.
Блок заканчивается символом ";"
{ Начало основной программы }
begin
TextBackGround (3);
{Вызов процедуры для выбора
фонового цвета. В скобках указан номер выбранного цвета. В данном случае "3" означает светло-голубой цвет.
Вместо номера можно написать - название цвета: black, red. green, blue, magenta, cyan, ... }

ClrScr;
{ Процедура очистки экрана.
Указав цвет фона до команды ClrScr, мы тем самым залили экран светло-голубым цветом}

 

TextColor (14);
{ Процедура выбора цвета выдаваемых символов. В скобках указан номер выбранного цвета. В данном случае желтый цвет.
Обратите внимание: команда TextColor не меняет цвет символов, уже имеющихся, на экране! Она лишь устанавливает цвет, которым будут выведены следующие символы}

GoToXY (40,10);
{ Процедура установки курсора в точку экрана с координатами Х=40, Y=10 }

Writeln (‘Все отлично!!!’);
{ Вывод текста в 10 строку, начиная с позиции 40 }

Delay (1000) { Процедура временной задержки на 1000 мкс.
На современных компьютерах Delay(l) обычно работает быстрее, чем 1/1000 секунды. Поэтому задержка в данном случае будет меньше секунды}

end. { Конец программы }

 

Задание 1.3. Написать программу, выводящую два любых сообщения в левом верхнем и правом нижнем углах экрана. Каждое сообщение выводить своим цветом.

 

ЗАМЕЧАНИЕ
Прежде чем писать программу на языке программирования, стоит описать задачу словами пошагово — то есть придумать алгоритм задачи. Алгоритм можно представить в виде блок-схемы (рис. 1.3). Основные блоки, чаще всего используемые в таких схемах, см. в приложении 1.

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

 

Сейчас ваша задача — представить каждый шаг (блок} алгоритма на языке Паскаль и оформить программу по образцу примера 1.3.

 

Рис. 1.3. Алгоритм вывода цветных сообщений в левом верхнем и правом нижнем углах экрана

 

Задание 1.4. Написать программу, которая очищает экран и выводит слова red, green,: blue, yellow каждое своим цветом в центр четвертей экрана (если экран условно разбить на 4 части, как показано на рисунке):

Задание 1.5. Левый столбец таблицы содержит действия, которые выполняет некоторый оператор. Правый столбец содержит операторы языка Паскаль. Поставьте в соответствие элементам из левого столбца таблицы элементы из правого столбца.

Ответ. 1-К, 2-G, 3-J, 4-В, 5--Н, 6-D, 7-Е, 8-С, 9-А, 10-1,11-L, 12-F.

 

Выводы
1. Любую задачу можно представить в виде последовательности шагов — алгоритма. Одна из форм записи алгоритма — блок-схема, которая в дальнейшем переводится на конкретный язык программирования.
2. В структуре программы на языке программирования Паскаль обязательно присутствует тело программы. Его формируют операторы Begin и End. Между Begin и End с помощью других операторов задаются определенные действия.
3. Вывод информации на экран осуществляют операторы write и writeln.
4. При выполнении некоторых действий в Turbo-среде используются библиотечные модули языка Паскаль. Имена этих модулей объявляются в разделе uses.
5. Для красивого вывода на экран используется модуль Crt. Он позволяет очищать экран (ClrScr), менять позицию курсора (GotoXY), а также цвет символов (TextColor) и фона (TextBackGround).

 

Контрольные вопросы
1. Какими словами начинается и заканчивается тело любой программы на Паскале?
2. Из каких этапов состоит процесс создания компьютерной программы?
3. Как запустить Паскаль? Как выйти из среды Паскаль? Как запустить программу в среде Паскаль?
4. Какие действия совершают операторы write и writeln ? В чем состоит разница между ними?
5. Какие действия нужно совершить, чтобы скопировать часть программы в другое место? Какие комбинации клавиш при этом нужно использовать?
6. Как просмотреть результат работы программы?
7. Что такое текстовый режим работы? Опишите правило задания координат определенной точки экрана.
8. Какой модуль позволяет выводить информацию на экран красиво и в цвете? Как установить курсор в нужную позицию экрана?
9. Что такое линейный алгоритм?




 

Комментарии:

2010-10-25 ответил Елена

Откуда брали информацию по Паскалю?



2010-11-22 ответил Сергей

Да откуда - погляди в Яндексе - сколько книг по Паскалю сегодня много - качай любую. А еще лучше на торрентах - там вообще целые библиотеки для программистов имеются - по любым языкам программирования.



2014-01-27 ответил Дмитрий

Какого фига вы не пишите правильно? На ТБ 7.0 не работают ваши написанные программы без "readln"!!



2014-03-05 ответил Влад

Спасибо за урок)



2014-07-22 ответил andrew

Все работает спс



2014-09-09 ответил спартак

крпвр



2015-06-11 ответил Только учюсь

Задание 1.4, как у каждой 14 части сделать свой фон. я только смог вывести текст разным текстом в разных углах, а залить по своему нет



2015-10-22 ответил Белый

Супер



2016-07-22 ответил ынтымак

почему у меня не выводит



2016-07-22 ответил ынтымак

почему у меня не выводит



2016-10-12 ответил Михмих

урааааа!все получилось,пойду салют запущу



2017-05-05 ответил МММ

А регистры взаимозаменяемы? А то вводил GoTo с большой Т, а в выводах написано с маленькой



2017-06-15 ответил Иван

<a href="http://global-it-solutions.eu/SEO">Global Solutions</a>




Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru