Цвет фона и текста

Иногда результаты работы программы нужно выделять разным цвем. Для работы с цветом в Турбо Паскале существует модуль (или иногда говорят — библиотека) Crt, для ее подключения используется команда Uses

пример:

Uses Crt;

Без подключения этого модуля компилятор НЕ БУДЕТ понимать, что ему нужно сделать если в программе он встретит команды, которые буду здесь рассматриваться.
Итак …
В ТурбоПаскале существует следующая система цветов …
Константы цветов.

Тёмные цвета
    (Цвета символов и фона)
   Black     0    { Чёрный }
   Blue      1    { Синий  }
   Green     2    { Зелёный  }
   Cyan      3    { Голубой  }
   Red       4    { Красный  }
   Magenta   5    { Фиолетовый  }
   Brown     6    { Коричневый  }
   LightGray 7    { Светло-серый  }
Светлые цвета
    (Цвета символов)
   DarkGray      8 { Тёмно-серый  }
   LightBlue     9 { Светло-синий  }
   LightGreen   10 { Светло-зелёный  }
   LightCyan    11 { Светло-голубой  }
   LightRed     12 { Светло-красный  }
   LightMagenta 13 { Светло-фиолетовый  }
   Yellow       14 { Жёлтый  }
   White        15 { Белый  }

Для установки мигающего текста, добавьте константу Blink (128) к значению цвета.

TextColor(LightRed + Blink)

Для установления цвета текста существует команда TextColor (цвет);
Есть возможность использовать два способа изменения цветового режима текста:
пример:

TextColor (Red);
или
TextColor (4);

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

Для очистки экрана от сообщений существует процедура ClrScr.
С первого взгляда простой набор букв, который трудно запомнить. На деле это сокращение от CLeaRSCReen — очистить экран.
Пример;

ClrScr;

Для установления цвета фона существует команда TextBackGround (цвет).
При использовании этой команды существует один нюанс. А именно …. Для изменения цвета всего экрана использовать нужно следующую структуру

TextBackGround (цвет).
ClrScr;

иначе фон устанавливается только для выведение сообщений.
Пример №1: Фон установлен для всего экрана.

TextBackGround (Red);
ClrScr;
Writeln ('Hello World');

Пример №2: Фон установлен только текстового сообщения Hello World.

ClrScr;
TextBackGround (Red);
  Writeln ('Hello World');

Допустим нужно установить синий фон и желтые буквы …

TextBackGround (Blue);
ClrScr;
TextColor (Yellow);
Writeln ('Hello World');     
Readln;  
TextBackGround (1);
ClrScr;
TextColor (14);
Writeln ('Hello World');
Readln;

Два примера абсолютно идентичны по функциональности. Но с точки зрения понятности написанного …
Для установления яркости символов существуют процедуры LowVideo, HighVideo, NormVideo.

LowVideo- низкий уровень яркости:
HighVideo- высокий уровень яркости:
NormVideo- возвращает нормальный уровень яркости ..

Белый цвет символов с мерцанием:
TextColor (White + Blink);

Рассмотрим следующий пример. Рассчитать площадь прямоугольника со сторонами А и В.
Фон установить синий.
Цвет данных для ввода — желтый.
Цвет результата — зеленый.

Uses Crt;
 Var         side_b,  side_a,  Area : Real;
  BEGIN
            TextBackGround(Blue); ClrScr;
            TextColor(Yellow);
            Write('Side A='); Readln(side_a);
            Write('Side B='); Readln(side_b); 
            Area := side_a * side_b;     
            TextColor(Green);
            Writeln('Area is =', Area:2:2);
            Writeln('Press Enter to Exit');
            readln;
   END.

Для проверки наличия в программе синтаксических ошибок нажимаем F9. Для запуска программы на выполнение нажимаем Ctrl + F9.

Задача
К каждой задачи ответьте на вопрос:
Какие переменные будут «входящими», промежуточными, и укажите переменную/переменные, которая содержит результат.

Ввод данных делать красным цветом.Результат — зеленым:
Пример 1.
01.Дано два целых числа А и В. Найти их суму.

Uses CRT;
Var a,b:integer;
          s:integer;
BEGIN
    ClrScr;
    Textcolor(red);
    Write('Number A='); Readln(a);
    Write('Number B='); Readln(b);
    s:=a+b;
    Textcolor(green);
    writeln('Summa=',s);
writeln('Press Enter to Exit');
readln;
END.

a,b: входящие, s: результат. (протежуточных нет)

Фон экрана — желтый. Ввод данных красный цвет.Результат — зеленый.
Фразу ‘Press Enter to Exit’ сделать мигающей.
Пример 2.
01.Дано два целых числа А и В. Найти их суму.

Uses crt;
Var a,b:integer;
          s:integer;
BEGIN
    Textbackground(yellow);
    ClrScr;
    Textcolor(red);
    Write('Number A=');Readln(a);
    Write('Number B=');Readln(b);
    s:=a+b;
    Textcolor(green);
    writeln('Summa=',s);
    Textcolor(Red + Blink);
writeln('Press Enter to Exit');
readln;
END.

a,b: входящие, s: результат. (протежуточных нет)

Запомнить:
Команды управления цветом символов Textcolor();
Команды управления цветом фона Textbackground();
Названия нескольких Базовых цветов Red Green Blue Gray Cyan
Связку команд для установки цвета фона TextBackGround(); ClrScr;

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments