Pascal/Turbo Pascal - ayuda

   
Vista:

ayuda

Publicado por marta (2 intervenciones) el 16/11/2007 20:46:40
Neceito ayuda para este programa en PASCAL:

Simular en la pantalla del ordenador la lluvia de estrellas. Usar una tabla de 24 filas x 80 columnas para presentar en la pantala. El programa recibira como entrada el tiempo de la simulacion expresado en num de iteraciones. En cada iteracion, cada estrella del tablero (*) se mvera en direccion sudeste y se generara una nueva estrella en la fila superior, en una colmna calculada al azar. Para simular el movimento, al finalizar una iteracion, la pantalla se borara y se imprima el nuevo contenido de la tabla en la pantalla. las estrellas q alcancen el margen derecho reapareceran por el izquierdo.

es Urgente, gracias por vuestra ayuda
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

RE:ayuda

Publicado por Diego Romero (997 intervenciones) el 16/11/2007 22:01:54
¿No sabes hacer ese programa? muy simple, te lo envío la semana que viene terminado, saludos
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

RE:ayuda

Publicado por Mechanic (181 intervenciones) el 18/11/2007 23:51:21
Marta!
No pretendo ser grocero, pero, dices que necesitas ayuda con un programa.
A mí me parece que lo que quieres es que te hagan el programa completo.

A los participantes del foro nos gustaría ver aquí el trabajo que has hecho aunque esté incompleto o no funcione. Seguramente así, alguien gustosamente se prestaría a darte ideas o corregir errores en tu código, pues si alguien te va a ayudar será con la intención de que aprendas Pascal y no para que No aprendas.

Saludos!
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

RE:ayuda

Publicado por Marta (2 intervenciones) el 19/11/2007 14:39:45
Vale te escribo lo que he hecho, pero no sale lo que tiene que salir espero que si no os importa me lo mireis...

programa:
program ejer11(input,output);
uses crt;

const
f=24;
c=80;
type
tabla=array[1..80,1..24] of char;

var
inter,i1:integer;
sino:char;
matri,matri2:tabla;

procedure inimat(var tab: tabla);
var
inc2:integer;
inf:integer;
ini:integer;

begin
clrscr;
for inc2:= 1 to 80 do begin
for inf:= 1 to 24 do begin
tab[inc2,inf]:=' ';
end;
end;
randomize;
for ini:= 1 to inter do begin
inc2:=random(79)+1;
inf:=random(23)+1;
tab[inc2,inf]:='*';
end;
end;
procedure wrtmat(var tab: tabla);
var
wrc:integer;
wrf:integer;
begin
for wrc:= 1 to 80 do begin
for wrf:= 1 to 24 do begin
gotoXY(wrc,wrf);
write(tab[wrc,wrf]);
end;
end;

end;
procedure busco(var tab,tab2: tabla);
var
ic2,if2:integer;
ic3,if3:integer;
begin
for ic2:= 1 to 80 do begin
for if2:= 1 to 24 do begin

if tab[ic2,if2] = '*' then begin

ic3:=ic2+i1;
if3:=if2+i1;

if ic3 > 80 then begin
ic3:=ic3-80;
end;
if if3 > 24 then begin
if3:=if3-24;
end;
tab2[ic3,if3]:='*';
ic3:=random(79)+1;
if3:=if3-1;
if if3 = 0 then begin
if3:=1;
end;
tab2[ic3,if3]:='*';

end;
end;
end;
for ic2:= 1 to 80 do begin
for if2:= 1 to 24 do begin
if tab2[ic2,if2] = '- 'then
tab2[ic2,if2]:='*';

end;
end;
end;


begin
writeln (' escribe el num de interaciones: ');
readln (inter);
inimat(matri);
wrtmat(matri);
writeln (' pulsa enter para ver la lluvia de estrellas: ');
readln (sino);
for i1:= 1 to inter do begin
busco(matri,matri2);
end;
matri:=matri2;
wrtmat(matri);
readln(inter);
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

RE:ayuda

Publicado por Diego Romero (997 intervenciones) el 20/11/2007 03:48:55
A ver si dejas de ser tan vaga marta, y haces el programa vos, acá no se hace la tarea restrera robacódigo
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

RE:ayuda

Publicado por yolmer.rosalles (10 intervenciones) el 22/11/2007 18:57:03
marta puedo ayudarte pero no entiendo muy bien por que parte salen las estrellas ¿es por arriba o por la izquierda? lo demás se mueven en diagonal hacia abajo y luego aparecen por la izquierda, y cuando dices que se borra la pantalla ¿que es lo que tiene que aparecer? realiza la etapa de dialogo para que entiendas bien que es lo que se pide en el problema original. por lo que yo entiendo te daré esta idea

la inicialización esta bien borra la matriz y dejalo allí
despues (si la lluvia comienza desde la fila uno) no hagas random(79)+1 haz
for contador := 0 to 79
begin
variable := ramdom(1)
if variable = 0 then
matriz[0,contador] := '*'
else
matriz[0,' '] {si usas un espacio en blanco no tienes que borrar Pantalla para
cada iteracción ya que el espacio reemplaza un posible asterisco}
end;
esto te coloca los asteriscos de manera aleatoria en la primera fila despues para moverlas rrecorre la matriz con dos for anidados y verifica el valor diagonal superior
matriz[ x -1, y - 1]
y copialo matriz[x ,y] := matriz[x-1,y-1];
incluye una verificación cuando sea la primera columna o sea
if x = 0 then
aqui busca en el valor derecho
matriz[80,y-1]

espero que esto te guíe un poco
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