Pascal/Turbo Pascal - Ayuda con programa que genera espiral

 
Vista:

Ayuda con programa que genera espiral

Publicado por Luis (29 intervenciones) el 30/05/2012 01:34:57
Hola, la intencion de este programa es q me quede un espiral con los numeros q introduzco, se q con los gotoxy les doy la ubicacion pero no he podidio ahi medio voy por fa ayuda plis :(

PD: solo puedo utilizar lo que tiene el codigo mas nada solo el for y el gotoxy plis help me

program espiral;
uses crt;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,i:integer;

begin
clrscr;
writeln('Ingrese Numero');
readln(n1);
writeln('Ingrese Numero');
readln(n2);
writeln('Ingrese Numero');
readln(n3);
writeln('Ingrese Numero');
readln(n4);
writeln('Ingrese Numero');
readln(n5);
writeln('Ingrese Numero');
readln(n6);
writeln('Ingrese Numero');
readln(n7);
writeln('Ingrese Numero');
readln(n8);
writeln('Ingrese Numero');
readln(n9);
writeln('Ingrese Numero');
readln(n10);
writeln('Ingrese Numero');
readln(n11);
writeln('Ingrese Numero');
readln(n12);
writeln('Ingrese Numero');
readln(n13);
writeln('Ingrese Numero');
readln(n14);
writeln('Ingrese Numero');
readln(n15);
writeln('Ingrese Numero');
readln(n16);

begin
clrscr;


begin
gotoxy (35,12);write(n1);
gotoxy (38,12);write(n2);
gotoxy (41,12);write(n3);
gotoxy (44,12);write(n4);

gotoxy (44,13);write(n5);
gotoxy (44,15);write(n6);
gotoxy (44,17);write(n7);
gotoxy (44,19);write(n8);

gotoxy (44,21);write(n9);
gotoxy (41,21);write(n10);
gotoxy (38,21);write(n11);
gotoxy (38,19);write(n12);

gotoxy (38,17);write(n13);
gotoxy (39,15);write(n14);

gotoxy (40,16);write(n15);
gotoxy (41,17);write(n16);
end;
end;
readkey
end.
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

Ayuda con programa que genera espiral

Publicado por ramon (2158 intervenciones) el 30/05/2012 16:57:16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
{A ver esto te sirve un poquito chungo no.}
 
program espiral;
uses crt;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,i:integer;
 
begin
clrscr;
writeln('Ingrese Numero');
readln(n1);
writeln('Ingrese Numero');
readln(n2);
writeln('Ingrese Numero');
readln(n3);
writeln('Ingrese Numero');
readln(n4);
writeln('Ingrese Numero');
readln(n5);
writeln('Ingrese Numero');
readln(n6);
writeln('Ingrese Numero');
readln(n7);
writeln('Ingrese Numero');
readln(n8);
writeln('Ingrese Numero');
readln(n9);
writeln('Ingrese Numero');
readln(n10);
writeln('Ingrese Numero');
readln(n11);
writeln('Ingrese Numero');
readln(n12);
writeln('Ingrese Numero');
readln(n13);
writeln('Ingrese Numero');
readln(n14);
writeln('Ingrese Numero');
readln(n15);
writeln('Ingrese Numero');
readln(n16);
 
begin
clrscr;
 
 
begin
gotoxy (35,12);write(n1);
gotoxy (38,12);write(n2);
gotoxy (41,12);write(n3);
gotoxy (44,12);write(n4);
 
gotoxy (44,15);write(n5);
gotoxy (44,18);write(n6);
gotoxy (44,21);write(n7);
gotoxy (41,21);write(n8);
 
gotoxy (38,21);write(n9);
gotoxy (35,21);write(n10);
gotoxy (35,18);write(n11);
gotoxy (35,15);write(n12);
 
gotoxy (38,15);write(n13);
gotoxy (41,15);write(n14);
 
gotoxy (41,18);write(n15);
gotoxy (38,18);write(n16);
end;
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

Ayuda con programa que genera espiral

Publicado por Luis (29 intervenciones) el 31/05/2012 02:44:16
Ramon gracias pero sale un cuadro mas no espiral osea mejor dicho deberia verse asi
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

Ayuda con programa que genera espiral

Publicado por Luis (29 intervenciones) el 31/05/2012 02:53:59
1 2 3 4



2 3 4 1



1 2 1 2



4 3 2 1





Osea una forma de visualizarla mejor, por lo menos que cuando valla introduciendo los numero me lo valla escribiendo en un lado para q se valla viendo mejor que se esta creando un espiral o que cuando termine de introducir los datos por medio de un delay el valla creando el espiral de manera q se vea que se creo de manera espiral; si puedes colocarlo de las 2 maneras mejor gracias ramon
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

Ayuda con programa que genera espiral

Publicado por ramon (2158 intervenciones) el 31/05/2012 16:14:22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
{Mira para realizar algo se tiene que disponer de medios en este caso con fisgar los valores a
cada posición gotoxy no vasta puesto que no puedes dosificarlo mas por eso empleamos
una constante de valores que nos permite mas flexibilidad a la ora  de presentar los datos
como veras en este programa que te paso espero esto te ayude un poco.}
 
 program espiral;
 uses
   crt;
   const
      espira : array[1..16] of array[1..2] of integer = (
      (1,1),(6,1),(11,1),(16,1),(16,4),(16,7),(16,10),
      (11,10),(6,10),(1,10),(1,7),(1,4),(6,4),(11,4),
      (11,7),(6,7));
  var
    numeros : array[1..16] of integer;
    tec : char;
    valor : word;
    ii : integer;
 
   procedure presentafueradentro(cop, n : integer);
   var
     x1, y1 : integer;
   begin
       x1 := 20 + espira[cop][1];
       y1 := 10 + espira[cop][2];
       gotoxy(x1,y1);write(n);
   end;
 
   procedure presentadentrofuera(co, s : integer);
   var
     zs, x2, y2 : integer;
   begin
        zs := 17 - co;
        x2 := 50 + espira[zs][1];
        y2 := 10 + espira[zs][2];
        gotoxy(x2,y2);write(s);
   end;
 
   procedure entranumeros;
   var
      nu : integer;
   begin
       nu := 1;
       clrscr;
       writeln('  Entre 16 numeros ');
       writeln;
       while nu <> 17 do
       begin
       gotoxy(3,3);write(' N§ : ',nu,' : ');
       gotoxy(14,3);readln(numeros[nu]);
       gotoxy(14,3);clreol;
       presentafueradentro(nu, numeros[nu]);
       presentadentrofuera(nu, numeros[nu]);
       nu := nu + 1;
      end;
   end;
 
   procedure presentaenespiralfd;
   var
      t, y, i : integer;
   begin
       t := 1;
       y := 1;
       for i := 1 to 16 do
       begin
       t := espira[i][1];
       y := espira[i][2];
       gotoxy(5 + t,5 + y);write(numeros[i]);
  end;
 end;
 
   procedure presentaenespiraldf;
   var
      t, y, i : integer;
   begin
       t := 1;
       y := 1;
       for i := 16 downto 1 do
       begin
       t := espira[i][1];
       y := espira[i][2];
       gotoxy(45 + t,5 + y);write(numeros[(16 - i) + 1]);
  end;
 end;
 
 
  begin
      clrscr;
      entranumeros;
      clrscr;
      writeln('Pulse CTRL + F9');
      repeat
      tec := readkey;
      if tec = #0 then
      valor := word(ord(readkey)) shl 8
    else
      valor := ord(readkey);
      writeln(valor);
      until valor = 26112;
      clrscr;
      writeln;
      for ii := 1 to 16 do
      write('  ',numeros[ii]);
      writeln;
      presentaenespiralfd;
      presentaenespiraldf;
      gotoxy(4,18);write('Pulse [Enter]');
      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