Leser: 2
|< 1 2 >| | 14 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
my @union = my @isect = my @diff = ();
my %union = my %isect = ();
my %count = ();
my $e;
foreach $e (@erg1, @erg2)
{
$count{$e}++
}
foreach $e(sort(keys %count))
{
push(@union, $e);
if ($count{$e} == 2)
{
push @isect, $e;
}
else
{
push @diff, $e;
}
}
$listbox_right->insert('end', @diff);
1
2
3
4
5
6
7
8
$listbox_right->insert('end', "Nur in Array1 enthalten");
$listbox_right->insert('end', @only_array1);
$listbox_right->insert('end', "Nur in Array2 enthalten");
$listbox_right->insert('end', @only_array2);
$listbox_right->insert('end', "Unterschiede");
$listbox_right->insert('end', @diff);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Schleife über alle Elemente aus Array 1
Ist dieses Element in beiden Arrays?
Ja: Sind diese Elemente gleich?
Ja: Ok, wir brauchen es nicht in der Ausgabe
Nein: Schreibe beide Elemente in das Array diff
Nein: Nur in Array1, ok, schreibs ins Array diff
Ende der Schleife über die Elemente aus Array1
Schleife über alle Elemente aus Array 2
Ist dieses Element in beiden Arrays?
Ja: Ok nichts zu tun, das wurde in der ersten Schleife schon
mit erfasst
Nein: Nur in Array2, ok, schreibs ins Array diff
Ende der Schleife über die Elemente aus Array2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Schleife über alle Elemente aus Array 1
Ist dieses Element in beiden Arrays?
Ja: Sind diese Elemente gleich?
Ja: Ok, wir brauchen es nicht in der Ausgabe
Nein: Schreibe beide Elemente in das Array diff
Nein: Nur in Array1, ok, schreibs ins Array diff
Ende der Schleife über die Elemente aus Array1
Schleife über alle Elemente aus Array 2
Ist dieses Element in beiden Arrays?
Ja: Ok nichts zu tun, das wurde in der ersten Schleife schon
mit erfasst
Nein: Nur in Array2, ok, schreibs ins Array diff
Ende der Schleife über die Elemente aus Array2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
for my $elem (@array1) {
my $elem2 = ist_element_in_array($elem, \@array2)
if (defined $elem2) {
if ($elem eq $elem2) {
#Ja: Ok, wir brauchen es nicht in der Ausgabe
}
else {
#Nein: Schreibe beide Elemente in das Array diff
push @diff, ($elem, $elem2);
}
}
else {
# Nein: Nur in Array1, ok, schreibs ins Array diff
push @diff, $elem;
}
}
for my $elem2 (@array2) {
if (ist_element_in_array($elem2, \@array1)) {
# Ja: Ok nichts zu tun, das wurde in der ersten Schleife
# schon mit erfasst
}
else {
# Nein: Nur in Array2, ok, schreibs ins Array diff
push @diff, $elem;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sub ist_element_in_array ($$) {
my $elem = shift;
my $array = shift;
my $elem_wort = (split / /, $elem)[0];
for my $aelem (@$array) {
my $array_wort = (split / /, $aelem)[0];
if ($elem_wort eq $array_wort) {
return $aelem;
}
}
return undef;
}
|< 1 2 >| | 14 Einträge, 2 Seiten |