Pascal/Turbo Pascal - Ayuda con turbo pascal, programa con arreglos

 
Vista:
sin imagen de perfil

Ayuda con turbo pascal, programa con arreglos

Publicado por Héctor (8 intervenciones) el 24/03/2013 22:10:03
Hola quisiera saber si alguien me puede ayudar con este programa les dejo la descripcion de como debe de ser:

{Una progresión aritmética es un conjunto de números en los que la diferencia d entre dos términos sucesivos
cualesquiera es constante, a esta diferencia se conoce como distancia. Por ejemplo, la sucesión 5; 7; 9; 11;    es una progresión aritmética con distancia d = 2.}

AQUI ESTA EL PROGRAMA:

El programa consistirá en declarar un arreglo de 15x15 en el que cada elemento del arreglo tendrá un elemento de una progresión aritmética. El programa deberá solicitar el primer término "a1" y el valor de la distancia "d" de la progresión. Deberás mostrar en pantalla el arreglo con todos los números de la serie que se generan con esos valores. Posteriormente devolverás el número de elementos divisibles entre 3 y el número de elementos divisibles entre 5 de la serie que se generó.

Hints
1. Trabajaremos con valores enteros, pero no se restringen únicamente a estos las series numéricas.
2. n es un número que corre desde 1 y llega hasta el valor que tú determines, en este caso al número máximo de
valores que podrá guardar tu arreglo.
3. Usa MOD para conocer si un número es divisible entre otro.

Ejemplo:
---------------------------------------------------------------
Entrada
----------------------------------------------------------------
1
2
----------------------------------------------------------------
Salida
----------------------------------------------------------------
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
61 63 65 67 69 71 73 75 77 79 81 83 85 87 89
...
75
45
----------------------------------------------------------------

aqui el problema es que no me compila, y no entiendo porque, quisera saber si alguien me puede ayudar, se lo agradeceria mucho, de antemano gracias y suerte en todo lo que realicen!
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 turbo pascal, programa con arreglos

Publicado por ramon (2158 intervenciones) el 24/03/2013 22:41:14
Me pones aquí el problema es que no me compila pero no veo programa ninguno puedes pasarlo
para revisarlo o te pongo un ejemplo
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 turbo pascal, programa con arreglos

Publicado por ramon (2158 intervenciones) el 25/03/2013 16:45:26
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
{Bien te dejo un ejemplo a ver si sirve de ayuda}
 
  program matriz;
 uses
   crt;
 const
    matri0 = 15; {modificar a voluntad matriz}
    matri1 = 3;  {modificar a voluntad matriz}
    dv3 = 3;  {modificar a voluntad divisibilidad}
    dv5 = 5;  {modificar a voluntad divisibilidad}
 
   type
     arraynume = array[1..matri1,1..matri0] of integer;
  var
    arreglo : aomer
rraynume;
    a1, d : integer;
 
  procedure entrada_datos;
  begin
     clrscr;
     writeln;
     write('   Entre Primer Termino  : ');
     readln(a1);
     write('   Entre Valor Distancia : ');
     readln(d);
  end;
 
  procedure creamatriz(a, t : integer);
  var
    n, cont, sum : integer;
   begin
      clrscr;
      gotoxy(10,2);write('Los Numeros Generados Son');
      sum := a;
      for n := 1 to matri1 do
       for cont := 1 to matri0 do
       begin
       arreglo[n,cont] := sum;
       sum := sum + t;
       end;
       for n := 1 to matri1 do
        for cont := 1 to matri0 do
        begin
           gotoxy(5 * cont,4 + n);write(arreglo[n,cont]);
        end;
   end;
 
   procedure elementos_divisibles(tre : arraynume);
   var
     h, i : integer;
     begin
        writeln;
        writeln;
        for h := 1 to matri1 do
          for i := 1 to matri0 do
          begin
          if tre[h,i] mod dv3 = 0 then
          begin
          gotoxy(2,10 + i);write('(Divisibles por 3 : ',tre[h,i],')');
          end;
          if tre[h,i] mod dv5 = 0 then
          begin
          gotoxy(40,10 + i);write('[Divisibles por 5 : ',tre[h,i],']');
          end;
        end;
     end;
 
  begin
     entrada_datos;
     creamatriz(a1,d);
     elementos_divisibles(arreglo);
     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
