Como crear una estrella(figura) en pascal.
{El modo de testo para representar figuras es un poquito chungo por la resolución que
posee como podrás ver los espacios son grandes y no puede unirse las figuras ano ser
que lo realizaras con los símbolos pero eso es bastante complicado lo de verías de realizar en modo gráfico para una mejor visión pero te dejo estos procedimientos para que puedas practicar lo que
quieres son dos formas de hacer un dibujo}
program estrella;
uses
crt;
const
estrellacon : array[1..7] of string[11] = (
'00*00000*00',
'000*000*000',
'0000*0*0000',
'****000****', {Otra forma de dibujo}
'0000*0*0000',
'000*000*000',
'00*00000*00');
var
x, y : integer;
procedure linea(xl, xxl, yl : integer); {Dibujamos una linea recta}
begin
for x := 0 to xxl do
begin
gotoxy(xl + x,yl);write('*');
end;
end;
procedure diagonal_i_d(xd, yd, xxd, yyd : integer); {dibujamos una linea}
var {inclinada de izq. a}
cx, cy : integer; {derecha}
begin
x := 0;
y := 0;
repeat
gotoxy(xd + x,yd + y);write('*');
x := x + 1;
if x > xxd then
x := xxd;
y := y + 1;
if y > yyd then
y := yyd;
until (x = xxd) and (y = yyd);
end;
procedure diagonal_d_i(xd, yd, xxd, yyd : integer); {dibujamos una linea}
var {inclinada de derecha}
cx, cy : integer; {a izquierda}
begin
x := xxd;
y := 0;
repeat
gotoxy(xd + x,yd + y);write('*');
x := x - 1;
if x < 0 then
x := 0;
y := y + 1;
if y > yyd then
y := yyd;
until (x = 0) and (y = yyd);
end;
procedure cuadro(xc, yc, xxc, yyc : integer);
var
canx, cany : integer;
begin
x := 0;
y := 0;
if xc > xxc then
begin
canx := xxc;
xxc := xc;
xc := canx;
end;
if yc > yyc then
begin
cany := yyc;
yyc := yc;
yc := cany;
end;
repeat
gotoxy(xc + x,yc);write('*');
gotoxy(xc + x,yyc);write('*');
x := x + 1;
until x > (xxc - xc);
repeat
gotoxy(xc,yc + y);write('*');
gotoxy(xxc,yc + y);write('*');
y := y + 1;
until y > (yyc - yc);
end;
procedure prestre(xs, ys : integer); {Otra forma de dibujar}
begin
for x := 1 to 11 do
for y := 1 to 7 do
begin
if estrellacon[y][x] <> '0' then
begin
gotoxy(xs + x,ys + y);write('*');
end;
end;
end;
begin
clrscr;
linea(10,20,12);
diagonal_i_d(10,12,10,10);
diagonal_d_i(20,12,10,10);
cuadro(40,10,50,20);
prestre(60,5);
readln;
end.