La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Pascal-Turbo-Pascal/1271822-Como-crear-una-estrellafigura-en-pascal.html

Como crear una estrella(figura) en pascal.

Como crear una estrella(figura) en pascal.

Publicado por Mario (1 intervención) el 14/06/2011 05:14:12
Necesito hacer figuras geoometricas hechas en pascal, especificamente utilizando el signo asterisco. El problema es que no entiendo como crear lineas en forma diagonal.Me pueden ayudar pronto, es para un trabajo de la universidad.gracias

Como crear una estrella(figura) en pascal.

Publicado por ramon (2158 intervenciones) el 14/06/2011 16:56:43
{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.

Como crear una estrella(figura) en pascal.

Publicado por SKll (1 intervención) el 12/05/2013 06:30:47
necesito ayuda para crear una X con el Ciclo For solo utilizando una variable ayuda por favor

Como crear una estrella(figura) en pascal.

Publicado por ramon (2158 intervenciones) el 29/05/2013 15:18:30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{Mira así}
 
 program equis;
 uses
  crt;
 var
   x : integer;
  begin
      clrscr;
     for x := 1 to 10 do
     begin
         gotoxy(10 + x,5 + x);write('.');
         gotoxy(10 + 10 - x,5 + x);write('.');
     end;
     readkey;
  end.