#!/usr/bin/perl -w


sub creer_identite
{
    my %matrice = ();
    my $n = shift;

    foreach $ligne (1..$n)
    {
	foreach $colonne (1..$n)
	{
	    if ($ligne == $colonne)
	    {
		$matrice{"$ligne:$colonne"} = 1;
	    }
	    else
	    {
		$matrice{"$ligne:$colonne"} = 0;
	    }
	}
    }

    return %matrice;
}

sub classement
{
    ($i1,$j1) = split /:/,$a;
    ($i2,$j2) = split /:/,$b;
    return -1 if ($i1 < $i2);
    return -1 if ($i1 == $i2 && $j1<$j2);
    return 0  if ($i1 == $i2 && $j1==$j2);
    return 1  if ($i1 == $i2 && $j1>$j2);
    return 1;
}

sub afficher
{
    my %matrice = @_;

    @cles = keys %matrice;
    @cles = sort classement @cles;

    foreach $cle (@cles)
    {
	($i,$j) = split /:/,$cle;
	print "Matrice($i,$j) = $matrice{$cle}\n";
    }
}


my %I = creer_identite(3);
afficher(%I);

print "\n";

%I = creer_identite(2);
afficher(%I);

%I = ("1:2"=>3, "2:2"=>4,"2:1"=>2,"1:1"=>6);
@_=%I;
print "@_\n";
afficher(%I);
