AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Rechenprogramm
Thema durchsuchen
Ansicht
Themen-Optionen

Rechenprogramm

Ein Thema von Amateurprofi · begonnen am 31. Mai 2009 · letzter Beitrag vom 7. Okt 2020
Antwort Antwort
Seite 1 von 2  1 2      
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.100 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Rechenprogramm

  Alt 13. Apr 2018, 09:01
Zwei Beobachtungen nach dem Programmstart (nur Kleinigkeiten):

1. In der Standardgröße nach dem erstmaligen Programmstart sind nicht alle Einträge in der Statusleiste (unten) sichtbar. Erst beim Vergrößern des Formulares offenbaren sich mehr.

2. "Anzahl Ziffern vor dem Eingabecaret" ist leer, obwohl die Anzahl 0 gemeint ist.
Danke.

Zu 1.
Bei der Breite des Formulars wurde/wird nur sichergestellt, dass das Eingabefeld und das Ausgabefeld je min 100 Pixel breit sind und dass das Menu einzeilig bleibt.
Ich hab das so geändert, dass beim ersten Programmstart alle Panels der StatusBar sichtbar sind.
Es bleibt aber weiter so, dass das Fenster manuell schmaler gemacht werden kann. Bei weiteren Starts sollte dann die Breite so sein, wie sie beim Schließen des Formulars war.

Zu 2.
Hab ich geändert. Lag daran, dass diese Anzeige nur im OnSelectionChange des Eingabefeldes (Ist ein TRichEdit) geändert wurde.
Jetzt auch im OnCreate des Formulars.

Geänderte Version (3.3.1.1) in #1.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Rechenprogramm

  Alt 13. Apr 2018, 09:40
Ich habe noch ein wenig herumprobiert, der Fehler den ich bekomme passiert wenn man zu schnell TextToSpeech mit Englisch On/Off aufruft, über das Menü. (Fehler kommt nur wenn man übers Menü bedient, Knöpfe arbeiten sauber.)

Da ist auch ein mini-Fehler drinn, vielleicht ist es ja auch so gedacht:
Beim Vorlesen, erzählt die Stimme korrekt Vorkommazahlen, aber ein Komma wird als Punkt gelesen und Nachkommastellen werden einzeln gelesen und nicht als ein Wert.
Also aus 123,45 wird Einhundertdreiundzwanzig Punkt Vier Fünf. Aber super Job mit den Vorkommazahlen!

Englische Sprache klingt Deutsch, ich glaube Sapi 5 hat da mehrere Aus-/Sprachen integriert.

Auch eine mini-Unzugänglichkeit, wenn man Werte mit Tausendermarkierungen einfügt, kann Dein Programm nichts mit dem Wert anfangen. Beispiel: Wenn man "100.000.000,00" eingibt/einfügt, sagt der es ist ein falsches Datum und andersrum "100,000,000.00" = Ende erwartet.

Dein Hilfesystem find ich mehr als gelungen, es ist "Yeah!"
Auch die zwei verschieden Arten wie man sich einen Fehler angucken kann = 1A gelöst, Hut ab!
Offene Wünsche zu diesem Projekt hab ich keine, nur eventuell noch ein mini-Goodie, wenn man bei Fehler auf's [i] klickt, hast du ja alles richtig gemacht, alles warum Fehler ausgelöst wurde wird angezeigt, vielleicht kann man da noch eine Zeile einfügen mit einem Vorschlag wie man es richtig machen könnte oder was für eine Eingabe Dein Programm an dieser Stelle erwartet, so als Beispiel-Text.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#3

AW: Rechenprogramm

  Alt 13. Apr 2018, 09:44
Zitat:
und Nachkommastellen werden einzeln gelesen und nicht als ein Wert.
Ist es nicht sogar mathematisch korrekt jede Zahl nach dem Komma einzeln aufzusagen?

(1,50)
Eins Komma fünf null ist soweit ich weiß richtig.
Eins Komma fünfzig nicht.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Rechenprogramm

  Alt 13. Apr 2018, 10:05
