Autor |
Beitrag |
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Do 25.10.12 22:14
Hallo,
bummi hat folgendes geschrieben : | lass die zwei Stellen mit DLLProc und SaveExit einfach mal weg |
Danke. Funktioniert.
Als Zwischenstand habe ich mit Deiner Idee schon die Funktionen, die Einstellungen zum Koordinatensystem und die Ableitungen in die DLL ausgelagert. Es funktioniert wunderbar.
Ich denke, es wird eine ordentliche DLL entstehen, die dann (hoffentlich) auch von anderen nutzbar ist, z.B. mit C#. Dort ist mir dann aber nicht klar, wie der Aufruf der DLL-Funktionen zu realisieren ist.
Parallel werde ich aber auch das Programm ohne DLL weiterentwickeln.
Jetzt muss ich aber passen. Das erste Ergebnis in Form von Quelltext, Exe und DLL gibt's in zeitigstens 8 Tagen. So lange melde ich mich definitiv erst einmal ab. In der nächsten Woche habe ich keinen Zugang zur EE.
Beste Grüße
Mathematiker
Moderiert von Narses: Doppelposting entfernt.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Do 25.10.12 22:59
"Upps", da hat sich ein Beitrag selbst zitiert (ob das für Douglas Hofstadter schon eine seltsame Schleife wäre?).
Ich bin ja von Dir schon etliche Programme gewohnt, aber dieses hier sticht besonders hervor. Allerdings quälte ich es sogleich: x*sin(1/x) zoomte ich immer mehr, bis es schließlich abstürzte (erst hängenblieb und dann sich selbst beendete, wohl eher "verabschiedete", als Taskbareintrag und als Prozeß im Speicher aber noch vorhanden). Egal, es war ihm jedenfalls irgendwann zuviel des Guten.
Zu Deinen vielen Programmen, die Du hier im 1-Tages-Abstand vorstellst (spannst Du alle Schüler ein, oder hast Du gar eine Programmierabteilung unter Dir?) eine Anregung: Am besten, Du eröffnest eine zentrale Extradiskussion, in der Du alle Deine Programme (ggf. mit Kurzbeschreibung, die wenigstens den Zweck des jeweiligen Programmes erkennen läßt), von der aus man über Verweise an die jeweilige Diskussion gelangt. Das wäre doch was!
Zuletzt bearbeitet von Delphi-Laie am Do 25.10.12 23:43, insgesamt 1-mal bearbeitet
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Do 25.10.12 23:15
@Delphi-Laie
Warum? Der Traffic in allen Delphiforen ist rückläufig.
Einen enthusiastischer Ideenlieferanten sehe ich eher als Bereicherung an.
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Do 25.10.12 23:26
Hallo Delphi-Laie,
Delphi-Laie hat folgendes geschrieben : | "Upps", da hat sich ein Beitrag selbst zitiert (ob das für Douglas Hofstadter schon eine seltsame Schleife wäre?). |
Ich war einfach zu blöd und habe statt auf Ändern auf Antworten gedrückt. Ist aber schon behoben.
Delphi-Laie hat folgendes geschrieben : | Ich bin ja von Dir schon etliche Programme gewohnt, aber dieses hier sticht besonders hervor. Allerdings quälte ich es sogleich: x*sin(1/x) zoomte ich immer mehr, bis es schließlich abstürzte (erst hängenblieb und dann sich selbst beendete, wohl eher "verabschiedete", als Taskbareintrag und als Prozeß im Speicher aber noch vorhanden). |
Tut mir leid. Den Fehler muss ich suchen, habe aber schon eine Vermutung. Wenn durch Runden die x- oder y-Werte des Intervalls gleich werden, gibt's wohl diesen Ärger.
Delphi-Laie hat folgendes geschrieben : | spannst Du alle Schüler ein, oder hast Du gar eine Programmierabteilung unter Dir?) |
Wünsche Dir nicht die Programme meiner (normalen) Schüler. Du würdest erschrecken.
Eine Programmierabteilung habe ich leider nicht. Nur wenn es mich "packt", dann geht es oft schnell. Natürlich mit blöden Fehlern. (siehe oben)
Aber jetzt hast Du erst einmal 8 Tage Ruhe vor mir. Wir, meine bessere Hälfte und ich, haben uns kurzfristig doch noch etwas "Verrücktes" geleistet. Mal sehen, wie es in Israel ist.
Beste Grüße
Mathematiker
Nachtrag: Der Fehler ist behoben. Es war wie vermutet. siehe neue Revision.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Do 25.10.12 23:40
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Do 25.10.12 23:45
Hallo Delphi-Laie,
Delphi-Laie hat folgendes geschrieben : | Das geht n.m.W. aber nur mit Moderations-/Administrationshilfe. Man Beiträge selbst erstellen, aber nicht selbst löschen. |
Als ich gedrückt hatte und meinen Unfug sah, habe ich sofort den Virtuellen Ansprechpartner informiert.
Delphi-Laie hat folgendes geschrieben : | Viel Spaß in Israel! |
Danke. Hoffentlich kommen wir heil zurück und die Israelis machen nicht gerade jetzt mit dem Iran Ernst.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Fr 26.10.12 07:50
@Delphi-Laie
Ich muss Deinen Beitrag wohl missverstanden haben.
Ich hatte den Eindruck Dich würden die vielen Threads stören und Du würdest es lieber auf einen Thread verdichtet haben.
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Tranx
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Fr 26.10.12 09:51
Alle Achtung, ich finde das Programm super. Und schnell genug ist es m.E. auch. Aber vielleicht bin ich ja zu anspruchslos.
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 26.10.12 10:02
bummi hat folgendes geschrieben : | Ich hatte den Eindruck Dich würden die vielen Threads stören |
Nein, natürlich nicht, warum sollten sie auch?
Mein Interesse an Mathematikers Programmen zeigt sich doch daran, daß ich in einigen / etlichen seiner Programmdiskussionen mitmische.
bummi hat folgendes geschrieben : | und Du würdest es lieber auf einen Thread verdichtet haben. |
Auch das wäre zuviel des Guten, man könnte sich ja gar nicht mehr auf ein konzentrieren und keine Details besprechen, ohne den Überblick zu verlieren.
Ich sprach von einer zentralen Diskussion - eigentlich würde ein Eingangsbeitrag ausreichen, aber den kann man wohl nie losgelöst von der anschließenden Diskussionsmöglichkeit erstellen - oder doch? Falls nein, dann gibt es doch immer irgendjemanden, der etwas dazuzusenfen hat. In diesem zentralen Beitrage wären die Programme mit Namen, ggf. kurzer, (selbst)erklärender Zwecknennung und Verweise zu den jeweiligen Diskussionen aufgelistet. Bleibt Mathematikers Entscheidung (obwohl es grundsätzlich jeder könnte, weil jeder normale Forumsteilnehmer zur Erstellung neuer Beiträge / Diskussionen berechtigt ist). Bei seiner Fülle guter Programme wäre das m.E. ein Mehrwert.
Zuletzt bearbeitet von Delphi-Laie am So 04.11.12 17:56, insgesamt 1-mal bearbeitet
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.11.12 18:30
Hallo,
nach eine superinteressanten Woche in Israel melde ich mich wieder zurück.
Als erstes gibt es eine kleine Erweiterung des Funktionsprogramms: Außer der Tangente kann nun auch die Normale im markierten Punkt gezeichnet werden. Während der Animation ist wahlweise der Parameter P oder der Punkt mit den Geraden verschoben werden.
Ich finde es interessant, wenn der Punkt sich auf der Funktion bewegt und die Lage der Tangente und Normale sofort neu gezeichnet werden.
Hat jemand von Euch einen weiteren Wunsch zur Ergänzung dieses Programms, so immer her damit. Ich werde sehen, was machbar ist.
Hallo Delphi-Laie,
Delphi-Laie hat folgendes geschrieben : | Ich sprach von einer zentralen Diskussion - eigentlich würde ein Eingangsbeitrag ausreichen, aber den kann man wohl nie losgelöst von der anschließenden Diskussionsmöglichkeit erstellen - oder doch? |
Deine Idee ist nicht schlecht, ich weiß nur nicht, ob dies im Sinne der EE-Regeln ist. Aber vielleicht kann sich ja jemand dazu äußern.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 02.11.12 18:37
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.11.12 19:08
Hallo Delphi-Laie,
Delphi-Laie hat folgendes geschrieben : | Schön, daß Du wohlbehalten aus dem biblischen Lande zurückgekehrt bist. Hoffentlich gefiel es Dir dort gut! |
Das ist zwar jetzt Off-Topic: Israel ist wunderschön. Ich kann jedem nur empfehlen, wenn möglich, einmal hinzufahren. Haifa ist eine traumhafte Stadt, das Tote Meer wunderschön, Yad Vashem eine tief beeindruckende Erfahrung, die man nie wieder vergisst, und vor allem die Altstadt von Jerusalem: Eine Woche genügt nicht, um wenigstens das Wichtigste zu sehen.
Delphi-Laie hat folgendes geschrieben : | Doch stehst Du hier nicht inzwischen unter Natur-/Artenschutz? |
Wie soll ich denn das verstehen? Bin ich das "letzte Exemplar meiner Art"?
Hallo Tranx,
Tranx hat folgendes geschrieben : | Aber vielleicht bin ich ja zu anspruchslos. |
Warum? Wenn Dir das Programm gefällt und es Deinen Vorstellungen entspricht, freut es mich. Solltest Du noch spezielle Wünsche haben, brauchst Du es nur zu sagen.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 04.11.12 14:15
Hallo,
ich habe das Programm erneut überarbeitet. Die Neuerungen sind:
1. Ein zweiter Punkt B kann eingezeichnet und mit der Maus verschoben werden.
2. Die Sekante von A nach B wird gezeichnet.
3. Die Fläche unter der Funktion f1 vom Ursprung O bis Punkt A wird markiert und berechnet. Ebenso das bestimmte Integral. Die Berechnung erfolgt mit dem schnellen Gauß-Legendre-Verfahren, so dass es während der Animation kaum zu Verzögerungen kommt.
4. Die Funktionen f1 und f2 können addiert und multipliziert werden.
5. Eine Stammfunktion zu f1 wird gezeichnet. Dabei wird versucht, diese stets durch den Ursprung verlaufen zu lassen.
6. In die Eingabezeilen der Koordinaten, des Parameters und des Definitionsbereiches können jetzt auch Terme der Form PI, SQRT(2), SIN(PI/4), usw. eingetragen werden.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
gerd8888
Beiträge: 205
Erhaltene Danke: 3
Win7
Delphi 10.1 Starter (kostenlos) Lazarus
|
Verfasst: So 04.11.12 21:51
Ich habe mir die neue Version gerade angesehen.
Bei dem Integral kann man also "nur" vom 0-Punkt aus und einem wählbaren Punkt die Fläche berechnet werden.
Gut gefaellt mir hierbei, dass man den Punkt auch in dem Kurvenverlauf verschieben kann.
Entwickelst Du das noch weiter, so dass man die Fläche unter der Kurve von 2 beliebigen Punkten wählen kann?
Aber wirklich, soweit ich das beurteilen kann, nicht schlecht.
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 04.11.12 22:02
Hallo Gerd8888,
gerd8888 hat folgendes geschrieben : | Entwickelst Du das noch weiter, so dass man die Fläche unter der Kurve von 2 beliebigen Punkten wählen kann? |
Schon erledigt.
Die Fläche unter der Kurve und das bestimmte Integral werden in der Revision 10 im Intervall der x-Werte der Punkte A und B ermittelt. Da man B ändern kann (Eingabe oder Maus), kannst Du ein beliebiges Intervall wählen.
In der neuen Version wird auf Wunsch auch die Umkehrkurve von f1 gezeichnet.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
gerd8888
Beiträge: 205
Erhaltene Danke: 3
Win7
Delphi 10.1 Starter (kostenlos) Lazarus
|
Verfasst: So 04.11.12 22:22
Funktioniert einwandfrei. Sowetwas mit dem Integral ist vielleicht nicht neu, habe ich aber schon lange gesucht.
Man hat hier ein gutes Programm mit dem man Differential und Integral-Rechnungen der Analysis gezeigt bekommt.
Ist einfach zu bedienen und das Integral wird sogar noch farblich gelb hervorhehoben.
Das Programm werde ich mir gut aufheben.
|
|
Tranx
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: So 04.11.12 22:44
Also, das ist schon wirklich professionell. Perfekte Arbeit.
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 05.11.12 11:50
Hallo,
gerd8888 hat folgendes geschrieben : | Man hat hier ein gutes Programm mit dem man Differential und Integral-Rechnungen der Analysis gezeigt bekommt. |
Tranx hat folgendes geschrieben : | Perfekte Arbeit. |
Danke an beide für das Lob.
Die nächste Erweiterung (Nullstellen- und Extremstellenberechnung) ist schon in Arbeit. Evtl. morgen fertig.
Zwischenzeitlich habe ich wieder versucht, das Projekt mit Lazarus zu compilieren. Dieses Lazarus lässt mich einfach nicht los!
Das Übersetzen und Compilieren klappt ganz gut, aber die Kreise der Punkte werden stets transparent und nicht ausgefüllt gezeichnet. Irgendwie komisch.
Im Funktionsinterpreter hat er das Zeichen 'É' angemeckert. Warum?
Außerdem werde ich den Eindruck nicht los, dass die Arithmetikgeschwindigkeit deutlich schlechter als bei Delphi 5 ist.
Lazarus kennt scheinbar auch keine Metafiles, d.h. das Kopieren und Drucken als WMF musste ich erst einmal entfernen.
Und dann die Exe-Größe! In der EE habe ich gefunden, dass Smart-Link eingeschaltet werden soll. Habe ich gemacht. Ergebnis 15 MByte-Exe im Vergleich zu 460 KByte bei Delphi, d.h. ungenügend. Der EE-Hinweis auf upx brachte auch nichts. Nach dem Komprimieren war die Exe nun gar nicht mehr lauffähig.
Fazit für mich: Lazarus kostet zwar nichts, ist aber keine brauchbare Alternative zu Delphi. Ich werde wohl Lazarus deinstallieren. Dann muss ich mich nicht weiter damit herumärgern. Oder weiß jemand Rat?
Ich hänge hier einmal die Lazarus-Texte an, ohne die Exe natürlich! Hoffentlich sind die vollständig. Ich habe noch nicht ganz verstanden, was man weitergeben muss.
Beste Grüße
Mathematiker
Nachtrag: Das Problem mit den nichtausgefüllten Kreisen habe ich gelöst. Bei Lazarus muss stets
Quelltext 1:
| canvas.brush.style:=bssolid; |
aufgerufen werden, wenn zuvor bsclear gesetzt wurde. Eine Zuweisung einer neuen Farbe genügt nicht.
Nachtrag 2: So, es reicht! Lazarus kann mir gestohlen bleiben. Ich nehme jetzt wieder mein "liebes" Delphi 5. Das mag mich!
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Di 06.11.12 14:28
Hallo,
die vorerst letzte Erweiterung des Programms (Rev 11) berechnet und zeichnet nun für die 1.Funktion die Nullstellen und Extrempunkte im Intervall (von, bis), allerdings nur maximal 24 je Art im Intervall.
Damit die Nullstellen und Extrema auch während der Animation ermittelt werden, brauchte ich ein schnelles Iterationsverfahren, das aber "fast immer" konvergiert. Das moderne Brent-Verfahren ( de.wikipedia.org/wiki/Brent-Verfahren) ist dafür sehr gut geeignet.
Ein Problem war noch, die "nullstellenverdächtigen" Stellen zu finden. Berechnet man aufeinanderfolgende Funktionswerte und iteriert, wenn diese unterschiedliche Vorzeichen haben, so findet man die Nullstellen nicht, die gleichzeitig Extremstellen sind.
Deshalb rufe ich das Brent-Verfahren auch auf, wenn die Anstiege aufeinanderfolgender x-Werte unterschiedliche Vorzeichen haben. Eine weitere Schwierigkeit sind auch Polstellen, denke aber, dass auch das funktioniert.
Die Extremstellen werden bestimmt, wenn der Anstieg der Funktion das Vorzeichen ändert. Damit laufe ich auch nicht Gefahr, dass Horizontalwendepunkte fälschlich als Extrema angegeben werden.
Ich habe zwar einige Funktionen getestet, bin mir aber nicht sicher, ob das Verfahren immer korrekt arbeitet. Sollte jemand eine Funktion finden, bei der die ermittelten Nullstellen und Extrema nicht stimmen, dann muss ich noch einmal weiterdenken.
Außerdem kann man jetzt auch den Parameter P und die x-Koordinaten der Punkte A und B über kleine Schalter ändern.
Ein solches Programm ist niemals fertig. Dennoch glaube ich, dass man in der jetzigen Form ganz gut damit arbeiten kann. Außerdem habe ich im Moment auch nur "exotische" Ideen. Analytisches Differenzieren des Funktionsterms zum Beispiel.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Palladin007
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Di 06.11.12 15:54
Wie wärs, wenn du etwas ähnliches mal im dreidimensionalen Bereich mit Vektoren versuchst?
Das wäre doch mal eine Herausvorderung.
Ach ja und wie steht es eigentlich mit der DLL, darf ich darauf noch hoffen?
|
|
|