• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

WolfLanguage

snaky

Geowizard
Ich spiele gerade ein bisschen mit der WolfLanguage rum (bei dem Wetter kann man ja nicht cachen gehen :roll: ) und bin da auf ein Problem bei dem Cache GC1355V gestoßen.
Die Aufgabe ist dort: "Nehme die Disziplin, die für unser Hobby unerlässlich ist und bilde die Quersumme (A= 1, Z=26, ä=a) . Die Ziffern des Ergebnisses sind A B C (die Quersumme der Quersumme ist 11)"
D. h. man soll ein Wort nehmen, die einzelnen Buchstaben in Zahlen umrechnen und dann die Quersumme bilden. Das bekomme ich irgendwie nicht hin.
val klingt ja ganz gut, addiert aber zum bisherigen Ergebnis z. B. beim Buchstaben j 10 dazu statt 1.
Mit q(sval()) kriege ich ein "Not a valid number", vermutlich weil noch Leerzeichen zwischen den Zahlen sind. Meine versuche, diese mit encode(xxx," ",) oder encode(xxx," ","") oder auch mit replace zu ersetzen sind fehlgeschlagen. Übersehe ich da irgendwas?

(Kleine Anmerkung am Rande: Die nachfolgende Tabelle in der Cachebeschreibung lässt sich im CW nicht sinnvoll lesen. Haupsächlich deswegen will ich das über den Solver machen)

Bei einem anderen Cache hatte ich das Problem, dass man AB,CD Meter nach Norden laufen soll. Gibt es da was Schöneres als project(WP,0,(A*1000+B*100+C*10+D)/100))?
 

MiK

Geoguru
Zufällig habe ich genau diesen Cache auch gestern gemacht und bin dabei auch über die beiden Probleme gestolpert.

Da ich die Beschreibung vorher schonmal angeschaut hatte, war die falsche Darstellung der Tabellen kein Problem. Wäre aber auf jeden Fall gut, wenn einfache Tabellen richtig dargesttellt würden.

Zur WolfLanguage: val ist genau das richtige. j ist doch der 10. Buchstabe. Du musst nur die Ersetzung ä=a selbst machen.
 

MiK

Geoguru
snaky schrieb:
Bei einem anderen Cache hatte ich das Problem, dass man AB,CD Meter nach Norden laufen soll. Gibt es da was Schöneres als project(WP,0,(A*1000+B*100+C*10+D)/100))?

project(WP, 0, A B","C D) sollte funktionieren.

Nachtrag zu meiner vorigen Antwort:

Man kann auch folgendes benutzen:

val(encode("äbc", "ÄÖÜäöü", "AOUaou"))

Aber wahrscheinlich ist das manuelle auflösen der Umlaute einfacher.
 
OP
snaky

snaky

Geowizard
@pfeffer:
Nein, "cr" hilft leider nicht. Ist ja scheinbar auch nur ein alias für "q", oder? Und q(sval()) scheitert an den Leerzeichen: "Not a valid number:07 05 15 04 01 20"

@MiK:
Ich befürchte, dass ich gerade furchtbar auf dem Schlauch stehe, aber ich sehe nicht, wie mir val() helfen soll. Im obigen Beispiel (Geodat) soll wohl folgendes Zusammengerechnet werden: 7+5+1+5+4+1+2=25
val() rechnet aber 7+5+15+4+1+20=42

project(WP, 0, A B","C D) funtioniert übrigens nicht, aber zumindest geht project(WP, 0, (A B C D)/100), was schon wesentlich eleganter als meine Version ist. Ersteres wirft übrigens die komische Fehlermeldung: "Not a valid number:1,45" (am Beispiel von A,BC mit A=1, B=4, C=5).
 

MiK

Geoguru
snaky schrieb:
Ich befürchte, dass ich gerade furchtbar auf dem Schlauch stehe, aber ich sehe nicht, wie mir val() helfen soll. Im obigen Beispiel (Geodat) soll wohl folgendes Zusammengerechnet werden: 7+5+1+5+4+1+2=25
val() rechnet aber 7+5+15+4+1+20=42

