#!/usr/bin/perl

use 5.038.2;

say "\nLa demanda es inversa al precio. Para los bienes y servicios normales.";
say "Digamos que q = ( 1000 - (p + p ** 2 + p ** 4) ). Esto quiere decir";
say "que la cantidad «q» desciende mucho con el precio «p» alto, pero se";
say "extiende mucho para precio bajo.\n";

say "La tabla correspondiente de precios y cantidades demandadas es:\n";
print f("Precio"), "   ", f("Cantidad"), "   ", f("Incremento(Q)"), "  ", f("Ingreso = P * Q"), "\n";

my $pant = 6;
for (my $p = 5.5; $p >= 0.5; $p -= 0.5) { 
    print f($p), "   ", f(int(demandaq($p))), "  ";
    if ($pant < 6){
	print f(int(demandaq($p)-demandaq($pant)));
    }else{
	print f("-");
    }
    print "   ", f(int($p * demandaq($p))), "\n";
    $pant = $p;
}
say "La cosa para, porque supongamos que no hay mas que 1000 unidades en oferta\n"; 

say "El caso que se quería mostrar es el de demanda muy decreciente en tramos";
say "iniciales y a finales de la demanda, en términos de ingreso. Teóricamente";
say "se puede predecir el máximo ingreso por la elasticidad-precio unitaria.";
say "Ver link arriba.\n"; 

exit 3;


sub demandaq {
    my $p = shift;
    return ( 1000 - ($p + $p ** 2 + $p ** 4) );
}

sub f {
    my $n = shift;
    return " " x (16 - length ($n)) . $n;
}

