Pascal/Turbo Pascal - Programa de sucesion por recurrencia

 
Vista:

Programa de sucesion por recurrencia

Publicado por Rory David (7 intervenciones) el 14/06/2011 20:26:03
buenas tardes a todos les quiero hacer una pregunta alguien sabria ayudarme para hacer este programa en pascal?

Tengo que hacer una sucecion por recurrencia...

esta es la ecuacion general..

bN es
2^(N*(N+1)/2)

La verdad que no me sale de ninguna manera,les voy agradecer si me pueden dar una mano, muchas gracias desde ya
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

Programa de sucesion por recurrencia

Publicado por ramon (2158 intervenciones) el 15/06/2011 17:00:50
{No tengo muy claro el Símbolo ^ que es n o * [2^(N*(N+1)/2)] A ver si esto sirve de ayuda]

program recursiv;
uses
crt;
var
dat : integer;
tec : char;


function numero : integer;
var
dt, x, y, ii, i : integer;
dato : string[15];
begin
clrscr;
textcolor(15);
x := 10;
y := 10;
fillchar(dato,16,' ');
dato[0] := chr(15);
i := 1;
gotoxy(x,y);write('Entre N§ : ');
x := 21;
gotoxy(x,y);
repeat
tec := readkey;
if tec in[#48..#57] then
begin
dato[i] := tec;
dato[0] := chr(i);
gotoxy(x + i,y);write(dato[i]);
i := i + 1;
if i > 15 then
begin
i := 15;
end;
end;
if tec = #8 then
begin
i := i - 1;
if i < 1 then
begin
i := 1;
end;
dato[i] := ' ';
dato[0] := chr(i);
gotoxy(x + i,y);write(dato[i]);
end;
until (tec = #13) or (tec = #27);
if tec = #13 then
begin
val(dato,dt,ii);
numero := dt;
gotoxy(10,10);clreol;
end
else
begin
numero := 0;
end;
end;

procedure presenta_resultados(nu : integer);
var
dd : integer;
begin
gotoxy(2,2);
writeln(' ** N§ Entrado ES = ',dat,' ** ');
for dd := 1 to dat do
writeln(2 * dd * (dat * (dat + 1) / 2):8:2);
end;


begin
clrscr;
textcolor(15);
dat := numero;
presenta_resultados(dat);
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

Programa de sucesion por recurrencia

Publicado por Rory Bogado (7 intervenciones) el 15/06/2011 17:18:59
Ramon la verdad mil gracias por responder a mi pregunta y por tomarte el tiempo en ayudarme con el programa... te comento

la simbolizcion ^ ( hace refencia a elevado) es decir 2 elevado a la n )

n es un numero cualquiera que ingrese por teclado

* ese simbolo hago referncia a la multiplicacion

Desde ya muchisimas gracias por la ayudaa te debo muchisimo ahora lo pruebo y te comento que tal si funciono o no..
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

Programa de sucesion por recurrencia

Publicado por ramon (2158 intervenciones) el 15/06/2011 20:53:13
{ A Ver si e entendido todo bien y te sirve revisa las nuevas entradas realizadas }

program recursiv;
uses
crt;
var
dat : integer;
tec : char;


function numero : integer;
var
dt, x, y, ii, i : integer;
dato : string[15];
begin
clrscr;
textcolor(15);
x := 10;
y := 10;
fillchar(dato,16,' ');
dato[0] := chr(15);
i := 1;
gotoxy(x,y);write('Entre N§ : ');
x := 21;
gotoxy(x,y);
repeat
tec := readkey;
if tec in[#48..#57] then
begin
dato[i] := tec;
dato[0] := chr(i);
gotoxy(x + i,y);write(dato[i]);
i := i + 1;
if i > 15 then
begin
i := 15;
end;
end;
if tec = #8 then
begin
i := i - 1;
if i < 1 then
begin
i := 1;
end;
dato[i] := ' ';
dato[0] := chr(i);
gotoxy(x + i,y);write(dato[i]);
end;
until (tec = #13) or (tec = #27);
if tec = #13 then
begin
val(dato,dt,ii);
numero := dt;
gotoxy(10,10);clreol;
end
else
begin
numero := 0;
end;
end;

{calculo recursivo }
function calculo_recursivo(n: integer): integer;
begin
if n = 0 then
calculo_recursivo := 1
else
calculo_recursivo := n * calculo_recursivo(n - 1)
end;

procedure presenta_resultados(nu : integer);
var
max, dr : real;
dd : integer;
begin
gotoxy(2,2);
writeln(' ** N§ Entrado ES = ',dat,' ** ');
for dd := 0 to dat - 1 do
begin
if calculo_recursivo(dd) > 0 then { mayor que cero funcion }
begin
{2^(N*(N+1)/2)}
dr := (dd * (dd + 1) / 2); {funcion (dd * (dd + 1) / 2)}
max := EXP(dr * ln(2)); {2 elevado a dr}
writeln(' elemento N§ ',dd + 1,' : ',max:8:2);
end;
end;
end;


begin
clrscr;
textcolor(15);
dat := numero;
presenta_resultados(dat);
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

Programa de sucesion por recurrencia

Publicado por Rory (7 intervenciones) el 15/06/2011 22:31:33
La verdad mi hermano no se como agradecerte, por tomarte el tiempo y darme la solucion al problema la verdad te debo una mil gracias!!
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