Корректно ли написан код для изменения цвета фона 16 раз - Pascal
Формулировка задачи:
Задача : "Используя возможности модуля Crt для работы в экране в текстовом режиме, написать программу, которая 16 раз меняет цвет экрана и выводит любой текст на новом фоне в центр экрана."
Мой код :
По этому коду программа мне просто выдает текст на каком либо определенном фоне, не наблюдаю 16 изменений цвета.
Нет под рукой компьютера, поэтому пишу на планшете, в среде PascalGui (http://fpgui.sourceforge.net/). И не могу понять, это я неправильно написал программу или же это виновата среда? То есть на компьютере все сработает и будет видно, что цвет меняется 16 раз?
Program TheChangeOfColours;
uses crt;
var n : Integer;
Begin
For n:=1 to 16 do
Begin
TextBackGround(n);
Clrscr;
GotoXy(40,12);
textcolor(n+1);
Writeln ('Loser');
end;
end.Решение задачи: «Корректно ли написан код для изменения цвета фона 16 раз»
textual
Листинг программы
uses crt; var n:Integer; s:string; begin s:='Loser'; for n:=1 to 16 do begin TextBackGround(n); textcolor(n+8); Clrscr; GotoXy(40-(length(s) div 2),13); Write(s); if n<16 then delay(1000); end; textcolor(15); s:='Нажмите Enter для выхода'; GotoXy(40-(length(s) div 2),13); write(s); readln; end.
Объяснение кода листинга программы
- Подключение модуля crt:
uses crt; - Объявление переменной n с типом данных Integer:
var n:Integer; - Объявление переменной s с типом данных string и присвоение ей значения
Loser:s:='Loser'; - Цикл от 1 до 16 включительно:
for n:=1 to 16 do - Задание цвета фона:
TextBackGround(n); - Задание цвета текста:
textcolor(n+8); - Очистка экрана:
Clrscr; - Переход к координатам 40-(длина строки s деленная на 2), 13:
GotoXy(40-(length(s) div 2),13); - Вывод строки s на экран:
Write(s); - Если n меньше 16, то выполнить задержку в 1000 миллисекунд:
if n<16 then delay(1000); - Установка цвета текста в белый (цвет 15):
textcolor(15); - Изменение значения переменной s на
Нажмите Enter для выхода:s:='Нажмите Enter для выхода'; - Переход к координатам 40-(длина строки s деленная на 2), 13:
GotoXy(40-(length(s) div 2),13); - Вывод строки s на экран:
write(s); - Ожидание ввода пользователем Enter:
readln; - Завершение программы.
Код пытается изменить цвет фона и текста на экране 16 раз и выводит сообщение
Нажмите Enter для выхода. Он также ожидает нажатия клавиши Enter, после чего завершает выполнение.