#!/usr/bin/perl

use 5.038.2;

say "Digamos que q = ( 1000 - (p + p ** 2 + p ** 4) ). Lo que sigue es la";
say "comparación del efecto de discriminación de precios frente al mercado";
say "en competencia. En la old-fashion antitrust había doble implicación";
say "entre esta discriminación y la capacidad monopolística.\n";

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

my $q1 = 0;
my $q2 = 0;
my $p1 = 4;
my $p2 = 2;
for (my $p = 5.5; $p >= 0.5; $p -= 0.5) { 
    print f($p), "   ", f(int(demandaq($p))), "  ";
    print "   ", f(int($p * demandaq($p))), "   ";
    if ($p == $p1 || $p == $p2){
	$q1 = demandaq($p1);
	$q2 = demandaq($p2) - demandaq($p1) if ($p == $p2);
	if ($q1 >0 && $q2 <= 0){
	    print f(int($q1));
	}elsif ($q2 >0){ 
	    print f(int($q2));
	}
	print "   ", f(int($q1 * $p1 + $q2 * $p2));
    }else{
	print f("-");
    }  
    say "";
}
say "La cosa para, porque supongamos que no hay mas que 1000 unidades en oferta\n"; 

say "Por comparación se deduce que si hay capacidad monopolística, interesa ";
say "ejercerla por maximización de ingresos.\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;
}

