Другие языки программирования и технологии
нужна прога на паскале
Необходимо нарисовать цифру «1», причем контуром использовать символы «*», а сама цифра должна появляться на экране не сразу, а прорисовываться по часовой стрелке, начиная с верхней правой точки. Плюсом в реализации задания будет динамическое изменение цвета контура при рисовании фигуры
uses crt;
const x = 30;y=20;
const
e : Array [1..50,1..2] of byte = (
(x+10,y-13),
(x+10,y-12),
(x+10,y-11),
(x+10,y-10),
(x+10,y-9),
(x+10,y-8),
(x+10,y-7),
(x+10,y-6),
(x+10,y-5),
(x+10,y-4),
(x+10,y-3),
(x+10,y-2),
(x+10,y-1),
(x+10,y),
(x+9,y),
(x+8,y),
(x+7,y),
(x+6,y),
(x+5,y),
(x+4,y),
(x+3,y),
(x+2,y),
(x+1,y),
(x,y),
(x,y),
(x,y-1),
(x,y-2),
(x,y-3),
(x,y-4),
(x,y-5),
(x,y-6),
(x,y-7),
(x,y-8),
(x-1,y-8),
(x-2,y-8),
(x-3,y-8),
(x-4,y-8),
(x-3,y-9),
(x-2,y-10),
(x-1,y-11),
(x,y-12),
(x+1,y-13),
(x+2,y-13),
(x+3,y-13),
(x+4,y-13),
(x+5,y-13),
(x+6,y-13),
(x+7,y-13),
(x+8,y-13),
(x+9,y-13));
var i : byte;
j : integer;
begin
clrscr;
randomize;
for i := 1 to 50 do
begin
gotoxy(e[i,1],e[i,2]);
TextColor(random(15));
write('*');
delay(10000);
delay(10000)
end;
end.
const x = 30;y=20;
const
e : Array [1..50,1..2] of byte = (
(x+10,y-13),
(x+10,y-12),
(x+10,y-11),
(x+10,y-10),
(x+10,y-9),
(x+10,y-8),
(x+10,y-7),
(x+10,y-6),
(x+10,y-5),
(x+10,y-4),
(x+10,y-3),
(x+10,y-2),
(x+10,y-1),
(x+10,y),
(x+9,y),
(x+8,y),
(x+7,y),
(x+6,y),
(x+5,y),
(x+4,y),
(x+3,y),
(x+2,y),
(x+1,y),
(x,y),
(x,y),
(x,y-1),
(x,y-2),
(x,y-3),
(x,y-4),
(x,y-5),
(x,y-6),
(x,y-7),
(x,y-8),
(x-1,y-8),
(x-2,y-8),
(x-3,y-8),
(x-4,y-8),
(x-3,y-9),
(x-2,y-10),
(x-1,y-11),
(x,y-12),
(x+1,y-13),
(x+2,y-13),
(x+3,y-13),
(x+4,y-13),
(x+5,y-13),
(x+6,y-13),
(x+7,y-13),
(x+8,y-13),
(x+9,y-13));
var i : byte;
j : integer;
begin
clrscr;
randomize;
for i := 1 to 50 do
begin
gotoxy(e[i,1],e[i,2]);
TextColor(random(15));
write('*');
delay(10000);
delay(10000)
end;
end.
Доброго времени суток.
Один из вариантов. Объявляете два массива или один массив записей из двух полей в которые записаны координаты знакомест экрана. А затем в цикле выводите в указанные позиции символы "*".
for j:=1 to N do begin
GoToXY(X[j],Y[j]);
Write('*');
Delay(T);
end;
Если надо менять цвет, то можно поступить по разному. Либо менять цвет выводимой точки, либо всего контура, в том числе и уже нарисованного. Если только выводимого, то достаточно в нужные моменты установливать цвет процедурой
TextColor(Color);
Если надо изменять цвет всего контура, то цикл следует немного модифицировать.
for k:=1 to N do
for j:=1 to k do begin
GoToXY(X[j],Y[j]);
Write('*');
Delay(T);
end;
Поскольку в ТР доступно только 15 цветов, то смену чвета можно делать так
TextColor((k mod 15)+1); {+1 чтобы не было черного цвета}
При таком подходе цвет будет меняться при выводе каждой новой точки. Если смену цвета надо сделать реже, то это тоже решаемо.
Переменная Т определяет время задержки между выводами точек, т. е. скорость вывода фигуры.
Другим методом может быть динамическое генерирование координат экрана. Здесь думать надо.
Удачи!
Один из вариантов. Объявляете два массива или один массив записей из двух полей в которые записаны координаты знакомест экрана. А затем в цикле выводите в указанные позиции символы "*".
for j:=1 to N do begin
GoToXY(X[j],Y[j]);
Write('*');
Delay(T);
end;
Если надо менять цвет, то можно поступить по разному. Либо менять цвет выводимой точки, либо всего контура, в том числе и уже нарисованного. Если только выводимого, то достаточно в нужные моменты установливать цвет процедурой
TextColor(Color);
Если надо изменять цвет всего контура, то цикл следует немного модифицировать.
for k:=1 to N do
for j:=1 to k do begin
GoToXY(X[j],Y[j]);
Write('*');
Delay(T);
end;
Поскольку в ТР доступно только 15 цветов, то смену чвета можно делать так
TextColor((k mod 15)+1); {+1 чтобы не было черного цвета}
При таком подходе цвет будет меняться при выводе каждой новой точки. Если смену цвета надо сделать реже, то это тоже решаемо.
Переменная Т определяет время задержки между выводами точек, т. е. скорость вывода фигуры.
Другим методом может быть динамическое генерирование координат экрана. Здесь думать надо.
Удачи!
Похожие вопросы
- СРОЧНО ! Напишите прогу на Паскале
- нужна помощь с прогой на паскале. сортировка матрицы. в данной проге необходимо в начале вывести исходную матрицу в "кра
- Помогите написать прогу на паскале
- напишите проги в ПАСКАЛЕ плиз!!!очень надо.
- СРОЧНО ПОМОГИТЕ!!! Напишите прогу на паскале
- Нужна помощь с паскалем!
- помогите составить прогу в паскале
- КТО знает подскажите как прогу в паскале написать с применением аски кодов
- Как написать прогу на паскале или С, чтобы при запуске этой проги она удаляла файл, например С://123.txt
- помогите доработать маленькую прогу на паскале(см. внутри)