Autor |
Beitrag |
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Do 22.11.12 21:58
Hallo,
um meinen Ruf als Mathe-Nerd gerecht zu werden, ein wirklich kleines, aber weltveränderndes Programm:
Eine der wichtigsten Errungenschaften des Menschen ist seine Fähigkeit, die Zeit zu messen. Vor über 4000 Jahren teilten die Babylonier den Tag in 24 gleiche lange Abschnitte. Später wurden die 60 Minuten und 60 Sekunden eingeführt.
Insbesondere einem Mathematiker gefällt dies gar nicht, denn wir haben ein Dezimalsystem. Aus diesem Grund mache ich den Vorschlag, die Zeit zu reformieren.
Die Mathematiker-Uhr hält sich streng an die Mathematik:
Erstens wird jede Mathematikerstunde in je 100 Mathematikerminuten mit wiederum jeweils 100 Mathematikersekunden geteilt. Die 100 wird als Quadrat von 10 gewählt, da die Einteilung mit je 10 Einheiten die Mathematikersekunden sehr lang machen würde.
Zweitens wird der Tag ebenfalls in 100 Mathematikerstunden unterteilt. Damit ist gewährleistet, dass nicht zwei verschiedene Skalen an der Uhr abzulesen sind wie bisher.
Drittens wird der Nullpunkt der Uhr entsprechend den Regeln des Koordinatensystems nach rechts und nicht nach oben verlegt.
Viertens läuft der Zeiger in mathematisch positiver, d.h. korrekter Richtung, also entgegen der bisher üblichen Uhrzeigerrichtung.
Die sensationellen Vorteile liegen klar auf der Hand :
Zum einen kann man mit dieser Uhr noch viel genauere Zeiträume exakt angegeben, zum anderen müsste die riesige Gruppe von mathematisch Interessierten sich nicht ständig umstellen, sondern könnte immer das Dezimalsystem verwenden.
Schüler, Studenten und Lehrer könnten endlich aufatmen. Schaut Euch an, wie schnell dann 45 oder 90 Minuten vergehen!
Und für Programmierer, ihr kennt das, würde es auch deutlich einfacher – die Zahlen 24 und 60 sind wirklich sehr behindernd.
Natürlich kann es sein, dass Euch die 100 als Grundzahl z.B. aus persönlichen Gründen nicht gefällt. Kein Problem: An den kleinen Pfeilschaltern könnt Ihr Eure individuelle Grundzahl wählen.
Es ist jetzt 91 Uhr 42 Minuten und 83 Sekunden!
Beste Grüße
Mathematiker
Rev 1: Die Variablen haben jetzt einigermaßen vernünftige Namen.
Rev 2: Diese neue Version basiert auf dem durch Tranx stark verbesserten Programm (siehe weiter unten). Zusätzlich kann das Bild als Vektorgrafik kopiert werden. Die Fenstergröße ist veränderbar.
Rev 3: Stundenzeiger läuft entsprechend der Minuten anteilig mit.
Rev 4: In dieser Variante kann über das Menü eine zweite Uhr mit wahlweise Weltzeit oder Sternzeit zu- und abgeschaltet werden. Kopieren erfolgt jetzt ebenfalls über das Menü, außerdem ist der Sekundenzeiger gleitend. Die geografische Länge für die Sternzeit des eigenen Ortes kann gewählt werden.
Auf Wunsch können die Zeiger auch wieder in der "altmodischen", d.h. nicht mathematischen Richtung laufen.
Rev 5: Anzeige der lokalen Ortszeit. Berücksichtigung der Sommerzeit bei Anzeige der Weltzeit.
Rev 6: Bei direkter Eingabe von 0 als Grundzahl stürzte das Programm schlimm ab. Ist jetzt beseitigt. Enschuldigung für den Fehler.
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Zuletzt bearbeitet von Mathematiker am Mo 25.03.13 21:15, insgesamt 9-mal bearbeitet
Für diesen Beitrag haben gedankt: Anika, Jann1k, kaufmax, lenamarkert, ub60
|
|
Palladin007
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Do 22.11.12 22:14
Du hast aber auch echt Langeweile, oder?
Wie kommt man auf sowas?
|
|
ub60
Beiträge: 762
Erhaltene Danke: 127
|
Verfasst: Do 22.11.12 22:43
Großes Lob und vielen Dank für das schicke Programm und die tollen Ideen, die Du immer im Forum verbreitest.
So gut die Programmideen sind, so gruselig sind wieder mal die Variablendeklarationen:
Delphi-Quelltext 1: 2: 3:
| h,m,s,sek,a,x,y,x2,b,cc,d,e,f,q,st:integer; k1,k:string; i,j:real; |
Ok, die ersten 3 sind noch machbar, aber dann ...
Ich wünsche Dir (und uns) trotzdem weiter so schicke Ideen.
ub60
PS: Es gibt Länder, da wird man sofort verhaftet, wenn man i nicht für Integer nimmt .
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Do 22.11.12 22:52
Hallo,
Palladin007 hat folgendes geschrieben : | Du hast aber auch echt Langeweile, oder? |
Ich hatte wirklich Langeweile. Eigentlich müsste ich den "Müll" korrigieren, der mir wieder vorgesetzt wurde (ok, ich hab's unterrichtet!), ich hatte aber einfach keine Lust!
ub60 hat folgendes geschrieben : | So gut die Programmideen sind, so gruselig sind wieder mal die Variablendeklarationen: |
Ich weiß und ich schäme mich auch wirklich. Ich verspreche, mich zu bessern. Hoffentlich verspreche ich mich jetzt nicht.
ub60 hat folgendes geschrieben : | Es gibt Länder, da wird man sofort verhaftet, wenn man i nicht für Integer nimmt . |
Wenn wir das einführen, muss ich mit über 50% meiner Schüler im Knast sitzen. Das ist gruselig.
Beste Grüße
Mathematiker
Nachtrag: Ich versuche mich ja zu bessern. In der Revision 1 haben die Variablen jetzt einigermaßen vernünftige Namen.
_________________ 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: Fr 23.11.12 00:02
Tja, wenn der Lehrer das als Müll bezeichnet, was er den Schülern bei bringt... xD
i für integer?
Wo habt ihr das denn her? Ist mir völlig egal, ich benenne meine Variablen, so wie ich es am besten verstehe
Und das i steht grundsätzlich für irgendeinen Index in einer Schleife. Wenn die Schleifen verschachtelt sind, numeriere ich das i durch (i1, i2, i3, ...)
Kreativ, was?
|
|
Tranx
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Fr 23.11.12 06:26
Palladin, damit hast Du aber auch gleich das I als Ganzzahl definiert, denn in Delphi gibt es bekanntlich - oder ich habe da was nicht mitbekommen - keine Schleifen mit nicht abzählbaren (Ganzzahl) Variablen.
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
ub60
Beiträge: 762
Erhaltene Danke: 127
|
Verfasst: Fr 23.11.12 09:03
|
|
PantherX
Beiträge: 43
Erhaltene Danke: 7
Win XP, Win 7
Delphi 7, VS2010 C#
|
Verfasst: Fr 23.11.12 10:22
Erst einmal Respekt für die ganze Arbeit die in deiner Programmwelle, die aktuell das Forum durchläuft, steckt.
Ich wünschte es gäbe mehr Lehrer die genauso motiviert sind wie du. Dann wäre die Geschichte mit der Pisa-Studie endlich vom Tisch
Zum Thema:
Gibt es so eine Zeiteinteilung nicht bereits?
Industriezeit?
Da gibt es doch Industrieminuten und Industriesekunden die jeweils bis 100 gehen.
_________________ Grafische Oberflächen sind wie U-Boote. Kaum macht man ein Fenster auf, fangen die Probleme an!
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Fr 23.11.12 10:26
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Jann1k
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Fr 23.11.12 10:35
Also ich muss jetzt auch mal ein Lob an dich aussprechen. Viele deiner hier vorgestellten Programme schrecken mich schon allein wegen der grundlegenden Problemstellung ab (wo kriegt man solche Ideen her?), aber das hier finde ich mal äußerst praktisch, kann man so eine Wanduhr bei dir bestellen oder muss ich jetzt meinen Monitor an die Wand hängen?
Weiter so!
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Fr 23.11.12 10:40
Vielleicht könnte man eine Druckfunktion für das Ziffernblatt einbauen. Dann könnte man eine bestehende Uhr mit dem neuen Ziffernblatt bekleben. Allerdings müsste dann die 0 wieder nach oben wandern und die Uhr müsste im Uhrzeigersinn laufen. Der 0 könnte ggf. rechts bleiben, wenn man die Uhr dann um 90° verdreht aufhängt.
Vielleicht wäre ja auch noch eine speparate Einstellmöglichkeit für die Anzahl Stunden/Tag und Anzahl Minuten / Stunde möglich. Ich hätte nämlich gern, dass mein Tag 10 Stunden hat und jede Stunde 100 Minuten. Sonst rast die Zeit immer so.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
PantherX
Beiträge: 43
Erhaltene Danke: 7
Win XP, Win 7
Delphi 7, VS2010 C#
|
Verfasst: Fr 23.11.12 11:15
_________________ Grafische Oberflächen sind wie U-Boote. Kaum macht man ein Fenster auf, fangen die Probleme an!
|
|
papa69
Beiträge: 79
Erhaltene Danke: 23
Win 10, Ubuntu
C#, Java, C
|
Verfasst: Fr 23.11.12 11:21
*...das "Teil" als Gadget, und ich würde es wohl auf dem PC haben...*
Da ich eine 40-h-Woche habe, freue ich mich (nach erfolgter Einführung der M-Uhr) jetzt schon riesig auf die Freizeit, die ich dann mit meinen Kids verbringen darf/kann/soll. :-/
_________________ Daniel Bauer
... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...
|
|
Tranx
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Fr 23.11.12 11:54
Kleine Änderungen:
Benutze doch Spinedit als Möglichkeit der Auswahl der Grundzahl. Und ich habe gleich auch noch die Anzahl der Stunden variierbar gemacht.
Die Länge der Stunden-, Minuten- und Sekunden-Anzeige habe ich über zwei Variable gesteuert: Stundenlaenge und MinSekLaenge. Und die "Stringfunktion" "rechts" eingeführt, siehe Quelltext.
Auch habe ich den Teiler variabel gestaltet, siehe Case-Konstrukt in der Funktion. (die aktuielle Version hat einen Fehler in der anzeige ausgemerzt. Die Stunden stimmten nicht.)
Hoffe, das ist in Ordnung. Ansonsten, die Idee ist faszinierend, Mathematiker.
Einloggen, um Attachments anzusehen!
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 23.11.12 16:04
Das Erbe des babylonischen Sexagesimalsystem ist in der Tat störend (auch bei der Winkeleinheit Grad inkl. seinen Untereinheiten), doch schleppen wir ein anderes, ähnliches Phänomen auch schon seit Jahrzehnten mit uns umher: Das Dezimalsystem, was seine Nachteiligkeit in der Welt der Informatik zeigt.
Die Teilung des Tages (konkret: seiner zeitlichen Länge) mithilfe des Sexagesimalsystems in die kleinste Einheit "Sekunde" hat allerdings einen großen Vorteil: Sie erzeugt eine Zeiteinheit, die man sich vorstellen kann, die mit hinreichnender Genauigkeit von den allermeisten Menschen auch und gerade ohne Uhr reproduziert werden kann und die sogar einem internen, aber wahrnehmbaren Zeitmesser entspricht: Der Frequenz des Herzschlages (Herzrhythmus) im Ruhezustand!
|
|
Palladin007
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Fr 23.11.12 16:35
Tranx hat folgendes geschrieben : | Palladin, damit hast Du aber auch gleich das I als Ganzzahl definiert, denn in Delphi gibt es bekanntlich - oder ich habe da was nicht mitbekommen - keine Schleifen mit nicht abzählbaren (Ganzzahl) Variablen.
|
Tja, aber ich hab mit Delphi nix am Hut und in C# kann man einen Index von absolut jedem Typ verwenden.
Ist ja nicht gesagt, wie die for-Schleife genau aufgebaut ist, nur die grobe Grundstruktur:
C#-Quelltext 1:
| for ([Index für die Schleife bestimmen]; [Bedingung, wann die Schleife endet]; [Aktion, die nach jedem Durchlauf ausgeführt wird]) { } |
Als Index-Variable kann ich jeden Typ verwenden.
Als Bedingung kann ich alles einsetzen und wenn ich dort eine Methode mit x Parametern einbaue.
Als Aktion kann ebenfalls alles angegeben werde, auch wieder eine Methode, oder ich überschreibe ein paar Operatoren.
Ob das so sinnvoll ist, kann ich nicht sagen, war noch nicht in der Situation, das zu nutzen
So, der kleine Exkurs zu C# musste sein ^^
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 23.11.12 17:00
Hallo Delphi-Fans,
ich hätte nie gedacht, dass mein kleines Programm so viel Reaktion hervorruft. Es ist schön. Danke Euch allen.
Zu einigen möchte ich etwas sagen, alle geht nicht, einfach zuviel.
PantherX hat folgendes geschrieben : | Gibt es so eine Zeiteinteilung nicht bereits? Industriezeit? |
Die Industriezeit kannte ich noch nicht.
Aber ist es nicht so? Alle großen Dinge werden zweimal erfunden . Warum bin ich immer der zweite?
Jann1k hat folgendes geschrieben : | wo kriegt man solche Ideen her? |
Weiß ich nicht. Ideen habe ich noch viele, jedoch reicht die Zeit nicht, alles umzusetzen. Ich denke, einiges schaffe ich aber noch.
Nersgatt hat folgendes geschrieben : | Vielleicht könnte man eine Druckfunktion für das Ziffernblatt einbauen. |
Werde ich tun (als Kopierfunktion), allerdings nicht in mein Programm, sondern in der tollen Weiterentwicklung von Tranx. Wenn er einverstanden ist. Nach dem Kopieren als Vektorgrafik kannst Du das dann in einem richtigen Grafikprogramm ordentlich ausdrucken.
Delphi-Laie hat folgendes geschrieben : | doch schleppen wir ein anderes, ähnliches Phänomen auch schon seit Jahrzehnten mit uns umher: Das Dezimalsystem, was seine Nachteiligkeit in der Welt der Informatik zeigt. |
Stimmt schon, wir haben aber 10 Finger und nicht 16.
Ich stelle mir gerade vor, um wieviel schneller man Programmieren/Tippen könnte mit 8 Fingern je Hand.
Tranx hat folgendes geschrieben : | Und ich habe gleich auch noch die Anzahl der Stunden variierbar gemacht. ... Hoffe, das ist in Ordnung. |
Ich habe mir Dein Programm angesehen und kann nur sagen: super. Damit ergeben sich noch mehr Möglichkeiten für die Zeitmessung.
Und das ist auf jeden Fall in Ordnung. Wenn der Quelltext dabei ist, kann jeder das Programm verbessern und Dein Vorschlag ist doch hervorragend. Ich würde gern in Deinen Text noch eine Kopierfunktion einbauen. Ich hoffe, Du bist einverstanden.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Tranx
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Mo 26.11.12 06:19
Open Source ist für mich Open Source. Da kann jede/r mit machen, was er/sie will. Es ist dann ein Gemeinschaftsprojekt. Das ist doch gut so. Entschuldigt, wenn ich mich so spät melde, aber da ich umgezogen bin, habe ich noch kein Internet zuhause. Das wird leider erst ab dem 4.12. soweit sein. Was die solange brauchen - keine Ahnung. Vielleicht müssen sie erst die Cu-Leitung produzieren. Da ja dauernd irgendwelche Metalldiebe rumschleichen, ... haben sie wohl keine Ressourcen mehr.
_________________ 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 26.11.12 10:02
Hallo,
ich habe eine weitere, kleine Änderung in Rev 3 eingebaut.
Der Stundenzeiger läuft jetzt auch in dieser Version entsprechend der Minuten anteilig mit.
Es ist jetzt 4 Uhr 17 Minuten 95 Sekunden nach Mathematikerzeit.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Horst_H
Beiträge: 1652
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Mi 28.11.12 12:17
Hallo,
Ich dachte das ständige komplette neuzeichnen des Ziffernblattes sei nicht effektiv und sann auf Abhilfe. Mit Hilfe von wine unter Linux lief es mit starker CPU Belastung.
Nun speichere ich zwei Bilder, da es sonst zu sehr flackert.
Einmal ein Ziffernblatt und in eine Kopie davon zeichne ich die Zeiger und anschliessend kopiere ich dies auf die Paintbox.
Lazarus hat mich schwer geärgert
Wer kommt auf die Idee, das FillRect, um das Ziffernblatt bei Änderung der Größe zu löschen, erst dann funktioniert, wenn zuvor irgendetwas anderes gezeichnet wurde, so zum Beispiel ein line(0,0,0,0), was wohl selten dämlich ist.
Ein RadioButton funktioniert auch nicht normal, onChange funktioniert genau einmal, also nutze ich jetzt mousedown.
Wahrscheinlich gibt es ein Bug-fix zur Variante 1.0.
Jetzt läuft die Uhr auf Wunsch auch in Gegenrichtung.
Eigentlich fehlt noch ein Spinedit, um die Stellung der Stunde Null zu variieren, die ich momentan als phiOffset Konstante eingebaut habe.
Vielleicht könnte man jetzt mehrere Uhren parallel laufen lassen, a la Weltzeit.Da fehlt also von ein Zeit-Offset.
Gruß Horst
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: Mathematiker
|
|
|