Schrift
[thread]6476[/thread]

mehrdimensionale Arrays: Elemente hinzufügen (Seite 2)

Leser: 3


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
peggy
 2004-08-09 16:35
#85616 #85616
User since
2004-07-23
29 Artikel
BenutzerIn
[default_avatar]
@renee mit dem $_ wollte ich ausdrücken, das wenn das element leer is (Leerzeichen etc.). Ich hatte gelesen, dass das so geht ??? Außerdem habe ich wörter und floats in der tabelle oder gelten die zahlen auch als strings? hä?
@crian kuck mal unten das array an. Ich hab quasi tabelle mit wörtern, die werte besitzen. Liegt ein paar über meinem limit, speichere ich das paar in einem hash als schlüssel und wert und diese paare (also das hash) will ich dann erstmal ausgeben! (theoretisch ;))
Crian
 2004-08-09 16:40
#85617 #85617
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=peggy,09.08.2004, 14:35]@renee mit dem $_ wollte ich ausdrücken, das wenn das element leer is (Leerzeichen etc.). Ich hatte gelesen, dass das so geht  ???[/quote]

Das geht so nicht.

$x =~ m~^\s+$~

testet auf "ein bis beliebig viele Whitespaces und nichts sonst".

[quote=peggy,09.08.2004, 14:35]Außerdem habe ich wörter und floats in der tabelle oder gelten die zahlen auch als strings? hä?
@crian kuck mal unten das array an. Ich hab quasi tabelle mit wörtern, die werte besitzen. Liegt ein paar über meinem limit, speichere ich das paar in einem hash als schlüssel und wert und diese paare (also das hash) will ich dann erstmal ausgeben! (theoretisch ;))[/quote]

