#!/usr/bin/perl -w

# PARADOJA DE LA REINVERSIÓN DE LOS FONDOS DE AMORTIZACIÓN

# use 5.030;

P:
print "Precio de adquisición del activo (ejemplo, 3000): ";
chomp ($precio = <STDIN>);
if ($precio < 1 || $precio =~ /\D/g){ goto P; }

D:
print "Duración real del activo en años (ejemplo, 6): ";
chomp ($dur = <STDIN>);
if ($dur < 2 || $dur =~ /\D/g){ goto D; }

N:
print "Número de años para amortizarlo (ejemplo, 4): ";
chomp ($namort = <STDIN>);
if ($namort < 1 || $namort =~ /\D/g){ goto N; }

S:
print "Número de años a simular (>=10) (ejemplo, 20): ";
chomp ($n = <STDIN>);
if ($n < 10 || $n =~ /\D/g) { goto S; }

print "-" x 60;
print "\n\n";

$nactivos = 1;
$dotacion[0] = $precio / $namort;
$fondometalico[0] = 0;
$duracion[ $nactivos ] = $dur;

for $i (1..$n){
    $fondometalico[$i] = $fondometalico[$i-1];
    while ($fondometalico[$i] >= $precio){
	$nactivos++;
	$duracion[ $nactivos ] = $dur;
	$fondometalico[$i] -= $precio;
    }
    for $j (1..$nactivos){
	if ($duracion[ $j ] > $dur || $duracion[ $j ] <= 0){
	    $duracion[ $j ] = 0;
	}else{
	    $dotacion[$i] += $dotacion[0]; 
	    $duracion[$j]--;
	    $fondometalico[$i] += $dotacion[0];
	}
    }    
}    

print "Resultado al cabo de $n años de reinversión:\n\n";

print "Número de activos adquiridos = $nactivos\n";
print "Fondo remanente en metálico = $fondometalico[$n]\n";
print "Historia de los activos en años remanentes de vida útil:\n";
for $j (1..$nactivos){
    print "activo $j -> $duracion[$j]\n";
}
print "Dotaciones a la amortización fiscalmente deducibles:\n";
for $i (1..$n){
    print "año $i -> $dotacion[$i]\n";
    $total += $dotacion[$i];
}
print "Total = $total\n";

print "Explicación: evolución de los fondos en metálico:\n";
for $i (1..$n){
    print "año $i -> $fondometalico[$i] luego se compra ", int($fondometalico[$i]/$precio), " nuevo(s)\n";
}

exit 0;

__END__
  
La paradoja de las dotaciones al fondo de amortización
  reinvertidas de metálico a adquisición de nuevos activos
  es muy similar a la del barco de Teseo, en el que las 
  maderas sustituidas por mantenimiento se usan para nuevos
  barcos y el barco original de Teseo "dura" pero "no dura"
  cientos de años.
  


