#!/usr/bin/perl -w
#
#
#    This file is part of "CalBinaire".
#
#    Calbinaire is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License.
#
#    Calbinaire is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with Foobar; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
#
##################################################################################/

sub clear()
{
    print "\e[2J";	# clear screen 
    print "\e[1,1H";	# position 1,1
}


sub menu()
{
$rep = 0;
while($rep ne "6")
{
    print <<_EOF_MENU_;
    

    /\\______________.oOo. \e[1mCalBinaire\e[0m .oO_____________/\\
    |                                                 |
    |   \e[1m1\e[0m     -   Convertir un entier en binaire      |
    |   \e[1m2\e[0m     -   Addition binaire                    |
    |   \e[1m3\e[0m     -   Soustraction binaire                |
    |   \e[1m4\e[0m     -   Multiplication binaire              |
    |   \e[1m5\e[0m     -   Division binaire                    |
    |   \e[1m6\e[0m     -   Sortir                              |    
    \\_________________________________________________/


_EOF_MENU_
affichage($ans);
my $rep = &lecture;
if ($rep) { &programme($rep); }
}
}



sub lecture()
{
    print "Veuillez entrer un choix entre 1 et 6 : ";
    my $entree = <STDIN>;
    chomp($entree);
    while ($entree !~ /^[123456]$/)
    {
	print "Choix incorrect \"$entree\" (de 1 a 6) : Veuillez reentrer un choix.\n";
	$entree = <STDIN>;
        chomp($entree);	
    }
    return $entree;

}


sub programme($)
{
    my $prop = shift;
    $ans = &{$func[$prop]};
}









sub entrer_bin()
{
my $num;
    do
    {
        print "Entrer un entier binaire (sur 32 bits : 1_8_23 ): ";
        $num = <STDIN>;
	chomp($num);	
    }
    until ($num =~ /^[01]{32}$/);
return $num;
}







sub entrer_int()
{
my $num;
    do
    {
        print "Entrer un entier reel: ";
        $num = <STDIN>;
	chomp($num);	
    }
    until ($num =~ /^\-?[0-9]+(?:\.[0-9]+)?$/);
return $num;
}



sub normalise($) # remplie de 0 a gauche ...
{
$num = shift;
my @long = split //,$num;  my $long = scalar @long;
for ($long .. 31) { $num = "0".$num; }
print "FIN $num\n";
return $num;

}







sub affichage($)
{
my $num = shift;
$num =~ /(\d)(\d{8})(\d{23})/ && print "Recu   :\n\t Brut     :   $num\n\t Separe   :   $1 $2 $3\n\n"; 
}




return 1;
