[ Foro de Pascal ]
Buenos días, ya hace tiempo he estado checando este foro, y realmente es muy bueno, me ha sacado de varias, el problema es que tengo varias dudas y por fin me he animado ser alumna de aqui, espero me puedan ayudar en 2 ejercicios que por mas que lo trate no pude, deben realizarse con PROCEDIMENTO! AYUDA:
EL PRIMERO
Que en la pantalla te aparesca los numeros del 1 al 6 y que cuando tecles algun numero este cambie de color, el programa se acabara cuando tecles la letra "O"
_____________________
| | | |
| 1 | 2 | 3 |
| | | |
| -------------------------------
| | | |
| 4 | 5 | 6 |
| | | |
-----------------------------------
Segundo:
Que en la pantalla te aparesca un marco de asteriscos (*), el asteriscos superior, y hasta la izquierda debe estar de color verde, al presionar
1 - Derecha
2- Abajo
3- Izquierda
4- Arriba
se valla moviendo el color del asterisco(*)
______________________
| |
| ***************** |
| * * |
| * * |
| * * |
| ***************** |
----------------------------------
Espero me puedan explicar, me gustaria estudiar algo sobre esto pero quiero que se me haga sencillo
MUCHAS GRACIAS
El primero lo puedes hacer con un "array" que contenga seis elementos, cada uno de los cuales sería un conjunto de cuatro datos (un "record"): el símbolo a mostrar, su coordenada X en pantalla, su coordenada Y y su color.
Cada vez que te indiquen cambiar uno de los elementos, modificas su color, dejando el resto de datos intactos (seguirá en las mismas coordenadas y con el mismo símbolo), y vuelves a dibujar los seis elementos tal y como están ahora.
También se puede hacer de formas "mucho más feas", como cuatro arrays independientes, o como un montón de variables sueltas, pero vamos a hacerlo bien... ;-)
Venga, cuando tengas éste, pasamos a por el segundo.
MUCHAS GRACIAS Creo que el array no lo hemos manejado, y por el momento no lo debo de usar, del primero solo llevo lo siguiente pero me trabe por que ya no me salio en orden los numeros, por favor AYUDA!
PROGRAM EJE1;
USES CRT;
VAR X,Y:INTEGER;
PROCEDURE UNO;
BEGIN
WRITELN;('1');
END;
PROCEDURE DOS;
BEGIN
WRITELN('2');
END;
PROCEDURE TRES;
BEGIN
WRITELN('3');
END;
PROCEDURE CUATRO;
BEGIN
WRITELN('4');
END;
PROCEDURE CINCO;
BEGIN
WRITELN('5');
END;
PROCEDURE SEIS;
BEGIN
WRITELN('6');
END;
BEGIN
CLRSCR;
X:=10;
Y:=13;
GOTOXY(X,Y);
UNO;
X:=37;
Y:=10;
GOTOXY(X,Y);
DOS;
X:=63;
Y:=10;
GOTOXY(X,Y);
TRES;
X:=10;
Y:=30;
GOTOXY(X,Y);
CUATRO;
X:=37;
Y:=30;
GOTOXY(X,Y);
CINCO;
X:=63;
Y:=30;
GOTOXY(X,Y);
SEIS;
READLN;
END.
Si no has visto cómo manejar arrays, lo puedes hacer con 6 variables independientes para las seis coordenadas X, otras tantas para las Y, otras tantas para los colores, etc: x1, y1, color1, x2, y2, color2, ...
Si tienes que hacer un procedimiento, puedes hacer que esos valores se pasen como parámetros, y estén prefijados en una primera prueba:
---
program ejemploProc;
uses crt;
procedure EscribirTexto(texto: string; x,y: integer; color: byte);
begin
GotoXY(x,y);
TextColor(color);
Write(texto);
TextColor(White);
end;
begin
EscribirTexto('1', 10,1, Blue);
EscribirTexto('2', 20,1, Blue);
EscribirTexto('3', 30,1, Blue);
EscribirTexto('4', 10,2, Cyan);
EscribirTexto('5', 20,2, Blue);
EscribirTexto('6', 30,2, Blue);
end.
---
Más adelante, para acercarte a lo que te piden, el color no podrá estar prefijado, sino que tendrá que estar en una variable, para poder irá cambiando.
MUCHAS GRACIAS YA LE ESTUVE ENSAÑANDO UN POQUITO
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)