Pascal/Turbo Pascal - ayudaaa por favor, matrices en pascal

 
Vista:

ayudaaa por favor, matrices en pascal

Publicado por TATIANA (1 intervención) el 04/06/2011 00:53:07
hola tengo que hacer una piramide como esta

*
* *
* * *
* * * * *
* * * *
* * * * * *
* * * * * * * *
* * * * * ,_,* * * * *

y dividir la pantalla en 9 espacios y q el usuario escoja en donde lo quiere colocar, lo de los asteriscos.
POR FAVOR ES URGENTE!!
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

ayudaaa por favor, matrices en pascal

Publicado por ramon (2158 intervenciones) el 05/06/2011 15:53:59
{Espero sea esto lo que pides sino dame mas datos}

program piramide;
uses
crt;
const
piramid : array[1..6,1..11] of char = (
(' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' '),
(' ',' ',' ',' ','*','*','*',' ',' ',' ',' '),
(' ',' ',' ','*','*','*','*','*',' ',' ',' '),
(' ',' ','*','*','*','*','*','*','*',' ',' '),
(' ','*','*','*','*','*','*','*','*','*',' '),
('*','*','*','*','*','*','*','*','*','*','*'));
var
p, i, x, y : integer;
tec : char;

procedure pantalla; {dividimos la pantalla en 9 zonas}
var {la pantalla es de 80 X 25 en LCD Acmite mas que en}
k, t : integer; {monitor normal CRT}
begin
k := 24 div 3;
for t := 1 to 79 do
begin
gotoxy(t,1);write('_');
gotoxy(t,1 + k);write('_');
gotoxy(t,1 + (k * 2));write('_');
gotoxy(t,1 + (k * 3));write('_');
end;
k := 79 div 3;
for t := 1 to 24 do
begin
gotoxy(1,1 + t);write('|');
gotoxy(1 + k,1 + t);write('|');
gotoxy(1 + (k * 2),1 + t);write('|');
gotoxy(1 + (k * 3),1 + t);write('|');
end;
end;

procedure pon_piramide(xp, yp : integer; presente : boolean);
var
t, k : integer;
begin
if presente = true then {presentamos o borramos la}
textcolor(15) {piramide}
else
textcolor(0);
for t := 1 to 6 do
for k := 1 to 11 do
begin
gotoxy(xp + k,yp + t);write(piramid[t][k]);
end;
end;


begin
clrscr;
textcolor(15);
pantalla;
i := 79 div 3;
p := 24 div 3;
x := (i div 2) - 6;
y := (p div 2) - 2;
pon_piramide(x,y,true);
repeat
gotoxy(18,27);write('ELIJA ZONA DEL [1..9]... SALIMOS [Enter]');
tec := readkey;
if tec in[#49..#57] then
begin
pon_piramide(x,y,false);
case tec of
#49 : begin {colocamos en la posicion elejida}
x := (i div 2) - 6; {la piramide}
y := (p div 2) - 2;
end;
#50 : begin
x := i + 7;
y := (p div 2) - 2;
end;
#51 : begin
x := (i * 2) + 8;
y := (p div 2) - 2;
end;
#52 : begin
x := (i div 2) - 6;
y := p + 2;
end;
#53 : begin
x := i + 7;
y := p + 2;
end;
#54 : begin
x := (i * 2) + 8;
y := p + 2;
end;
#55 : begin
x := (i div 2) - 6;
y := (p * 2) + 2;
end;
#56 : begin
x := i + 7;
y := (p * 2) + 2;
end;
#57 : begin
x := (i * 2) + 8;
y := (p * 2) + 2;
end;
end;
pon_piramide(x,y,true);
end;
until tec = #13;
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