Dann musst Du mit eq vergleichen, wenn auch Strings dadrin vorkommen. Dann kannst Du aber auch nicht > oder < nehmen. Ich glaube mir ist nicht wirklich klar, was dabei herauskommen soll :(\n\n

<!--EDIT|Crian|1092055252-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
peggy
 2004-08-09 16:41
#85618 #85618
User since
2004-07-23
29 Artikel
BenutzerIn
[default_avatar]
hab die befehle in string dinger umgewandelt. Jetzt krieg ich nur soviel raus:
Der Wert von banane ist obst!Der Wert von baum ist obst!Der Wert von apfel ist obst!

Liegt das daran, das ich einen hash verwende? Überschreibt der quasi ziemlich viel?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for my $spalte(1..$laenge)
{
for my $zeile(1..$laenge)
{
if ($tabelle[$spalte][$zeile]eq $_ || $tabelle[$spalte][$zeile] lt $limit)
{last;}
elsif($tabelle[$spalte][$zeile] ge $limit)
{
if ($tabelle[0][$zeile] ne $tabelle[$spalte][0])
{

$paare{$tabelle[0][$zeile]}=$tabelle[$spalte][0];
}else{ print "gleiches Wort";last;}
}
}
}
peggy
 2004-08-09 16:44
#85619 #85619
User since
2004-07-23
29 Artikel
BenutzerIn
[default_avatar]
hier die Datei. Alle Wortpaare die über 0.7 liegen in ein Hash speichern und danach paarweise ausgeben:

apfel banane baum grün rot ast bielef regen obst pflanze
apfel 1.000 0.700 0.700 0.809 0.500 0.702 0.200 0.301 0.902 0.609

banane 0.700 1.000 0.500 0.200 0.100 0.300 0.101 0.203 0.902 0.609

baum 0.700 0.500 1.000 0.803 0.100 0.900 0.500 0.702 0.803 0.904

grün 0.809 0.200 0.803 1.000 0.800 0.600 0.300 0.703 0.605 0.803

rot 0.500 0.100 0.100 0.800 1.000 0.300 0.209 0.309 0.609 0.308

ast 0.702 0.300 0.900 0.600 0.300 1.000 0.304 0.309 0.700 0.809

bielef 0.200 0.101 0.500 0.300 0.209 0.304 1.000 0.900 0.600 0.300

regen 0.301 0.203 0.702 0.703 0.309 0.309 0.900 1.000 0.800 0.800

obst 0.902 0.902 0.803 0.605 0.609 0.700 0.600 0.800 1.000 0.900

pflanze 0.609 0.609 0.904 0.803 0.308 0.809 0.300 0.800 0.900 1.000\n\n

<!--EDIT|peggy|1092055550-->
Crian
 2004-08-09 17:00
#85620 #85620
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Code: (dl )
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl
use strict;
use warnings;

my @data = <DATA>;
my @t;
push @t, [ split /\s+/, $_ ] for @data;


# erste Zeile entfernen und als Worte speichern:
my @words = @{ shift @t };

# Erste Spalte vom Rest entfernen:
shift @$_ for @t;


my %paare;
for my $z (0..$#t) {
   for my $s (0..$#{$t[$z]}) {
       if ($t[$z][$s] > 0.7 and $z != $s) {
           $paare{$words[$z] . ' ' . $words[$s]} = $t[$z][$s];
       }
   }
}


print "Paare:\n";
while(my ($schluessel,$wert) = each(%paare))
{
   print "Der Wert von $schluessel ist $wert!\n";
}

_ _ D A T A _ _
apfel   banane  baum    grün    rot     ast     bielef  regen   obst    pflanze
apfel      1.000   0.700   0.700   0.809   0.500   0.702   0.200   0.301   0.902   0.609
banane     0.700   1.000   0.500   0.200   0.100   0.300   0.101   0.203   0.902   0.609
Baum       0.700   0.500   1.000   0.803   0.100   0.900   0.500   0.702   0.803   0.904
grün       0.809   0.200   0.803   1.000   0.800   0.600   0.300   0.703   0.605   0.803
rot        0.500   0.100   0.100   0.800   1.000   0.300   0.209   0.309   0.609   0.308
ast        0.702   0.300   0.900   0.600   0.300   1.000   0.304   0.309   0.700   0.809
bielef     0.200   0.101   0.500   0.300   0.209   0.304   1.000   0.900   0.600   0.300
regen      0.301   0.203   0.702   0.703   0.309   0.309   0.900   1.000   0.800   0.800
obst       0.902   0.902   0.803   0.605   0.609   0.700   0.600   0.800   1.000   0.900
pflanze    0.609   0.609   0.904   0.803   0.308   0.809   0.300   0.800   0.900   1.000


Ausgabe:

Code: (dl )
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
28
29
30
31
32
33
34
35
Paare:
Der Wert von baum regen ist 0.702!
Der Wert von bielef regen ist 0.900!
Der Wert von baum pflanze ist 0.904!
Der Wert von obst banane ist 0.902!
Der Wert von regen grün ist 0.703!
Der Wert von baum obst ist 0.803!
Der Wert von ast apfel ist 0.702!
Der Wert von regen bielef ist 0.900!
Der Wert von regen baum ist 0.702!
Der Wert von pflanze ast ist 0.809!
Der Wert von baum ast ist 0.900!
Der Wert von regen pflanze ist 0.800!
Der Wert von obst pflanze ist 0.900!
Der Wert von obst apfel ist 0.902!
Der Wert von regen obst ist 0.800!
Der Wert von pflanze obst ist 0.900!
Der Wert von grün pflanze ist 0.803!
Der Wert von apfel ast ist 0.702!
Der Wert von ast pflanze ist 0.809!
Der Wert von rot grün ist 0.800!
Der Wert von grün regen ist 0.703!
Der Wert von pflanze regen ist 0.800!
Der Wert von banane obst ist 0.902!
Der Wert von obst baum ist 0.803!
Der Wert von ast baum ist 0.900!
Der Wert von obst regen ist 0.800!
Der Wert von pflanze baum ist 0.904!
Der Wert von baum grün ist 0.803!
Der Wert von apfel obst ist 0.902!
Der Wert von pflanze grün ist 0.803!
Der Wert von apfel grün ist 0.809!
Der Wert von grün baum ist 0.803!
Der Wert von grün apfel ist 0.809!
Der Wert von grün rot ist 0.800!


Der hohe Wert des Paares Bielefeld und Regen sollte einem zu denken geben ;)\n\n

<!--EDIT|Crian|1092056718-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
peggy
 2004-08-09 17:13
#85621 #85621
User since
2004-07-23
29 Artikel
BenutzerIn
[default_avatar]
[quote=Crian,09.08.2004, 15:00]Der hohe Wert des Paares Bielefeld und Regen sollte einem zu denken geben ;)[/quote]
@crian: ein bissel spaß muss sein. DAnke für die Hilfe aber ich habs auch schon hingekriegt ;)
Crian
 2004-08-09 17:59
#85622 #85622
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Du solltest Dir meine Lösung vielleicht trotzdem nochmal ansehen. Ich extrahiere erstmal die ganzen Begriffe aus dem Array, so dass die reinen Zahlen übrig bleiben. Dadurch macht mal sich das Leben wesentlich einfacher.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2004-08-09 14:19.