Ok, die Beschreibung ist wohl nicht ganz eindeutig. Aber gemeint ist wohl die Methode, wie sie von val() implementiert ist. Auf jeden Fall kam ich damit bei diesem Cache zum Ziel.

snaky schrieb:
project(WP, 0, A B","C D) funtioniert übrigens nicht, aber zumindest geht project(WP, 0, (A B C D)/100), was schon wesentlich eleganter als meine Version ist. Ersteres wirft übrigens die komische Fehlermeldung: "Not a valid number:1,45" (am Beispiel von A,BC mit A=1, B=4, C=5).

Ich habe jetzt nicht genau überprüft, ob die Projektion stimmt, aber bei meiner Methode kam zumindest keine Fehlermeldung. Kannst Du mal ein paar Beispielwerte mit Ergebnis nennen?
 
OP
snaky

snaky

Geowizard
MiK schrieb:
snaky schrieb:
Ich befürchte, dass ich gerade furchtbar auf dem Schlauch stehe, aber ich sehe nicht, wie mir val() helfen soll. Im obigen Beispiel (Geodat) soll wohl folgendes Zusammengerechnet werden: 7+5+1+5+4+1+2=25
val() rechnet aber 7+5+15+4+1+20=42

Ok, die Beschreibung ist wohl nicht ganz eindeutig. Aber gemeint ist wohl die Methode, wie sie von val() implementiert ist. Auf jeden Fall kam ich damit bei diesem Cache zum Ziel.

Na, gut zu wissen. Das wäre mal wieder eine typische Stelle gewesen, bei der ich auf die Nase gefallen wäre. Quersumme ist dann aber doch das falsche Wort. Richtiger wäre hier wohl "Summe der Zahlenwerte der Buchstaben".

snaky schrieb:
project(WP, 0, A B","C D) funtioniert übrigens nicht, aber zumindest geht project(WP, 0, (A B C D)/100), was schon wesentlich eleganter als meine Version ist. Ersteres wirft übrigens die komische Fehlermeldung: "Not a valid number:1,45" (am Beispiel von A,BC mit A=1, B=4, C=5).

Ich habe jetzt nicht genau überprüft, ob die Projektion stimmt, aber bei meiner Methode kam zumindest keine Fehlermeldung. Kannst Du mal ein paar Beispielwerte mit Ergebnis nennen?

Ganz einfaches Testbeispiel:
A=1
B=2
C=3
D=4
WP="N 49 00.000 E 8 00.000"
project(WP, 0, A B ","C D)

Das ergibt:
Error on line:16 position:25
Not a valid number:12,34
 

MiK

Geoguru
Also bei mir funktioniert der Code so.

Welche Version benutzt Du? Versuch es mal mit "." anstatt ",".
 
OP
snaky

snaky

Geowizard
Autsch. Kommt davon, wenn man eine CW-Version auf englisch und eine auf deutsch laufen hat. Auf der englischen geht es dann natürlich mit dem Punkt. Danke für den Hinweis.

Kann man die Sprache eigentlich irgendwie umstellen?
 

MiK

Geoguru
Witzig ist in dem Zusammenhang folgendes Ergebnis:

project("N 49 00.000 E 8 00.000", 90, 100) = N 48° 60.000 E 008° 00.082
 

MiK

Geoguru
snaky schrieb:
Autsch. Kommt davon, wenn man eine CW-Version auf englisch und eine auf deutsch laufen hat. Auf der englischen geht es dann natürlich mit dem Punkt. Danke für den Hinweis.

Kann man die Sprache eigentlich irgendwie umstellen?

Ich habe jetzt nur unter deutschem WinXP getestet. Dort funktioniert beides.

Edit: Unter deutschem WM5 geht auch beides.
 
OP
snaky

snaky

Geowizard
Ist bei Dir dann auch der CW auf englisch? Bei meinem englischen Linux ist auch der CW automatisch auf englisch. Der Button "Rechne" ist z. B. "solve". Oben in der Leiste steht "Application, Search, Filter, Organise und About" usw.
Dort geht es mit dem Komma nicht (siehe obigen Fehler).
Mein PPC läuft mit deutschem WM5 und lässt sich auch nicht umstellen. Dort ist der CW dann auch automagisch auf deutsch.

