Pascal/Turbo Pascal - Duda ejercicio recursivo

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Duda ejercicio recursivo

Publicado por ricardo (6 intervenciones) el 26/10/2016 04:08:29
Dado un arreglo unidimensional de N componentes enteros, escriba un programa
que imprima:
a) La componente máxima y la posición de la misma. En caso de haber varios
máximos imprimir la posición de cada uno de ellos. Realice esto, efectuando:
a.1) Dos recorridas al vector.
a.2) Una recorrida al vector
b) Ídem a) para el mínimo.
c) La componente máxima de forma recursiva

Hice el a) y b). Solo me falta el c) pero nose como hacerlo, necesito una mano!
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

Duda ejercicio recursivo

Publicado por ramon (2127 intervenciones) el 26/10/2016 21:58:27
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
{Mira a ver si esto sirve}
 
 program aarreglos;
  uses
     crt;
 
      const
          n = 10;
          misnumeros : array[1..n] of integer = (
          7,9,3,6,2,7,8,1,4,7);
 
   var
     enteros : array[1..n] of integer;
     i : integer;
 
  procedure carga_arreglo;
  var
    t : integer;
    begin
        fillchar(enteros,sizeof(enteros),0);
        for t := 1 to n do
        begin
        enteros[t] := misnumeros[t];
        end;
    end;
 
 
  procedure componentemax_y_posicion;
  var
    a, p : integer;
    temp : array[1..n] of integer;
   begin
      a := 0;
      fillchar(temp,sizeof(temp),0);
      for i := 1 to n do
      begin
         if (a < enteros[i]) or (a = enteros[i]) then
         begin
            if a = enteros[i] then
            temp[i] := a
          else
            a := enteros[i];
            p := i;
         end;
      end;
         temp[p] := a;
         for i := 1 to n do
         if temp[i] > 0 then
         writeln('   El Valor Es = ',temp[i],'   La Posicion Es = ',i);
  end;
 
     function recursiva(num: integer) : integer;
     begin
        if num = 0 then
        recursiva := 1
     else
        begin
        if enteros[num] > i then
        i := enteros[num];
        recursiva := num * recursiva(num - 1);
        end;
     end;
 
 
  begin
     clrscr;
     carga_arreglo;
     componentemax_y_posicion;
     writeln;
     i := 0;
     recursiva(n);
     write('   Maxima : ',i);
     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
sin imagen de perfil
Val: 6
Ha disminuido su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Duda ejercicio recursivo

Publicado por ricardo (6 intervenciones) el 28/10/2016 18:15:52
No, no me ha ayudado mucho. Tampoco uso variables globales, confunde mas.
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

Duda ejercicio recursivo

Publicado por ramon (2127 intervenciones) el 28/10/2016 22:02:31
Fíjate que pides esto Hice el a) y b). Solo me falta el c) pero nose como hacerlo, necesito una mano!
lo puesto es un ejemplo de como las variables cada programador decidirá como las pone y donde eso seria cosa tulla
lo que pides como c) La componente máxima de forma recursiva y eso es esto.

1
2
3
4
5
6
7
8
9
10
11
function recursiva(num: integer) : integer;
     begin
        if num = 0 then
        recursiva := 1
     else
        begin
        if enteros[num] > i then
        i := enteros[num];
        recursiva := num * recursiva(num - 1);
        end;
     end;

siento no a ver podido ayudar te mas
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