Perl comparaison de tableaux!!!
Fermé
1207
Messages postés
18
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
25 janvier 2009
-
25 janv. 2009 à 14:25
jo - 25 avril 2014 à 08:56
jo - 25 avril 2014 à 08:56
A voir également:
- Perl comparaison de tableaux!!!
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Comparaison million milliard - Accueil - Technologies
- Le fichier contient un tableau présentant un extrait des livres les plus prêtés à paris en 2016. filtrez le tableau pour ne faire apparaître que les bandes dessinées ado. puis filtrez le tableau pour ne faire apparaître que celles dont l'auteur est zep. quel est le titre de la bande dessinée ado de zep qui a été la plus prêtée d'après ce tableau ? ✓ - Forum Windows 10
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
2 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
25 janv. 2009 à 14:43
25 janv. 2009 à 14:43
Salut,
lami20j@debian:~/trash$ cat ccm_comparer_tableau.pl #!/usr/bin/perl use strict;use warnings; my @tab1=qw/ a b c /; my @tab2=qw/ a d c e /; my $x=0; my $y=0; while($x<=$#tab1){ while($y<=$#tab2){ if($tab1[$x] eq $tab2[$y]){ print "$tab1[$x] égal $tab2[$y]\n"; } ++$y; } ++$x; $y=0; } __END__ lami20j@debian:~/trash$ perl ccm_comparer_tableau.pl a égal a c égal c
use strict;
use warnings;
use Data::Dumper;
my @a1 = (1, 2, 4, 6, 7, 8);
my @a2 = (1, 2, 3, 5, 6, 7);
print join "\t", @a1;
print "\n";
print join "\t", @a2;
print "\n";
print "\n";
print "###########################\n";
print "Elément dans un tableau et pas dans l'autre \n\n";
&different (\@a1,\@a2);
print "###########################\n";
print "Elément dans un tableau et pas dans l'autre \n\n";
&different (\@a2,\@a1);
print "###########################\n";
print "Eléments commun au 2 tableaux \n\n";
my %seen;
my @common = grep {$seen{$_}++} @a1 , @a2;
print Dumper @common;
print "\tNb Commun : ".scalar @common ."\n";
print "###########################\n";
sub different{
my $ref1=shift;
my $ref2=shift;
my @a1=@$ref1;
my @a2=@$ref2;
my %a;
map($a{$_}=1,@a1); # create %a with elements from @a1
my @diff=grep(!defined($a{$_}),@a2); # returns those elements of @a2 that +don't
# have a hash element in %a1 therefore they
# do not exist in @a1.
print Dumper @diff;
print "\tNb Diff : ".scalar @diff ."\n";
}
use warnings;
use Data::Dumper;
my @a1 = (1, 2, 4, 6, 7, 8);
my @a2 = (1, 2, 3, 5, 6, 7);
print join "\t", @a1;
print "\n";
print join "\t", @a2;
print "\n";
print "\n";
print "###########################\n";
print "Elément dans un tableau et pas dans l'autre \n\n";
&different (\@a1,\@a2);
print "###########################\n";
print "Elément dans un tableau et pas dans l'autre \n\n";
&different (\@a2,\@a1);
print "###########################\n";
print "Eléments commun au 2 tableaux \n\n";
my %seen;
my @common = grep {$seen{$_}++} @a1 , @a2;
print Dumper @common;
print "\tNb Commun : ".scalar @common ."\n";
print "###########################\n";
sub different{
my $ref1=shift;
my $ref2=shift;
my @a1=@$ref1;
my @a2=@$ref2;
my %a;
map($a{$_}=1,@a1); # create %a with elements from @a1
my @diff=grep(!defined($a{$_}),@a2); # returns those elements of @a2 that +don't
# have a hash element in %a1 therefore they
# do not exist in @a1.
print Dumper @diff;
print "\tNb Diff : ".scalar @diff ."\n";
}
25 janv. 2009 à 19:44