Was hat Ausprache mit Mathe am Hut? Wo ich herkomme werden Nachkommazahlen als ein Wert gesprochen, also aus 1,50 wird "Eins Komma Fünfzig" und nicht "Eins Komma Fünf Null". Sprechen bei euch Kassierer im Supermarkt echt so?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#5

AW: Rechenprogramm

  Alt 13. Apr 2018, 10:10
Es ist ein Rechenprogramm und ich erwähnte lediglich, dass ich denke "Eins komma fünf null" sei korrekt.
So habe ich es gelernt. Aber jeder lernt anders. Dennoch bin ich mir sicher, dass ein Doktor der angewandten Mathematik (mein ehemaliger Lehrer) weiß wovon er redet.

Ergo denke ich, dass das TextToVoice richtig arbeitet.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Rechenprogramm

  Alt 13. Apr 2018, 10:27
Ok, ein Professor der Mathematik sagt Nachkommastellen einzeln auf da er auch meist mehr als zwei Nachkommastellen hat.
Also wenn der Dir "Pi" aufschlüsselt, sagt er logischerweise alles einzeln.
Wiederum wenn man Einkaufen geht und nur zwei Nachkommastellen sind, wer bitteschön (abgesehen von Dir?), spricht denn Nachkommastellen noch einzeln aus? Selbst dein Prof. (ohne das ich Ihn kenne) sagt nicht er habe für "Eins Komma Fünf Null" Euro eingekauft sondern für "Eins Komma Fünfzig", oder ist der echt so abgedreht, dann nehm ich alles zurück.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Rechenprogramm

  Alt 13. Apr 2018, 10:33
Selbst dein Prof. (ohne das ich Ihn kenne) sagt nicht er habe für "Eins Komma Fünf Null" Euro eingekauft sondern für "Eins Komma Fünfzig", oder ist der echt so abgedreht, dann nehm ich alles zurück.
Kenn jetzt den Prof. auch nicht, aber "Eins Komma Fünfzig" wird er bestimmt nicht sagen, eher so "Eins-Fünfzig" oder "Eins-Fuffzich" wenn er aus Köln kommt .
Ralph
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Rechenprogramm

  Alt 13. Apr 2018, 10:24
Was hat Ausprache mit Mathe am Hut? Wo ich herkomme werden Nachkommazahlen als ein Wert gesprochen, also aus 1,50 wird "Eins Komma Fünfzig" und nicht "Eins Komma Fünf Null". Sprechen bei euch Kassierer im Supermarkt echt so?
Das ist aber auch nur bei 2 Nachkommastellen im Zusammenhang mit bestimmten Maßeinheiten so, also

Ein Euro Fünzig (Cent)
Drei Meter Achtundsiebzig (Zentimeter)

Sobald man das Komma selbst mitspricht, bin ich es gewohnt, dass die einzelnen Zahlen gesprochen werden, also

Eins Komma Fünf Null
Drei Komma Sieben Acht
Sebastian
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: Rechenprogramm

  Alt 13. Apr 2018, 13:39
Was hat Ausprache mit Mathe am Hut? Wo ich herkomme werden Nachkommazahlen als ein Wert gesprochen, also aus 1,50 wird "Eins Komma Fünfzig" und nicht "Eins Komma Fünf Null". Sprechen bei euch Kassierer im Supermarkt echt so?
Nun, abgesehen davon, daß die 0 redundant ist, was vermutlich jeder hier weiß, sprechen die Kassierer (beiderlei Geschlechtes) doch vielmehr "Ein Euro fünfzig" oder, wenn sie eines schnodderig-ungepflegten Deutsches sich bedienen, "Ein Euro fuffzig".
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.100 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Rechenprogramm

  Alt 13. Apr 2018, 15:37
Ich habe noch ein wenig herumprobiert, der Fehler den ich bekomme passiert wenn man zu schnell TextToSpeech mit Englisch On/Off aufruft, über das Menü. (Fehler kommt nur wenn man übers Menü bedient, Knöpfe arbeiten sauber.)

