Pascal/Turbo Pascal - Como crear una estrella(figura) en pascal.

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar