Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > ger.ct > #287753 > unrolled thread
| Started by | Ricardo Szabo <usenet13@rickszabo.de> |
|---|---|
| First post | 2016-12-12 17:47 +0000 |
| Last post | 2016-12-13 09:54 +0100 |
| Articles | 10 on this page of 30 — 12 participants |
Back to article view | Back to ger.ct
[Programmierung] Darstellung einer Baumstruktur Ricardo Szabo <usenet13@rickszabo.de> - 2016-12-12 17:47 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Frank Möller <butterspiegeleiauftoast42@spl.at> - 2016-12-12 19:19 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Ricardo Szabo <usenet13@rickszabo.de> - 2016-12-12 19:33 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Hermann Riemann <nospan.gerct08@hermann-riemann.de> - 2016-12-12 21:19 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Dennis Preiser <d__p@d--p.de> - 2016-12-12 18:32 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Ricardo Szabo <usenet13@rickszabo.de> - 2016-12-12 19:33 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Herwig AQSR <herwig.huener@t-online.de> - 2016-12-12 16:41 -0800
Re: [Programmierung] Darstellung einer Baumstruktur Ricardo Szabo <usenet13@rickszabo.de> - 2016-12-13 05:28 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-12-13 07:26 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Ricardo Szabo <usenet13@rickszabo.de> - 2016-12-13 08:31 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Hermann Riemann <nospan.gerct08@hermann-riemann.de> - 2016-12-13 10:18 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Herwig AQSR <herwig.huener@t-online.de> - 2016-12-13 03:57 -0800
Re: [Programmierung] Darstellung einer Baumstruktur Hermann Riemann <nospan.gerct08@hermann-riemann.de> - 2016-12-14 10:06 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Wolfgang Kynast <wky@gmx.de> - 2016-12-14 10:17 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Hermann Riemann <nospan.gerct08@hermann-riemann.de> - 2016-12-14 16:22 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Herwig AQSR <herwig.huener@t-online.de> - 2016-12-14 10:45 -0800
Re: [Programmierung] Darstellung einer Baumstruktur Dietz Proepper <dietz-news@rotfl.franken.de> - 2016-12-14 21:00 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Wolfgang Enzinger <we_usenet@nurfuerspam.de> - 2016-12-14 21:37 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Gerrit Heitsch <gerrit@laosinh.s.bawue.de> - 2016-12-14 21:49 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Wolfgang Kynast <wky@gmx.de> - 2016-12-14 23:17 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Dietz Proepper <dietz-news@rotfl.franken.de> - 2016-12-14 23:25 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Herwig AQSR <herwig.huener@t-online.de> - 2016-12-14 14:43 -0800
Re: [Programmierung] Darstellung einer Baumstruktur Hermann Riemann <nospan.gerct08@hermann-riemann.de> - 2016-12-15 10:14 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Hermann Riemann <nospan.gerct08@hermann-riemann.de> - 2016-12-15 10:02 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2016-12-14 10:59 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Matthias Eißing <meissing@gmx.de> - 2016-12-14 15:55 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Wolfgang Enzinger <we_usenet@nurfuerspam.de> - 2016-12-12 23:15 +0100
Re: [Programmierung] Darstellung einer Baumstruktur Ricardo Szabo <usenet13@rickszabo.de> - 2016-12-13 05:17 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Ricardo Szabo <usenet13@rickszabo.de> - 2016-12-13 19:55 +0000
Re: [Programmierung] Darstellung einer Baumstruktur Thomas Heuving <heuving@gmx.de> - 2016-12-13 09:54 +0100
Page 2 of 2 — ← Prev page 1 [2]
| From | Dietz Proepper <dietz-news@rotfl.franken.de> |
|---|---|
| Date | 2016-12-14 23:25 +0100 |
| Message-ID | <mft8id-9g4.ln1@rotfl.franken.de> |
| In reply to | #288077 |
Am 14.12.2016 um 21:37 schrieb Wolfgang Enzinger: > Am Wed, 14 Dec 2016 21:00:13 +0100 schrieb Dietz Proepper: > >>> Macht man trotzdem nicht. >> >> Wenn der hack eine Zeile statt 50 umfasst und 1/10 der CPU-Zeit benötigt >> dann darf man zumindest darüber nachdenken. > > Eventuell meinst du das Gleiche wie ich, aber ich würde anders formulieren: > wenn man den Hack und was man damit bewirken wollte nach drei Jahren noch > auf Anhieb versteht, dann darf man. Nein. Hacks sind zu dokumentieren. So, dass man sie nach drei Jahren noch versteht. Bzw. so dass der Reviewer versteht, was der Hack macht (ohne verbatime Erklärung).
[toc] | [prev] | [next] | [standalone]
| From | Herwig AQSR <herwig.huener@t-online.de> |
|---|---|
| Date | 2016-12-14 14:43 -0800 |
| Message-ID | <ccc0c939-18f0-4fa3-b27a-5cf2361fd2d6@googlegroups.com> |
| In reply to | #288102 |
2016-12-14 23:43:00 +0100 > > Eventuell meinst du das Gleiche wie ich, aber ich würde anders formulieren: > > wenn man den Hack und was man damit bewirken wollte nach drei Jahren noch > > auf Anhieb versteht, dann darf man. > > Nein. Hacks sind zu dokumentieren. So, dass man sie nach drei Jahren > noch versteht. Bzw. so dass der Reviewer versteht, was der Hack macht > (ohne verbatime Erklärung). Synthese: Wenn der Hack einem Professional ohne Kommentar verständlich ist, dann darf man. Sonst dokumentieren, klar. Das schlimmste in einem ProgrammierTeam ist ein Mitarbeiter, der intelligent ist. Das meine ich ernst: Die anderen müssen seinen genialen GedankenGängen - ob dokumentiert oder nicht - hinterherdackeln. Manchmal vergeblich. Herwig
[toc] | [prev] | [next] | [standalone]
| From | Hermann Riemann <nospan.gerct08@hermann-riemann.de> |
|---|---|
| Date | 2016-12-15 10:14 +0100 |
| Message-ID | <ebf588Fu91dU1@mid.individual.net> |
| In reply to | #288073 |
Am 14.12.2016 um 21:00 schrieb Dietz Proepper:
> Wenn der hack eine Zeile statt 50 umfasst und 1/10 der CPU-Zeit benötigt
> dann darf man zumindest darüber nachdenken.
Meine Programmiererfahrung:
Trickprogrammierung sind an wenigen Stellen im Programm
zweckmäßig, wenn man dadurch viel erreicht.
Die Masse des Programm codes
insbesondere Wege die wenig durchlaufen werden,
sollte die Les- und Verstehbarkeit die Hauptrolle spielen.
Hermann
der schon erwägt, in Python den C Präprozessor zu verwenden.
--
www.Hermann-Riemann.de
[toc] | [prev] | [next] | [standalone]
| From | Hermann Riemann <nospan.gerct08@hermann-riemann.de> |
|---|---|
| Date | 2016-12-15 10:02 +0100 |
| Message-ID | <ebf4h8Fu3s4U1@mid.individual.net> |
| In reply to | #288057 |
Am 14.12.2016 um 19:45 schrieb Herwig AQSR:
>> Und in Pascal ST konnte ich auch anders programmieren,
>> wenn ich mit Hilfe von GST Assembler
>> den stack pointer ausgetauscht hatte.
> Das hört sich nach quick-and-dirty an.
Das war weder quick noch dirty.
> So. Etwas. Macht. Man. Nicht.
Erinnert mich an meine Mutter, als sie sagte,
"Man muss mit der Mode gehen"
Unpraktisch, sachlich nicht gerechtfertigt,
aber aus anderen Gründen teilweise erduldet.
Hermann
der Zusammenarbeit des öfteren für
wenig zweckmäßig hält.
--
www.Hermann-Riemann.de
[toc] | [prev] | [next] | [standalone]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2016-12-14 10:59 +0000 |
| Message-ID | <3t58512598i6a7dn3e8%sfroehli@Froehlich.Priv.at> |
| In reply to | #287967 |
On Wed, 14 Dec 2016 10:06:55 Hermann Riemann wrote: > Bei den Uraltsprachen konnte Lisp Rekursion, FORTRAN nicht. Lustig war Turbo Pascal, das in den frühen 90ern ja wahlweise für CP/M und MS-DOS angeboten wurde. Einzelne Programme von mir haben auf der Uni unter MS-DOS funktioniert, daheim unter CP/M jedoch nicht. Rätsels Lösung war schlussendlich, dass unter CP/M mehrfach rekursive Aufrufe innerhalb einer Funktion nicht unterstützt wurden (einfache Rekursion hingegen schon). Das war natürlich nirgendwo dokumentiert, und das Problem einzugrenzen eine gewisse Herausforderung. Servus, Stefan -- http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich Offizieller Erstbesucher(TM) von mmeike Stefan - die letzte Komparation von verschränkt! (Sloganizer)
[toc] | [prev] | [next] | [standalone]
| From | Matthias Eißing <meissing@gmx.de> |
|---|---|
| Date | 2016-12-14 15:55 +0100 |
| Message-ID | <o2rmg6$a0s$1@solani.org> |
| In reply to | #287981 |
Am 14.12.16 um 11:59 schrieb Stefan Froehlich: > Rätsels Lösung war schlussendlich, dass unter CP/M mehrfach > rekursive Aufrufe innerhalb einer Funktion nicht unterstützt wurden > (einfache Rekursion hingegen schon). Das war natürlich nirgendwo > dokumentiert, und das Problem einzugrenzen eine gewisse > Herausforderung. Natürlich war das dokumentiert. Aus dem Handbuch (1986): "Nur CP/M-80: Wegen der Art, wie lokale Variablen während der Rekursion behandelt werden, darf eine zu einem Unterprogramm lokale Variable nicht als var Parameter in rekursive Aufrufe übergeben werden" Und das war die wichtige Einschränkung -- cu://Matthias.Eißing.de
[toc] | [prev] | [next] | [standalone]
| From | Wolfgang Enzinger <we_usenet@nurfuerspam.de> |
|---|---|
| Date | 2016-12-12 23:15 +0100 |
| Message-ID | <qx8c8bkeas74$.16keejf3o237$.dlg@40tude.net> |
| In reply to | #287753 |
Am 12 Dec 2016 17:47:38 GMT schrieb Ricardo Szabo: > Gegeben ist eine Datenbank mit eMails. Die eMails haben eine > funktionierende Bezugsverkettung, für jede eMail ist also bekannt, ob sie 0 > oder 1 Parent und wieviel Childs (0 - n) sie hat. Nun möchte ich ausgehend > von jeder beliebigen eMail die komplette Baumstruktur anzeigen, also im > Prinzip nix anderes als es jeder Usenet-Client auch macht. > > Mir fehlt aber tatsächlich der komplette Ansatz, wie ich denn alle eMails > rekursiv durchlaufen kann?! > Mag mich mal jemand erleuchten? Je nach DB-System und -Definition kann das erstaunlich trivial sein. Stellvertetend hier SQLite: http://www.sqlite.org/lang_with.html Also trivial im Sinne von: der Knoten im Hirn ist zwar nicht unbedingt vollständig aufgelöst, aber es funktioniert einfach. Und zuverlässig. ;-)
[toc] | [prev] | [next] | [standalone]
| From | Ricardo Szabo <usenet13@rickszabo.de> |
|---|---|
| Date | 2016-12-13 05:17 +0000 |
| Message-ID | <eb9ej9Fikf1U1@mid.individual.net> |
| In reply to | #287753 |
Stefan Ram <ram@zedat.fu-berlin.de> wrote:
> Da Du kein bestimmtes Datenformat und keine bestimmte
> Programmiersprache angegeben hast, habe ich das in C++
> geschrieben und eine einfache Reihung als "Datenbank"
> verwendet.
Ich denke, die Programmiersprache ist hierbei auch unerheblich, da es sich
um ein grundsätzliches Verständnisproblem meinerseits handelt. Tatsächlich
handelt es sich um eine programminterne Skriptsprache, die hier kaum
jemanden geläufig sein dürfte.
> Ich stelle die Nachrichten vereinfacht durch eine Kennung
> "id" und eine Referenz zur Bezugsnachricht "ref" dar.
So weit, so gut...
> static ::std::vector< ::std::string >mail =
> { "id:1; ref:0;"s,
> "id:2; ref:1;"s,
> "id:3; ref:1;"s, /* 2 */
> "id:4; ref:2;"s,
> "id:5; ref:2;"s };
Hiermit weisst du also bereits im Vorfeld, auf wieviel Mails du dich
insgesamt beziehen wirst und...
> for( int i = 0; i < 5; ++i )if( id+1 == ref( i ))show( i, d+1 ); }
... verwendest die dir bekannte Anzahl hier in der FOR-Schleife, oder?
Ich werde aber im Vorfeld nicht wissen, wieviel Mails insgesamt zu dem Baum
gehören. Und irgendwie liegt genau da mein Denkproblem.
Bye
Rick
--
Bevor i mi afreg, is ma liaba wurscht...
[toc] | [prev] | [next] | [standalone]
| From | Ricardo Szabo <usenet13@rickszabo.de> |
|---|---|
| Date | 2016-12-13 19:55 +0000 |
| Message-ID | <ebb223Fi4rU1@mid.individual.net> |
| In reply to | #287804 |
Stefan Ram <ram@zedat.fu-berlin.de> wrote: > Es wird aber auch dann irgendeine Möglichkeit geben, eine > Endbedingung für die Schleife zu finden, da bei Ausführung > der Schleife bekannt ist, wie viele Nachrichten gespeichert > sind. Richtig. > Aber, da Du ja in <eb9puqFl4j4U1@mid.individual.net> schriebst: > |das Problem ist gelöst. > , ist das Problem wahrscheinlich in der Zwischenzeit gelöst. Auch richtig. Und noch trivialer als ich es befürchtet hatte. Lustigerweise habe ich ja die Rekursion "nach oben", also um die Wurzel zu finden, ja bereits gehabt, aber aus irgendeinem Grund wollte mein Verstand den umgekehrten Weg nicht verstehen. :) In der verwendeten Skriptsprache und den eMails in einer FastObjects-Datenbank sieht das ganze so aus: Teil 1: Finden der Wurzel, um von dieser aus den Baum zu durchlaufen HANDLE Tree; EMail Eml; IF ( !DBOIsEmpty( Eml.Ursprung ) ) REPEAT Eml = Eml.Ursprung; UNTIL ( DBOIsEmpty( Eml.Ursprung ) ); _Baum( Tree, Eml, "" ); Teil 2: Die "Funktion" _Baum: VOID _Baum( HANDLE Tree, EMail Eml, STRING Parent ) INT i; FOR ( i = 1; i <= DBObSetGetCount( Eml.Antworten ); i++ ) Parent = TreeInsertTreeItem( Tree, Eml.Antworten[i].Betreff, Parent, DBOGetOID( Eml.Antworten[i] ) ); _Baum( Tree, Eml.Antworten[i], Parent ); NEXT Bye Rick -- Bevor i mi afreg, is ma liaba wurscht...
[toc] | [prev] | [next] | [standalone]
| From | Thomas Heuving <heuving@gmx.de> |
|---|---|
| Date | 2016-12-13 09:54 +0100 |
| Message-ID | <pjp4id-1km.ln1@ID-32009.user.uni-berlin.de> |
| In reply to | #287753 |
Ricardo Szabo schrieb am 12 Dec 2016 17:47:38 GMT: > Wahrscheinlich ist es eine triviale Frage, aber ich habe schon einen Knoten > im Kopf und komme einfach nicht drauf: > > Gegeben ist eine Datenbank mit eMails. Die eMails haben eine > funktionierende Bezugsverkettung, für jede eMail ist also bekannt, ob sie 0 > oder 1 Parent und wieviel Childs (0 - n) sie hat. Nun möchte ich ausgehend > von jeder beliebigen eMail die komplette Baumstruktur anzeigen, also im > Prinzip nix anderes als es jeder Usenet-Client auch macht. > > Mir fehlt aber tatsächlich der komplette Ansatz, wie ich denn alle eMails > rekursiv durchlaufen kann?! > Mag mich mal jemand erleuchten? Wenn es eine MSSQL-DB ist, kanst du dir eine Stored Procedure schreiben, in der du "with hierarchy" nutzt, welches dir rekursives Lesen einer Tabelle nach von dir definierten Bedingungen erlaubt. Für andere Datenbanksysteme wird es ähnliche Konstrukte geben, bei Oracle gibt es "start with" und "connect by", Beispiele unter https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm#i2060615 Tschüß -- Thomas Heuving
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | ger.ct
csiph-web