Pascal/Turbo Pascal - Rellenar un Array

 
Vista:
sin imagen de perfil

Rellenar un Array

Publicado por Agrod (1 intervención) el 03/06/2016 15:47:34
1
2
3
4
5
6
7
8
9
10
11
FUNCTION fib(n:integer): integer;
 
VAR
	i:integer;
 
begin
    if (n <= 2) then
        fib := 1
    else
        fib := fib(n-1) + fib(n-2);
END;

Hola, necesito rellenar un array de 18 posiciones con el siguiente código (Fibonacci) y que dicho array se rellene con la sucesión(1,1,2,3,5,8...).
Gracias.
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

Rellenar un Array

Publicado por David (224 intervenciones) el 03/06/2016 23:52:36
Te propongo la siguiente solución:

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
rogram tp6;
 
Const
  tope = 18;
 
Type
  tipotabla = Array [1..18] of integer;
 
var
  tabla : tipoTabla;
  I:integer;
 
 
 
 
{Devuelve el n£mero n-‚simo de la sucesi¢n de Fibonacci. Cada n£mero de dicha sucesi¢n es la suma de sus dos antecesores}
function fibonacci (nro:integer):integer;
 
{Para n=3: Primera llamada: fibonacci(3-1)+fibonacci(3-2)}
                      {Fibonacci(3-1)= fibonacci(1) -> como n<=2 fibonacci=1
                      fibonacci(3-2)=fibonacci(2) -> al igual que antes fibonacci=1
                        1+1 = 2 como efectivamente ocurre con la sucesi¢n de fibonacci. Lo que hace la funci¢n es llamarse a s¡
                        misma,
                        en eso consiste la recursividad, mientras n>2}
begin
 
	if (nro<=2) then
 
		fibonacci:=1
 
	else
 
		fibonacci:= fibonacci (nro-1)+ fibonacci (nro-2);
 
end;
 
 
 
var
 
nro,resultado:integer;
 
begin
 
        for i:=1 to tope do
          begin
          tabla[i]:=Fibonacci(i);
	  writeln (tabla[i]);
          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