Pascal/Turbo Pascal - Ayuda Recursividad!!

 
Vista:

Ayuda Recursividad!!

Publicado por usuaria (1 intervención) el 19/10/2006 03:37:57
Alguien puede hacer el codigo de estos tres puntos ya q no me llevo bien con recursividad, y quiero saber como son a ver si viendolos lo entiendo. gracias

A) Hacer un procedimiento recursivo que me devuelva el menor valor de un vector de enteros.

B) Hacer un procediiento recursivo que invierta un string de digitos numericos.
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

RE:Ayuda Recursividad!!

Publicado por Carlos Guimaraenz (265 intervenciones) el 20/10/2006 03:46:17
Hola Usuaria! No te voy a poder ayudar en los 3 puntos que dices porque sólo escribiste 2 :P jaja.

Bueno, aquí va el primero:

program rec1;
uses crt;
const
DF = 10; {dimensión física (y lógica) del vector}
type
TVector = Array[1..DF] of word;

function VerMinimo(v : TVector; i : byte) : word;
var
min : word;
begin
{si no llego al final...}
if i < DF then
begin
{hago el llamado recursivo}
min:=VerMinimo(v,i + 1);
{si el valor es menor que el minimo actualizo}
if v[i] < min then
VerMinimo:=v[i]
else {sino mantengo el minimo que viene en el backtracking}
VerMinimo:=min;
end
else {si es el último elemento lo tomo como mínimo para comenzar}
VerMinimo:=v[i];
end;

var
v : TVector;
i : Byte;
begin
Randomize;
ClrScr;
{lleno el vector con valores aleatorios}
for i:=1 to DF do
v[i]:=Random(1000);
{escribo el mínimo valor del arreglo e inicio la recursión}
Write('El valor mínimo del vector es ', VerMinimo(v,1));
Readln;
end.

El ejercicio B lo hago en otro mensaje para evitar confusiones.
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

RE:Ayuda Recursividad!!

Publicado por Carlos Guimaraenz (265 intervenciones) el 20/10/2006 04:08:06
Usuaria, aquí tienes el código para el segundo ejercicio:

program rec2;
uses crt;

function InvertirStr(cadena : string; i : byte) : string;
begin
if i < Length(cadena) then
InvertirStr:=InvertirStr(cadena, i + 1) + cadena[i]
else
InvertirStr:=cadena[i];
end;

var
cadena : string;
begin
ClrScr;
Write('String a invertir: '); ReadLn(cadena);
Write('String invertido: ', InvertirStr(cadena,1));
Readln;
end.

Cualquier duda preguntas de nuevo. Un beso!
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

GRAX!!

Publicado por usuaria (27 intervenciones) el 20/10/2006 15:20:01
¡¡¡¡ MUCHISIMAS 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