-1 / 0 / 1 Регистрация: 16.09.2012 Сообщений: 130 |
|
1 |
|
29.10.2012, 16:01. Показов 36963. Ответов 3
Как изменить цвет текста и цвет фона, например белый фон и текст черным или серым
__________________
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
29.10.2012, 16:01 |
Ответы с готовыми решениями: Перевести код Pascal ABC NET в Pascal ABC Перевод из Pascal ABC.net в Pascal ABC Нужно перевести код из Turbo Pascal в Pascal ABC Переделайте, пожалуйста, программу из Turbo pascal в ABC pascal Program ProgInt; 3 |
ermolay 3451 / 2389 / 2135 Регистрация: 04.12.2011 Сообщений: 3,966 |
||||
29.10.2012, 16:59 |
2 |
|||
Добавлено через 4 минуты Добавлено через 4 минуты Black=0; Blue=1; Green=2; Cyan=3;
3 |
0 / 0 / 3 Регистрация: 18.11.2017 Сообщений: 99 |
|
15.03.2018, 16:08 |
3 |
pascal abc не находит такой процедуры textcolor. почему? и есть ли альтернатива, чтоб поменять цвет текста, кроме граф. модуля?
0 |
Почетный модератор 64272 / 47571 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
|
15.03.2018, 16:10 |
4 |
Если подключить модуль Crt, как у ermolay, то и textcolor появится.
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
15.03.2018, 16:10 |
4 |
Оформление и разметку текста используют довольно редко , однако бывают случаи , когда они вам пригодятся.
Возможно , когда-нибудь вы столкнетесь с такой задачей : как оформить текст в паскале.
В данной статье вы узнаете о том , как изменить цвет текста , как добавить цветной фон , как очистить экран и т.д.
Модуль crt
Для всех ниже приведенных функций требуется подключать дополнительный модуль
crt
. Подключать его нужно в блоке
uses
:
|
Если вы не подключите данный модуль , то функции по оформлению текста не будут работать.
После того , как вы его подключите , программа будет работать в новом окне размером
80×25
. Представлять такое окно можно как таблица в 25 строк и 80 столбцов.
GotoXY
Когда мы выводим текст на экран , то курсор находится в координате 1,1 ( столбец-1 , строка-1 ). Но для того , чтобы изменить место положение выводимого текста , в паскале предусмотрена функция gotoxy.
|
Стандартно , в языке программирования паскаль текст выводится строго черным цветом , но его также можно изменить. Изменить цвет текста можно командой textcolor. Чтобы изменить цвет текста требуется использовать команду textcolor(red) , а в скобках указать цвет ( например red ). В скобках можно использовать название цвета , а также код цвета.
Таблица цветов
Но стоит помнить , что команда textcolor не меняет весь текст на экране ,а только тот , который выводится после этой команды.
|
Результат выполнения данной программы будет выглядеть примерно так :
Clrscr
Функция clrscr стирает весь текст , который был выведен на экран до использования данной функции. Также с помощью неё можно закрасить экран в определенный цвет. О том как это сделать читайте далее.
TextBackGround
Тексту также можно задавать цвет фона. Фон для текста задается командой textbackground. В скобках , в аналогии с textcolor можно указывать имя или код цвета.
|
Результат выполнения данной программы будет выглядеть так :
С помощью данной команды можно задать фон всему рабочему окну программы,
Сделать это можно так :
|
В данном случае всё окно рабочей программы будет окрашено в зеленый цвет.
Delay
С помощью команды delay можно остановить программу на определенное количество времени . Это время указывается в скобках в мкс.
|
В данном случае на экран будет выведено сообщение «hello» с задержкой 1000 мкс.
[Всего голосов: 36 Средний: 3.1/5]
Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится текст. Процедура Window задает окно, в котором будет выводиться текст.
program number4; uses crt; begin clrscr; Window (20,5,60,20); Textbackground (14); Textcolor (1); writeln(‘Это сообщение выводится синим цветом на желтом фоне’); readln end.
Строка №2. Подключаем к программе модуль Crt. Мы уже упоминали этот модуль, когда использовали процедуру очистки экрана Clrscr. Помимо этого данный модуль подключается к программе для управления способами вывода на экран. Он позволяет устанавливать курсор в нужную позицию на экране (gotoxy), устанавливать цвет фона (textbackground) и цвет выводимых символов (textcolor) и многое другое. В конце обязательно ставится точка с запятой.
Строка №5. Записываем процедуру Window. Эта процедура определяет, где на экране будет находиться текстовое окно. Window (x1, y1, x2, y2): (x1, y1) — координаты для верхнего левого угла окна. (x2,y2) – координаты для нижнего правого угла окна. Таким образом, запись Window (20,5,60,20) означает, что у нас задается окно. Его координаты: левый верхний угол (20,5) и нижний правый угол (60,20). Ниже дана простая схема.
Самый большой черный прямоугольник – это весь экран. В компиляторе Turbo Pascal ширина экрана равна 80 столбцам и 43 строкам (для Free Pascal — 80 столбцов и 38 строк). Красный прямоугольник внутри – это экран, определяемый процедурой Window (20,5,60,20). Самое главное здесь – запомнить, что координаты отмеряются с верхнего левого угла. Теперь все действия, которые будут производится в программе (например, вывод сообщения на экран) будут производится в этом окне.
В строке №6 записываем процедуру Textbackground, которая устанавливает цвет для фона, на котором будет выводиться текст. После записи слова Textbackground в скобках указывается значение. Мы указали значение 14. Это число соответствует желтому цвету в палитре цветов Паскаля. Ниже находится таблица, в которой указаны все 16 цветов, входящих в палитру цветов Паскаля.
В строке №7 записываем процедуру Textcolor. Эта процедура устанавливает цвет для выводимого на экран текста. После записи Textcolor в скобках записываем значение 1, что соответствует синему цвету.
Строка №8. Выводим на экран сообщение.
Теперь набрем программу в Паскале и запустим ее.
У нас выводится сообщение. Обратите внимание, что оно выводится не в начале экрана, а в начале невидимого экрана, определенного процедурой Window. Кроме того, сообщение выводится, синим цветом, на желтом фоне. Это действие Textbackground и Textcolor.
Дополнение к материалу.
CRT – английская аббревиатура, которая обозначает электронно-лучевую трубку. Таким образом, название модуля Crt подчеркивает, что он умеет управлять способами вывода на экран.
На занятии происходит знакомство с логическим типом Boolean в Паскале. Рассматривается алгоритм того, как находится минимальное и максимальное число в Паскале
Графика в Паскале
Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:
uses GraphABC; begin ... end.
Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:
Система координат
Управление цветом
Для того, чтобы использовать цвет, необходимо применить этот цвет к инструменту перо:
- SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color;
- setBrushColor(color) — устанавливает цвет кисти, задаваемый параметром color;
- либо для палитры RGB: SetPenColor(rgb(0-255, 0-255, 0-255));
- FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y).
или использовать для заливки:
После чего можно использовать процедуры для рисования геометрических фигур.
Цвета в pascal abc:
clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный
Точки, отрезки и ломаные
Для отображения точки в паскале используется процедура:
uses GraphABC; begin SetPixel(300,200,clred); end.
Для рисования линии используется:
uses GraphABC; begin SetPenColor(clgreen); line(100,50,500,250); end.
Ломаные можно рисовать с помощью процедур MoveTo (x1, y1)
и LineTo (x2, y2)
.
Процедуры работают в паре: MoveTo
передвигает курсор в определенную точку, а процедура LineTo
рисует линию с этой точки до точки, определенной параметром данной процедуры.
uses GraphABC; begin ... SetPenColor(clblue); MoveTo (x1, y1); LineTo (x2, y2); LineTo (x3, y3); LineTo (x4, y4); LineTo (x5, y5); end.
Задание 0: При помощи операторов SetPenColor(), LineTo (x2, y2) и MoveTo (x1, y1) нарисовать квадрат и равносторонний треугольник.
[Название файла: L4_2task0.pas
]
Для установки размеров графического окна используется процедура
или, например:
SetWindowWidth(600); SetWindowHeight(400);
Рисование фигур
Прямоугольник в Паскале рисуется:
uses GraphABC; begin Rectangle(50,50,200,200); end.
Фигуры с заливкой:
uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end.
Треугольник рисуется процедурами:
Line(x1,y1,x2,y2);
LineTo(x,y);
uses GraphABC; begin setpenwidth(20); setpencolor(clred); moveTo(300,100); lineTo(500,300); lineto(100,300); lineto(300,100); floodfill(300,200,clgreen); end.
Окружность можно нарисовать с помощью процедуры:
uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end.
Дуга окружности
1 2 3 4 5 |
uses GraphABC; Begin SetPenWidth(10); Arc(300,250,150,45,135); end. |
Задание 1: «Лягушка»
[Название файла: L4_2task1.pas
]
Задание 2: «Корона»
[Название файла: L4_2task2.pas
]
Функция random для использования окраски
Задание 3: Нарисовать горизонтальный ряд окружностей радиусом 10 на расстоянии 100 от верхнего края экрана и с такими горизонтальными координатами 50, 80, 110, 140, … , 290.
* раскрасить круги случайным цветом
[Название файла: L4_2task3.pas
]
Задание 4: «Круги на воде».
Нарисуйте пару десятков концентрических окружностей, то есть окружностей разного радиуса, но имеющих общий центр.
[Название файла: L4_2task4.pas
]
Задание 5:
Воспроизвести изображение при помощи программы:
[Название файла: L4_2task5.pas
]
Штриховка
Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:
Программа будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
uses graphABC; var i, x1, x2, y1, y2, N: integer; h, x: real; begin x1 := 100; y1 := 100; x2 := 300; y2 := 200; N := 10; Rectangle (x1, y1, x2, y2); h := (x2 - x1) / (N + 1); x := x1 + h; for i:=1 to N do begin Line(round(x), y1, round(x), y2); x := x + h; end; end. |
Задание 6:
Нарисуйте шахматную доску.
[Название файла: L4_2task6.pas
]
Анимация в Паскале
Анимация в программировании заключается в том, что сначала рисуется фигура цветным инструментом, затем с тем же координатами рисуется та же фигура белым цветом. После чего происходит сдвиг фигуры и действия повторяются.
Пример: Воспроизвести движение круга по горизонтали.
1 2 3 4 5 6 7 8 9 10 11 12 |
uses GraphABC; var x:integer; begin x:=40; repeat SetPenColor(clWhite); Circle(x,100,10); {Рисуем белую окружность} SetPenColor(clBlack); Circle(x,100,10); {Рисуем черную окружность} x:=x+1 {Перемещаемся немного направо} until x>600; end. |
Задание 7: Выполнить анимацию движения квадрата по следующей траектории:
[Название файла: L4_2task7.pas
]
Просмотров 68.8к. Обновлено 23 ноября 2020
После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно.
Чтобы его открыть, необходимо подключить модуль GraphABC. В этом модуле содержится набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой.
С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.
Подключение осуществляется в разделе описаний.
Формат подключения модуля GraphABC:Uses GraphABC;
Графический экран PascalABC (по умолчанию) содержит 640 точек по горизонтали и 400 точек по вертикали. Начало отсчета – левый верхний угол экрана. Ось x направлена вправо, а ось y –вниз. Координаты исчисляются в пикселях.
Все команды библиотеки GraphABC являются подпрограммами и описаны в виде процедур и функций. Для того, что бы команда выполнилась необходимо указать команду и задать значения параметров.
Содержание
- Управление графическим окном
- Процедуры рисования графических примитивов
- Процедуры, используемые для работы с цветом
- Процедуры для работы с текстом
- Цвета в PascalABC
Управление графическим окном
После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно.
Чтобы его открыть, необходимо подключить модуль GraphABC. В этом модуле содержится набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой.
С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.
Подключение осуществляется в разделе описаний.
Формат подключения модуля GraphABC:Uses GraphABC;
Графический экран PascalABC (по умолчанию) содержит 640 точек по горизонтали и 400 точек по вертикали. Начало отсчета – левый верхний угол экрана. Ось x направлена вправо, а ось y –вниз. Координаты исчисляются в пикселях.
Все команды библиотеки GraphABC являются подпрограммами и описаны в виде процедур и функций. Для того, что бы команда выполнилась необходимо указать команду и задать значения параметров.
Процедуры рисования графических примитивов
Процедуры, используемые для работы с цветом
Процедуры для работы с текстом
Цвета в PascalABC
Пример графической программы, рисующей изображение дома:
Program Domik; uses Graphabc; //подключение модуля GraphABC begin SetWindowWidth(800); //ширина окна программы SetWindowHeight(600); //высота окна программы SetPenWidth(3); //толщина пера SetFontSize(18); //размер шрифта SetFontColor(clRed); //цвет шрифта SetFontStyle(fsBold); //жирный стиль шрифта TextOut(100,100,'Домик'); //текст Rectangle(200, 300, 600,600); //дом Circle(400,225, 40); //круг SetBrushColor(clAqua); //цвет заливки окна FillRect(300, 400,500,500); //процедура заливки окна rectangle(300,400,500,500); //окно Line(400,400,400,500); // окно Line(300,450,500,450); //окно Line(200,300,400,150); //крыша Line(400,150,600,300); //крыша Line(480,210,480,160); //труба Line(480,160,520,160); //труба Line(520,160,520,240); //труба end.
Программа, рисующая фигурку:
Program Figurka; uses GraphABC; begin SetWindowSize(500, 500); //задаем размер графического окна SetPenWidth(3); //устанавливаем стиль пера SetBrushColor(clFuchsia); //устанавливаем цвет кисти Circle(225,160,50); //рисуем окружность Line(225,160,225,180); //рисуем линии Line( 210,190,240,190); Line( 225,210,225,250); Line( 100,100,200,260); Line( 200,260,400,260); Line( 210,350,200,480); Line(240,350,250,480); Rectangle(200,230,250,350); //рисуем прямоугольник SetBrushColor(clLime); FillRect(0, 480,500,500); //рисуем закрашенный прямоугольник SetBrushColor(clWhite); Circle(205,150,10); Circle(245,150,10); end.
Практическая работа за компьютером
Задание 1. Определите координаты и составьте программу, выводящую на экран рисунок дома и дерева.
Программа будет иметь вид:
Program domik_2; uses GraphABC; var i: integer; st:string; begin SetWindowSize(500, 500); {Коричневая стена} SetPenWidth(2); SetBrushColor(clBrown); FillRect(100,50,150,100); {Крыша желтого цвета} SetPenColor(clBrown); Line(125,25,80,75); Line(125,25,170,75); FloodFill(125, 30,clYellow); {Крона дерева} SetPenColor(clGreen); SetBrushColor(clGreen); Ellipse(100,150,150,200); {ствол дерева} SetBrushColor(clBrown); FillRect(120,200,130,230); end.
Задание 2. Используя оператор цикла и введя переменную для пересчета координат по оси x, постройте “поселок”, состоящий из 5 домов. Внесите соответствующие дополнения и изменения в предыдущую программу.
Весь наш «поселок» выстроился вдоль горизонтальной оси экрана — оси X. Построение рисунка начинается с левого верхнего угла стены первого дома — точки с координатами (100, 50). Координата Y не изменяется. Чтобы начать рисовать второй домик, нужно координату X увеличить на 150 (50 точек — ширина первого дома и 100 точек — расстояние между домиками).
Выберем в качестве параметра цикла целочисленную переменную X.
Для всех элементов нашего рисунка абсолютное значение координаты X заменим на относительное. Например, для стены дома процедура для рисования запишется следующим образом:
FillRect(x,50,x+50,100);
Сформулируем условие выполнения цыклических действий для нашей задачи.Какие координаты имеет левый верхний угол пятого дома? Конечное значение выбранного нами параметра цикла x = 700. Тогда условие выполнения цикла записывается так: x<=700.
Словесное описание алгоритма коротко можно записать так:
Переменной цикла x присвоить начальное значение 100. Пока x<=700 выполнять серию действий «Нарисуй дом и дерево», после каждого фрагмента рисунка увеличивать значение переменной цикла на 150.
Программа будет иметь вид:
Program Domik; uses GraphABC; var i: integer; st:string; x:integer; begin SetWindowSize(800, 500); x:=100; While x<=700 do begin {Коричневая стена} SetPenWidth(2); SetBrushColor(clBrown); FillRect(x,50,x+50,100); {Крыша желтого цвета} SetPenColor(clBrown); Line(x+25,25,x-20,75); Line(x+25,25,x+70,75); FloodFill(x+25, 30,clYellow); {Крона дерева} SetPenColor(clGreen); SetBrushColor(clGreen); Ellipse(x,150,x+50,200); {ствол дерева} SetBrushColor(clBrown); FillRect(x+20,200,x+30,230); x:=x+150; end; end.