AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Monatskürzel "Jan".."Dec" in 01..12 umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Monatskürzel "Jan".."Dec" in 01..12 umwandeln

Ein Thema von Steffen · begonnen am 28. Jan 2004 · letzter Beitrag vom 2. Feb 2004
Antwort Antwort
Seite 4 von 4   « Erste     234   
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#31

Re: Monatskürzel "Jan".."Dec" in 01..12

  Alt 2. Feb 2004, 16:25
Zitat von choose:
Ob es ein Poblem der Performance ist, hängt vom Anwendungsfall ab. Was ich weiß ist, dass bei Deiner nunmehr dritten Korrektur folgendes gilt, hboy:
monthbystr('n f')=monthbystr('jan') Bei der ursprünglichen Lösung von Hagen (die sehr ähnlich zu Deinem Versuch ist) findest Du einen elegenten Ansatz zu diesem Problem. Ein paar Ideen zur Performance sind ebenfalls in diesem Thread zu finden.
bei ihm wärs dann n.f was falsch erkannt würde
Power is nothing without TControl
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#32

Re: Monatskürzel "Jan".."Dec" in 01..12

  Alt 2. Feb 2004, 16:34
Zitat:
bei ihm wärs dann n.f was falsch erkannt würde
Nein, dies kann nicht passieren da mein Code immer nach zB. ".JAN." oder ".OCT." sucht, d.h. die Suchworte "JAN" und "OCT" werden intern um Separatoren erweitert. In deinem Beispiel von "n.f" würde intern nach ".N.F." gesucht und eben NICHT gefunden.

Gruß Hagen
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#33

Re: Monatskürzel "Jan".."Dec" in 01..12

  Alt 2. Feb 2004, 16:48
okokok. is ja gut. gute lösung. hab sie vorher beim überfliegen nich gesehn 8)
Power is nothing without TControl
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#34

Re: Monatskürzel "Jan".."Dec" in 01..12

  Alt 2. Feb 2004, 20:33
Hallo hboy,
Zitat von hboy:
Ausserdem liese sich dieses ord(..) shr...+ord(..) shr...+ord(..) shr... vereinfachen:

var s: string[4];
v: integer absolute s;
selbst unter der Beachtung der Ablage im Speicher (Big Endian vs Little Endian) ist dieser Verleich nicht ganz identisch, weil Du auch bei Strings der Länge 3 immer das bei einer Zuweisung undefinierte vierte Zeichen als Lowbyte des Lowwords des Ints casten würdest...
Mir ist bewusst, dass die vorgestellte Hash-Funktion optimiert werden könnte, insbesondere könnten die Aufrufe von Upcase durch ein einziges and ersetzt werdern- darum ging es aber weniger als um die Tatsache, dass auch eine eineindeutige Lösung mit der Komplexität O(1) für das Problem existiert...
gruß, choose
  Mit Zitat antworten Zitat
Steffen

Registriert seit: 19. Mär 2003
Ort: Hamburg
111 Beiträge
 
Delphi 7 Enterprise
 
#35

Re: Monatskürzel "Jan".."Dec" in 01..12

  Alt 2. Feb 2004, 20:35
Und wie würde die Lösung mit der Komplexität O(1) für das Problem aussehen?
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#36

Re: Monatskürzel "Jan".."Dec" in 01..12

  Alt 2. Feb 2004, 20:45
Das ist die Lösung mit dem Hashing (s.o.): Für jeden Eingabestring wird eine Konstante Zeit O(1) benötigt, egal wie lang er ist oder wieviele Elemente (Monate) es gibt (sofern die Abbildung der Hash-Funktion bijektiv, also eineindeutig, ist- das ist hier der Fall).

Zitat von penibles Gewissen:
Nun, tatsächlich (das Compilat) ist die Case-Anweisung selbst nicht ganz "konstant" in ihrer Ausführungszeit aber es entspricht dem äquivalenten Konstrukt in der Programmiersprache Pascal und ließe sich notfalls auch mit einer direkten Indizierung hinbekommen (bei zwölf Elementen wohl idR zu vernachlässigen...)
gruß, choose
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#37

Re: Monatskürzel "Jan".."Dec" in 01..12

  Alt 2. Feb 2004, 21:29
Zitat von choose:
Hallo hboy,
Zitat von hboy:
Ausserdem liese sich dieses ord(..) shr...+ord(..) shr...+ord(..) shr... vereinfachen:

var s: string[4];
v: integer absolute s;
selbst unter der Beachtung der Ablage im Speicher (Big Endian vs Little Endian) ist dieser Verleich nicht ganz identisch, weil Du auch bei Strings der Länge 3 immer das bei einer Zuweisung undefinierte vierte Zeichen als Lowbyte des Lowwords des Ints casten würdest...
Mir ist bewusst, dass die vorgestellte Hash-Funktion optimiert werden könnte, insbesondere könnten die Aufrufe von Upcase durch ein einziges and ersetzt werdern- darum ging es aber weniger als um die Tatsache, dass auch eine eineindeutige Lösung mit der Komplexität O(1) für das Problem existiert...
jetzt sei mal nicht so pingelig mit einem verworfenen Ansatz. Dann machste halt noch v:= v and $00FFFFFF;
Power is nothing without TControl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz