Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Mensaje iniciado por: SCHURLERS en 13 Octubre 2018, 04:50 AM

Título: Necesito ayuda con recursividad por favor
Publicado por: SCHURLERS en 13 Octubre 2018, 04:50 AM
Tengo que Crear un Arreglo Dinámico implementando recursividad.
Y el programa deberá ser las siguientes características:
-- Ser dinámico (pedir el tamaño del arreglo).
--Imprimir el número de veces que entra al método recursivo. :-c
Título: Re: Necesito ayuda con recursividad por favor
Publicado por: ThunderCls en 15 Octubre 2018, 21:05 PM
No creo que encuentres muchos aqui dispuestos a hacerte la tarea, vamos al menos publica un pedazo de código y algunos detalles adicionales y quizás alguien se anime y te ayude
Título: Re: Necesito ayuda con recursividad por favor
Publicado por: srWhiteSkull en 15 Octubre 2018, 22:33 PM
No tiene sentido crear una función recursiva para redimensionar un array a no ser que tenga un propósito educativo. Qué se supone como vas hacerlo, incrementando el array en un elemento en cada llamada hasta llegar al tamaño indicado?
Título: Re: Necesito ayuda con recursividad por favor
Publicado por: WHK en 15 Octubre 2018, 23:18 PM
Fácil, en algunos lenguajes como php puedes redimensionar un array sin tener que mover la memoria, por ejemplo:

$abc = array();
$abc[] = 'valor 1';
$abc[] = 'valor 2';
$abc[] = 'valor 3';


En este caso tendrás un arreglo de 1 dimensión con un tamaño de 3.

Recursivamente, puedes crear una función que agregue un valor a la pila del arreglo y que luego se llame a si mismo, pero tendrás problemas de desbordamiento de pila si no le das un límite y esto sucede en cualquier tipo de lenguaje de programación. También te recomiendo dar pausas de 1 segundo entre cada llamada recursiva e ir imprimiendo la cantidad de valores de la pila:

<?php
$abc 
= array();
function 
add()
{
    global 
$abc;
    
$abc[] = null;
    echo 
len($abc)."\n";
    
sleep(1);
    
add();
}
add();


Ahora que entiendes la idea, si necesitas hacerlo en otro lenguaje de programación, sea java, c, c++, c#, etc, necesitarás comprender el código y llevarlo a tu programa.

Saludos.