#!/usr/bin/perl -w

use 5.014;

# Tipo A
  
# 1. Una empresa tiene unos fondos propios de 1000 u.m. El coste de la financiación ajena es del 9 %.
#  El BAIT actual es de 120 u.m. Si la rentabilidad económica actual es del 8 % y activo total de 1200 u.m.,
#  calcule su rentabilidad financiera y su efecto apalancamiento.
 
{
    say "1."; 
    my $FP = 1000;
    my $K = 0.09;
    my $BAIT = 120;
    my $RE = 0.08;
    my $A = 1200;
    
    my $FA = $A - $FP;
    my $RF = $RE + ($RE-$K) * $FA / $FP;
    my $apalancamiento = $RF - $RE;
    
    say "FA = $FA";
    say "RF = $RF";
    say "Apalancamiento financiero = $apalancamiento";
}
say "";    

# 2. La empresa “Imaginaria S.A.” tiene un endeudamiento del 30 %, su rentabilidad económica es del 10%,
# su coste de financiación un 8 % y un activo total de 500 u.m. ¿Cuánto debería aumentar su endeudamiento
# para que la rentabilidad financiera suba un 1 %?

{
    say "2.";
    my $FA = 0.3;
    my $FP = 0.7;
    my $K = 0.08;
    my $A = 500;
    my $RE = 0.1;

    my $RF1 = $RE + ($RE - $K) * $FA / $FP;
    
    my $RF2 = $RF1 + 0.01;  
    my $FA2 = ($RF2-$RE)*$FP*$A/($RE-$K);
    
    say "RF1 = $RF1 y RF2 = $RF2";
    say "FA2 = $FA2";
    
    say "Tasa de endeudamiento = ", $FA2/($FP*$A);
    
    say "Tasa de variación = ", ($FA2-$FA*$A)/($FA*$A);
}
say "";    

# 3. Una empresa tiene un margen de beneficios del 20 % y una rentabilidad económica del 15 %. Si las ventas
# alcanzaron las 800 u.m. y el coste de la deuda las 300 u.m., calcule la tasa de rotación del activo y el 
# beneficio antes de impuestos.  ¿Cuál será el sentido del efecto apalancamiento financiero si está endeudada
# al 50 %?

{
    say "3.";
    my $margen = 0.2;
    my $RE = 0.15;
    my $V = 800;
    my $GF = 300;
    
    my $rotacion = $RE / $margen;
    
    my $BAIT = $margen * $V;
    
    my $BAT = $BAIT - $GF;
    
    say "Rotación = $rotacion";
    say "BAIT = $BAIT";
    say "BAT = $BAT";
    
    my $FA = 0.5;
    my $FP = 0.5;
    
    my $A1 = $V / $rotacion;
    my $A2 = $BAIT / $RE;
    
    my $RF = $BAT / ($FP*$A1);
    
    say "Activos = $A1 $A2";
    
    say "RF = $RF";
    say "Apalancamiento financiero = ", $RF-$RE;
    
}
    
__END__
FA = 200
RF = 0.078
Apalancamiento financiero = -0.002

RF1 = 0.108571428571429 y RF2 = 0.118571428571429
FA2 = 325
Tasa de endeudamiento = 0.928571428571428
Tasa de variación = 1.16666666666667

Rotación = 0.75
BAIT = 160
BAT = -140
Activos = 1066.66666666667 1066.66666666667
RF = -0.2625
Apalancamiento financiero = -0.4125
  