1
Comentar
sin imagen de perfil

Ayuda con turbo pascal, programa con arreglos

Publicado por Héctor (8 intervenciones) el 27/03/2013 20:57:15
valla! me doy cuenta que estaba completamente mal en todo! pero aqui mi pregunta es en que consiste gotoxy? lo que pasa es que soy estudiante de preparatoria y nunca he visto ese comando o no se que sea gracias! me sirvio de mucho tu ayuda.
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 turbo pascal, programa con arreglos

Publicado por ramon (2158 intervenciones) el 27/03/2013 21:04:44
El procedimiento gotoxy(x,y); posiciona el cursor en la posición x e y de la pantalla para
escribir en ella no tiene otro significado y pertenece a la unidad de pascal crt.
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
sin imagen de perfil

Ayuda con turbo pascal, programa con arreglos

Publicado por Héctor (8 intervenciones) el 27/03/2013 21:08:11
eso no lo sabia, muchas gracias ramon, me ha servido de gran ayuda tu ejemplo para complementar mi programa, de antemano gracias y suerte en todo lo que realizes.
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
sin imagen de perfil
Val: 36
Ha aumentado su posición en 4 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Ayuda con turbo pascal, programa con arreglos

Publicado por Armando Fuenmayor (43 intervenciones) el 27/03/2013 20:53:09
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
program sucesion(input,output);
uses crt;
const
    max = 225 ;
  type
    A = array[1..max] of integer  ;
    matriz = array[1..15,1..15] of integer;
 var
   i, j, a1 , d, otro : Integer;
   xx, xx2: A;
   yyy,yy2 : matriz;
   (********************)
   (* Funcion secesion *)
   (********************)
   function zz(n ,n2 : integer): integer;
   begin
      zz := n + n2;
   end;
 
begin
    clrscr;
    gotoxy(1,2);
    writeln('Ingrese el primer termino:');
    gotoxy(28,2);
    readln(a1);
 
    gotoxy(1,4);
    writeln('Ingrese el valor de la distancia de la progresion:');
    gotoxy(52,4);
    readln(d);
 
 
  for i := 1 to max do
  begin
      if (i = 1) then
      begin
          xx[i] := a1;
      end
      else
      begin
        xx[i] := zz(xx[i-1] ,d);
      end;
  end;
 
    (*
     for i := 1 to max do
     begin
        gotoxy(10,5+i);
        writeln(xx[i]:5);
         xx2[i]:= xx[i];
 
     end;
 
        writeln('los numeros divisibles entre 3 y 5 son:');
 
     for i := 1 to max do
     begin
        if (xx2[i] mod 3 = 0) and (xx2[i] mod 5 = 0) then
        begin
          writeln(xx2[i]:5);
        end;
     end;
    *)
     otro := 0;
     writeln('*******************************');
     for i := 1 to 15 do
     begin
        for j := 1 to 15 do
        begin
           inc(otro);
           yyy[i,j] := xx[otro];
           yy2[i,j] := xx[otro];
        end;
 
     end;
 
 
    writeln('El primer termino: ', a1);
    writeln('La distancia de la progresion:', d);
 
 
      writeln('La Matriz 15 X 15 ');
     for i := 1 to 15 do
     begin
        for j := 1 to 15 do
        begin
            write(yyy[i,j]:5);
        end;
        writeln;
     end;
 
       writeln(' Los Numeros Divisibles entre 3 y 5  son:  ');
 
 
     for i := 1 to 15 do
     begin
        for j := 1 to 15 do
        begin
           if (yy2[i,j] mod 3 = 0) and (yy2[i,j] mod 5 = 0) then
           begin
             write(yy2[i,j]:5);
           end;
        end;
      end;
 
  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
1
Comentar
sin imagen de perfil

Ayuda con turbo pascal, programa con arreglos

Publicado por Héctor (8 intervenciones) el 27/03/2013 21:09:13
muchas gracias Armando me sirvio de mucho el programa que has puesto, te agradesco mucho y suerte en todo lo que relizes.
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