Da ist auch ein mini-Fehler drinn, vielleicht ist es ja auch so gedacht:
Beim Vorlesen, erzählt die Stimme korrekt Vorkommazahlen, aber ein Komma wird als Punkt gelesen und Nachkommastellen werden einzeln gelesen und nicht als ein Wert.
Also aus 123,45 wird Einhundertdreiundzwanzig Punkt Vier Fünf. Aber super Job mit den Vorkommazahlen!

Englische Sprache klingt Deutsch, ich glaube Sapi 5 hat da mehrere Aus-/Sprachen integriert.

Auch eine mini-Unzugänglichkeit, wenn man Werte mit Tausendermarkierungen einfügt, kann Dein Programm nichts mit dem Wert anfangen. Beispiel: Wenn man "100.000.000,00" eingibt/einfügt, sagt der es ist ein falsches Datum und andersrum "100,000,000.00" = Ende erwartet.

Dein Hilfesystem find ich mehr als gelungen, es ist "Yeah!"
Auch die zwei verschieden Arten wie man sich einen Fehler angucken kann = 1A gelöst, Hut ab!
Offene Wünsche zu diesem Projekt hab ich keine, nur eventuell noch ein mini-Goodie, wenn man bei Fehler auf's [i] klickt, hast du ja alles richtig gemacht, alles warum Fehler ausgelöst wurde wird angezeigt, vielleicht kann man da noch eine Zeile einfügen mit einem Vorschlag wie man es richtig machen könnte oder was für eine Eingabe Dein Programm an dieser Stelle erwartet, so als Beispiel-Text.
Zitat:
Ich habe noch ein wenig herumprobiert, der Fehler den ich bekomme passiert wenn man zu schnell TextToSpeech mit Englisch On/Off aufruft, über das Menü. (Fehler kommt nur wenn man übers Menü bedient, Knöpfe arbeiten sauber.)
Verstehe nicht so richtig, wie du das meinst. Ich vermute, du hast während des Vorlesens die Sprache umgestellt. Kannst du etwas genauer erklären was du genau gemacht hast.

Zitat:
Da ist auch ein mini-Fehler drinn, vielleicht ist es ja auch so gedacht:
Beim Vorlesen, erzählt die Stimme korrekt Vorkommazahlen, aber ein Komma wird als Punkt gelesen
In diesem Programm wird der Punkt als Dezimaltrennzeichen verwendet.
Stell mal im Dialog für lange Zahlen den Mauszeiger in das obere Eingabefeld und drücke dann Alt-F1.

Code:
und Nachkommastellen werden einzeln gelesen und nicht als ein Wert.
Also aus 123,45 wird Einhundertdreiundzwanzig Punkt Vier Fünf. Aber super Job mit den Vorkommazahlen!
Na ja, das Thema ist ja nun ausgiebig diskutiert worden.
Recht hast du, dass im Sprachgebrauch, z.B. an der Kasse "eins fünfzig" gesagt wird.
Aber im Thread sagst du auch "Also wenn der Dir "Pi" aufschlüsselt, sagt er logischerweise alles einzeln."
Warum ist das logisch? Soll man denn besser "drei komma eins vier" sagen, statt "drei komma vierzehn".
Ich denke es ist gar nicht so einfach, eine klare Definition zu erstellen, wann man den Nachkommateil zu einer Zahl zusammenfasst und wann nicht.
Ich sehe das so:
Bei Geldbeträgen oder z.B. bei Längenangaben (in m) sagt man "eins fünfundfünfzig" und meint "1 Euro und 55 Cent" bzw. "1 Meter und 55 Zentimeter".
Allerdings würde ich für 1.333 km nie "eins dreihundertdreiunddreißig" und für 1.33 km auch nie "eins dreiunddreißig" sagen.
Da das Programm nicht weiß, ob der User gedanklich an der Kasse steht, ist es nicht möglich zu entscheiden wann die Ziffern einzeln zu sprechen sind und wann nicht. Man könnte natürlich eine Option einbauen dass z.B. bei zwei Nachkommastellen diese zu einer Zahl zusammengefasst werden. (Hab ich aber nicht vor)