Möglicherweise liegt es auch daran, dass ich noch die RC 672 unter Linux habe!?
 

MiK

Geoguru
Meine OS laufen beide deutsch. Und damit auch CW. Und hier funktioniert sowohl Punkt als auch Komma. Im Englischen geht wohl nur der Punkt.
 

salzkammergut

Geomaster
MiK schrieb:
Witzig ist in dem Zusammenhang folgendes Ergebnis:

project("N 49 00.000 E 8 00.000", 90, 100) = N 48° 60.000 E 008° 00.082
Mir ist auch schon aufgefallen, daß die verwendete openmap Bibliothek nicht ganz exakt rechnet. Das könnte auch daran liegen, daß sie nur mit einfacher Genauigkeit (nicht mit double) arbeitet. Für unsere Zwecke dürfte es aber reichen.
 

salzkammergut

Geomaster
@snaky: Das Dezimaltrennzeichen im Parser ist ein Punkt. Das Komma wird bei Funktionen mit mehreren Parametern zum Trennen der Parameter verwendet. Ich habe den Parser jetzt überarbeitet sodaß beim Umwandeln eines Strings in eine Zahl ein Komma automatisch in einen Punkt geändert wird.
Code:
12.4+"12,3"
ist in der nächsten Release erlaubt.

Wie du richtig geschrieben hast, hat der Cacheverstecker das Wort "Quersumme" falsch verwendet (nicht im normal in der Mathematik gebräuchlichen Sinn). Für diese spezielle "Quersumme" kann (in Zukunft) folgendes geschrieben werden
Code:
q(replace(sval("geodat")," ",""))
In der derzeitigen Version des Parsers scheitert dies weil ein leerer String als Ersatzzeichenfolge bei replace nicht erlaubt ist und die q Funktion bei sehr grossen Zahlen ein Problem hat.
 

MiK

Geoguru
Um das nochmal klarzustellen: In diesem Cache wird genau die Funktion von val() benötigt und nicht die von Salzkammergut vorgestellte Version. Bei einem anderen Cache mag es anders sein. Als "Quersumme" möchte ich eigentlich keine der beiden Varianten bezeichnen...
 
OP
snaky

snaky

Geowizard
@MiK:
Ich habe die Version mit val() bereits im PDA. Aber danke, dass Du nochmal darauf hinweist.
Übrigens gibt nicht mal Wikipedia eine Definition von Quersummen mit zweistelligen Zahlen. Vermutlich hast Du Recht und das Wort Quersumme ist in solchen Fällen einfach falsch.

@salzkammergut:
Ich finde die Möglichkeit, aus einem String Teile herauszuschneiden trotzdem eine sehr gute Sache. Z. B. könnten ja auch Sachen gefordert werden wie "Nimm das Wort xxx und streiche alle Vokale..." oder die nächsten Koordinaten sind bei xxx*yyy ohne die Fünfen.

Vielen Dank für den Einbau dieser Funktionen.
 
Betrachtet man die Buchstaben eines Wortes als Ziffern eines 26-er Systems, dann ist die Wortquersumme genau dies: Die Summe der Werte der Buchstaben.

In niederländischen Beschreibungen ist in dem Zusammenhang oft von Wortwert die Rede.
 
MiK schrieb:
Da ich die Beschreibung vorher schonmal angeschaut hatte, war die falsche Darstellung der Tabellen kein Problem. Wäre aber auf jeden Fall gut, wenn einfache Tabellen richtig dargesttellt würden.
Darf ich dies noch mal hervor kramen? Ich bin gerade über den Cache GC195P2 gestolpert. Im CW 1.0 ist das keine Tabelle mehr. Bin leider erst gerade über eine Tabelle gestolpert, daher erst jetzt die Meldung...
 

MiK

Geoguru
Wenn ich mich richtig erinnere, hat der EWE-HTML-Renderer schon immer Probleme mit Tabellen. Zumindest erinnere ich mich da an 2-3 Caches mit diesem Problem. Eine weitere Hoffnung, die wir in den Umstieg auf EVE setzen...
 
Oben