Inicio > Pascal > sergioyoplay > ayuda pascal

ayuda pascal

Experto:
Usuario:
Fecha: 09/08/2009
Valoración: (5,00 sobre 5) Categoría: Pascal
07/08/2009
elprogramdor, usuario preguntando en Pascal
Usuario
hola.....mira una preguntica tu de casualidad has llegado a programar un sudoku en pascal????
agradezco la respuesta
08/08/2009
elprogramdor, experto respondiendo en Pascal
Experto
Pues la verdad, no xD
He programado una amplia variedad de cosas, entre ellas algún juego, pero no el Sudoku ;)
08/08/2009
elprogramdor, usuario preguntando en Pascal
Usuario
ok
 
otra preguntica a parte de eso....este recorrido q tengo es para guardar lo q tengo en pascal en un block de notas
 
{-----esto es solo para q entiendas el recorrido de abajo-----}
Sudocuadro = 0..10;
TCuadricula = Array [1..9,1..9] of sudocuadro;
 
Procedure CargaFichero(var cuad : TCuadricula);
i,j:sudocuadro;
Fich :text;
{---------------------------------------------------------------------}
 
for i:=1 to 9 do
  begin
    for j := 1 to 9 do
    begin
     write(Fich,cuad[j,i]);
   end;
         End;
 
el lo guardar bien pero me lo escribe todo en un sola linea y yo solo quiero q escriba solo 9 numeros y despues q vaya a la linea de abajo y escriba los siguientes numeros....pero por mas q hago no me sale
 
este un ejemplo de como tiene q quedarme en el block de notas
 
819537462
736284951
542961378
173496825
465328197
298715643
687142539
954873216
321659784
 
aparece cuad[j,i]......porq el programa desde el principio se hizo para q escribiera columna y despues fila....pero ahora como se tiene q imprimir fila y despues columna solo lo intercambimos las variables y ya
 
ya yo he intentado colocarle writeln, en donde lo escribe, despues q acaba el segundo for e intentado tambien quitarle el primer FOR y solo dejar el de abajo e ir incrementando i en uno, con los while ....pero nada me funciona si sabes otra manera dimela porfa
 
agradesco tu respuesta
08/08/2009
elprogramdor, experto respondiendo en Pascal
Experto
Ok
Yo cambiaría un par de cosas en los tipos, para hacerlos más comprensibles:
TYPE TNumero:1..9;
TCuadro=ARRAY[LOW(TNumero)..HIGH(TNumero)] OF TNumero;
TTablero=ARRAY[1..3,1..3] OF TCuadro;
Con estos tipos tendríamos desmembrados todo lo que "a simple vista" vemos en un sudoku =D
Pero como mejor te manejes ;)
Yo lo guardaría así:
PROCEDURE Guardar(dir:STRING;VAR cuad:TCuadricula);
VAR fich:TEXT;
       i,j:sudocuadro;//Te aconsejo que a los tipos les pongas una "T" delante, como "TSudocuadro", para distinguir los identificadores de tipo de los de variables
BEGIN
{-------------------------}
 FOR i:=LOW(i) TO HIGH(i) DO //LOW(i) en este caso será 1 y HIGH(i) será 10
  BEGIN
   FOR j:=LOW(j) TO HIGH(j) DO
    BEGIN
     WRITE(fich,cuad[i,j]);//o [j,i]; yo acostumbro a usar "i,j" en ese orden xD
    END;
  WRITELN(fich);
  END;
Cre que es esto lo que preguntabas, no?
Cuando acaba una fila, inserta un salto de línea (#$13+#$10 son los 2 caracteres de salto de línea) gracias al WRITELN(fich);
Luego, continua con las demás
Si no he contestado a tu pregunta, acláramelo porfis
09/08/2009
elprogramdor, usuario preguntando en Pascal
Usuario
MUCHISIMAS GRACIAS!!!!!!!
 
me sirvio perfectamente, y me salio exactamente como queria en el block de notas
Más opciones
Enlaces patrocinados