[GastForen Archiv Perl und CGI Sortieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Sortieren

Anonym
Beiträge gesamt: 22827

2. Jun 2003, 14:36
Beitrag # 1 von 6
Bewertung:
(2062 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ihr lieben,

ihr müßt mir mal wieder helfen und zwar möchte ich meinem Programm vorgeben, wie die Einteilung auf der x-Achse sein soll.
Sie soll weder numerisch als auch alphanumerisch werden.
Im moment werden die Daten zufällig ausgegeben. Ich möchte folgende Einteilung auf der Achse haben:

NNO,No,NOO,SOO,SO,SSO,SSW,SW,SWW,NWW,NW,NNW


Hoffe mir kann jemand helfen. Es ist sehr wichtig!!
LG Muse
X

Sortieren

oesi50
  
Beiträge gesamt: 2315

2. Jun 2003, 14:41
Beitrag # 2 von 6
Beitrag ID: #37882
Bewertung:
(2062 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi Muse,
teile Deine Himmelsrichtungen in 0..360 Grad ein und schon klappt's mit dem Sortieren.

Grüße Oesi


als Antwort auf: [#37880]

Sortieren

Anonym
Beiträge gesamt: 22827

3. Jun 2003, 10:17
Beitrag # 3 von 6
Beitrag ID: #37992
Bewertung:
(2062 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich soll aber die Himmelsrichtungen und deren Abkürzungen auf der x-Achse darstellen und nicht die Gradzahlen.
Kannst du mir sagen, wie man das dann macht?

LG Muse


als Antwort auf: [#37880]

Sortieren

Anonym
Beiträge gesamt: 22827

3. Jun 2003, 11:16
Beitrag # 4 von 6
Beitrag ID: #37999
Bewertung:
(2062 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Muse,
verwende Bei der Anzeige eine Übersetzungstabelle.
Wenn Du keine Gradzahlen verwenden willst, nummeriere doch die Himmelsrichtungen einfach durch.

#!/usr/bin/perl -d
my %hr;
%hr = ( 'N'=>0,
'NNO'=>1,
'NO'=>2,
#usw.);

# $hr{'N'} entspricht dann 0
# $hr{'NNO'} ---> 1
# usw.

# einlesen

my @daten;

# schleife startet hier
# einlesen $himmelsrichtung und $wert
$daten[$hr{$himmelsrichtung}] = $wert;
#schleife endet hier


# zum Anzeigen:

for (sort { $hr{$a} <=> $hr{$b}} keys %hr){
print "$hr[$_] : $daten[$_];\n";
}

Da ich Deine Ausgangsdaten nicht kenne, habe ich dieses Beispiel nur mal so als Anregung gewählt.

Grüße Oesi


als Antwort auf: [#37880]
(Dieser Beitrag wurde von SabineP am 3. Jun 2003, 11:20 geändert)

Sortieren

oesi50
  
Beiträge gesamt: 2315

3. Jun 2003, 11:30
Beitrag # 5 von 6
Beitrag ID: #38000
Bewertung:
(2062 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Korrektur:
Die Ausgabezeile muss natürlich so aussehen:
print "$hr{$_} : $daten[$hr{$_}]\n";

Grüße Oesi


als Antwort auf: [#37880]

Sortieren

Anonym
Beiträge gesamt: 22827

3. Jun 2003, 12:08
Beitrag # 6 von 6
Beitrag ID: #38010
Bewertung:
(2062 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke,
die Einteilung auf der x-Achse hat geklappt, habe nur was übersehen. Jedoch stimmt die Zuteilung von Werten zu diesen Richtungen nicht überein.
Beides wird aus einer Datenbank ausgelesen.

Laut dem Output entspricht NOO 30°, dabei soll es 60° entsprechen.

Habe zuvor auch if-Abfragen gemacht,wie z.B. wenn in der Datenbank 30 steht, dann entspricht dies NOO.
Das war zwar sehr aufwendig, aber für den Anfang ok.

LG Muse


als Antwort auf: [#37880]
X