Zitat:
Englische Sprache klingt Deutsch, ich glaube Sapi 5 hat da mehrere Aus-/Sprachen integriert.
Ich denke das hängt von der Stimme ab, mit der du etwas vorlesen lässt.
Wenn du dir einen englischen Text mit einer deutschen Stimme vorlesen lässt, na klar klingt die deutsch.

Zitat:
Auch eine mini-Unzugänglichkeit, wenn man Werte mit Tausendermarkierungen einfügt, kann Dein Programm nichts mit dem Wert anfangen. Beispiel: Wenn man "100.000.000,00" eingibt/einfügt, sagt der es ist ein falsches Datum und andersrum "100,000,000.00" = Ende erwartet.
Würdest du es auch als eine "mini-Unzugänglichkeit" bezeichnen, wenn du in Delphi schreibst A:=100.000.000,00 und das dann nicht kompiliert wird?

Das ist keine Unzulänglichkeit und auch keine mini-Unzulänglichkeit sondern absolut korrekt.
Lies mal in der Hilfe, wie der Begriff Zahl für dieses Programm definiert ist.
Menu > Hilfe > Hilfe
Und in der Hilfe: Syntax von Ausdrücken > Zahl > Dezimalzahl
Zitat Anfang:
Eine Dezimalzahl kann sein:
Eine Folge von Ziffern. (Beispiel 12345)
Eine Folge von Ziffern, gefolgt von einem Dezimalpunkt gefolgt von Ziffern. (Beispiel 123.45)
Ein Dezimalpunkt, gefolgt von Ziffern. (Beispiel .45) (Nur im Normal-Modus)
Der Zahl kann ein Vorzeichen vorgestellt sein. (Beispiel -12345)
Der Zahl kann ein Skalierungsfaktor folgen. Dieser besteht aus einem 'E' oder 'e', gefolgt von einer ggfs. vorzeichenbehafteten, Ziffernfolge. Beispiele (1.45E2, 1.45E-2)
Zitat Ende.

Bei Deinen Eingaben passiert folgendes

"100.000.000,00"
Der Parser findet Ziffern Punkt Ziffern Punkt.
Nach dem zweiten Punkt ist für den Parser klar, dass das ein Datum sein muss, weil es keinen anderen gültigen Wert mit dieser Syntax gibt. Also wird versucht, den Text als Datum zu lesen und es wird bemerkt, dass die erste Ziffernfolge (100) nicht als Nummer eines Tages im Monat interpretiert werden kann. Also Fehlermeldung mit Fehlerstelle hinter der ersten 100.

"100,000,000.00"
Der Parser findet Ziffern Komma.
Schon hier ist klar, dass es keinen gültigen Ausdruck mit dieser Syntax gibt aber das Werfen der Fehlermeldung wird der Routine zur Auswertung von Ausdrücken überlassen.
Die liest dann eine Zahl (100) und erwartet danach entweder das Ende der Zeile oder einen Operator wie "+", "-", "*", "/" etc..
Gefunden wird ein Komma, dass hier nicht stehen sollte.
Also Fehlermeldung bei der das Komma hinter der ersten 100 als Fehlerstelle markiert ist.

Zitat:
wenn man bei Fehler auf's [i] klickt, hast du ja alles richtig gemacht, alles warum Fehler ausgelöst wurde wird angezeigt, vielleicht kann man da noch eine Zeile einfügen mit einem Vorschlag wie man es richtig machen könnte oder was für eine Eingabe Dein Programm an dieser Stelle erwartet, so als Beispiel-Text.
Wer ich mir bei Gelegenheit mal anschauen - wird sicher nicht in allen Fällen machbar sein, aber versuchen kann man das ja mal.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz