![]() |
Taschenrechner 2.0 - Der Multi-Rechner
Liste der Anhänge anzeigen (Anzahl: 2)
Also gut hier eine völlig neue Version des Taschenrechnes, die nun in der Mitte des Bildschirms startet und mehrere Funktionen hat Wie : Umfang/Flächeninhalt von : Quadrat, Rechteck
Flächeninhalt vom Dreieck und Prozentrechnen, ich habe bei der Gelegenheit auch gleich das PageControl getestet. Natürlich sind auch die Grundrechenarten vorhanen, und ein XPManifest hab ich auch eingebaut, das verleiht dem Programm einen guten Stil. Auf dem Bild ist leider nur die Seite mit den Grundrechenarten zuseheh. mfg |
AW: Taschenrechner 1.0 - Mein erstes Programm
Willkommen in der DP,
dein Programm ist schonmal ansprechend und einfach aufgebaut, was den Bediener erfreut :) meine Vorschläge:
|
AW: Taschenrechner 1.0 - Mein erstes Programm
Hallo LDProgrammierer,
Da mußt Du wohl noch ein wenig dran arbeiten: 5,3 - 5,4 ist nicht -0,09999999 ! Gruß K-H |
AW: Taschenrechner 1.0 - Mein erstes Programm
Der benutzt halt SAP-Logik! :lol::lol:
|
AW: Taschenrechner 1.0 - Mein erstes Programm
Für ein erstens Programm nicht mal so schlecht. Ich hab auch mal mit nem Taschenrechner angefangen.
Zwei Punkte zum verbessern: -Programm in der Mitte des Bildschirms starten lassen -Kein Label sondern ein Edit Feld zu Ausgabe der Ergebnisse verwenden, das man sie auch kopieren kann. |
AW: Taschenrechner 1.0 - Mein erstes Programm
Zitat:
Gruß K-H |
AW: Taschenrechner 1.0 - Mein erstes Programm
Geht klar ich werde tun was in meiner macht steht um das Programm zu verbessern, ich werde es aber wahrscheinlich erst morgen schaffen eine bessere Version zu präsentieren. mfg LDProgrammierer
|
AW: Taschenrechner 1.0 - Mein erstes Programm
Genau, setze den Rechner in die Bildschirmmitte. Auf meinem Netbook kann ich das Prog nicht testen, da der außerhalb des Bildschirms geöffnet wird und in die Mitte kann ich es nicht ziehen.
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Leere Felder muss du auch abfangen. :wink:
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Da ist aber einer fleißig, hast du gerade Ferien (wenn man fragen darf)? Wir haben sowas ähnliches letztens in Informatik gemacht (nach nem knappen Jahr Delphi) - wobei die meisten das nicht hingekriegt haben:roll:
Mach weiter so:cheer: Ich werd jetzt auch eine Runde weiter programmieren :coder: |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Wenn man ganz krank ist, kann man sich da auch noch einen Matheparser erstellen, also daß man "123 * 456" in ein Editfeld eingibt, das Programm sich dieses zerlegt und dann ausrechnet.
Und falls man dazu auch noch komplett beklopt ist, dann nutzt man nichtmal die komplexen Rechenfunktionen von Delphi und dem PC, sondern macht das auch noch selber (vorallem für Zahlen, welche nicht in einen Integer, Int64, Extended usw. reinpassen). |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Das ist dann aber schon 'ne ganz andere Größenordnung :lol:
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Zitat:
[Edit] also division durch null wird nicht abgefangen und du solltest schauen das man nur Zahlen in die Edits eingeben kann [/Edit] |
AW: Taschenrechner 2.0 - Der Multi-Rechner
![]() und das steckt auch noch intern mit drin ![]() Also es gibt zu diesem Thema schon viele Beiträge. Es wird halt oft in Schulen gelehrt) und es ist auch ein gutes Einführungsbeispiel um sich mit dem Programmieren zu beschäftigen. z.B. einfach mal nach ![]() ![]() ![]() Oftmals liegt der Quellcode mit bei, so daß man etwas "abgucken" kann und auch aus den zugehörigen Threads/Beiträgen/Antworten kann man meist viele Informationen und Tipps rausziehen. Also gut um sich ein paar Anregungen und eventuell andere Lösungswege anzusehn. z.B. läßt sich ein Taschenrechner auch mit DLLs kombinieren. Ein Taschenrechner wird zumindestens in vielen DLL-Tutorials verwendet, wo dann die unterschiedlichen Rechenoperationen quasi jeweils als Plugin vorliegen. Zitat:
- Prüfung von Eingabewerten - Fehlerbehandlung - sogar GUI-Design - uwm. |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Was auch noch ein schönes Addon währe was sich sogar ziemlich leicht machen ließe, währe ein Funktions Drucker
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Überfordert doch den Armen nicht so! :)
Ich finds toll, wenn jemand mit einem einfachen Taschenrechner anfängt und diesen (über evtl. lange Zeit) immer weiter Stück für Stück ausbaut. Da gibt es ganz andere Kandidaten, die keinerlei Programmier-Erfahrung haben, aber mal schnell Half Life 3 programmieren wollen :lol::lol: Von dem her: Nettes Programm, auch wenn es noch ein paar Bugs enthält, wird es sicher stetig wachsen. Weiter so! :thumb::thumb: |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Keine Sorge, für einen "Anfänger" und so als eines der ersten Projekte ist es schonmal nicht schlecht gelungen.
Heißt aber nicht, daß man ihm nicht doch schonmal ein paar Tipps geben kann, mit was er da Stück für Stück drauf aufbauen kann. :-D |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Schau dir mal meine Rechner an, wenn du so weit kommst, dann kann aus dir was werden. :wink:
![]() |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Angeber :P
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Ist mir zu kompliziert :mrgreen:
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
vielleicht sollten zunächst einmal die noch vorhandenen Unebenheiten beseitigt werden.
Es wäre schön wenn der Benutzer einen Hinweis bekäme welches Zeichen er als Dezimalkomma nutzen darf und welches wenn überhaupt als Tausender-Trennzeichen. Wie oben schon erwähnt fehlt der Umgang mit leeren Eingabefeldern, und bei der Prozentrechnung hat es mich ja schon gejuckt mir den Ausgangswert berechnen zu lassen, aber das ging irgendwie so nicht! Gruß K-H @orNEC hübsch (die Rose) |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Zitat:
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
War auch nur scherzhaft gemeint :wink:
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Ich weiß leider überhaupt nicht wie man eine Eingabe abfängt, könnte mir bitte jemand den Source-Code geben? Wäre sehr hilfreich. LDProgrammierer
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Zitat:
![]() Wenn du zB. auf eine Division durch 0 prüfen möchtest, so würde ich bei einer Division prüfen, ob der Divisor 0 ist. (if StrToFloat(edDivisor.Text) = 0 then ...) |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Danke ich werde ausprobieren ob es geht.
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Also ich habe das mit dem dividieren durch null verhindern leider irgenwie nicht geschafft obwohl ich folgenden Code verwendet habe
Delphi-Quellcode:
dann kann er das Programm das öffnen, jedoch zeigt er nicht die Nachricht die ich gezeigt haben wollte, selbst wenn ich durch null dividiere. Wenn ich jedoch folgenden code schreibe :
if strtofloat(edit2.Text)= 0 then ShowMessage ('Durch null darf nicht dividiert werden');
Delphi-Quellcode:
, also das er bei fünf eine Meldung ausgeben, soll und sonst weder Position noch irgendwas anderes am Code verändere erscheint doch eine Meldung. Was soll ich tun? Ich habe das Gefühl das liegt daran, das dann die Meldung floating point division by zero ausgegeben wird. Bitte helft mir :?
if strtofloat(edit2.Text)= 5 then ShowMessage ('Durch null darf nicht dividiert werden');
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Wenn eine Exception ausgelöst wird (hier Division durch 0) wird der nachfolgende Code bis zum Ende des Try Except bzw. Finally Block abgebrochen.
Vorm Berechnen auf 0 prüfen:
Delphi-Quellcode:
if strtofloat(edit2.Text)= 0 then
ShowMessage ('Durch null darf nicht dividiert werden') else Berechnen; |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Zitat:
Delphi-Quellcode:
auch ein Exit? Denn es darf ja nichts mehr geschehen, wenn du durch 0 dividierst.
IF StrToFloat(edDivisor.Text) = 0
Also:
Delphi-Quellcode:
IF StrToFloat(edDivisor.Text) = 0 THEN
begin ShowMessage('..'); Exit; end; |
AW: Taschenrechner 2.0 - Der Multi-Rechner
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Die beiden Funktionen würden sich fast schon aufdrängen.
Alternativ evtl. mit Try Except arbeiten:
Delphi-Quellcode:
€: geht ja um Gleitkommazahlen, Code angepasst
procedure TForm1.Button1Click(Sender: TObject);
var x,y : double; begin y := 0; try x := 1 / y; // ShowMessage wird nie ausgeführt, // da der Code davor eine Exception ausgelöst hat ShowMessage(FloatToStr(x)); except on E:EZeroDivide do ShowMessage('Durch 0 darf nicht dividiert werden.'); end; end; |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Nein ich verwende keine doubles sondern Real :
Delphi-Quellcode:
dann geht es ganz normal weiter
var a, b, c : Real;
Delphi-Quellcode:
usw.
a:= strtofloat(edit1.Text)
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Hallo LDProgrammierer,
was spricht den gegen die Verwendung von Delpi-Tags? Ich habe in diesem Thread hier deine Beiträge schon mehrmals in der Hoffnung korrigiert, dass du es merkst! Ich bitte dich in zukünftigen Beiträgen, bitte die richtigen Tags zu verwenden. |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Zitat:
Verwendung von Real macht aber imho seit den Pentium-Prozessoren mit integriertem Co-Prozessor keinen Sinn mehr. Man könnte also gleich Double mit höherer Genauigkeit nehmen. Meine selbst in der Delphi 5 Hilfe wird schon geschrieben, dass Real im Prinzip veraltet ist. Nachdem ich einfach in die Hilfe geschaut hatte, hab' es wohl mit Real48 verwechselt. Real in aktuellen Version ist identisch mit Double. |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Zitat:
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Real Single ist nur schöne knuffige 4 Byte groß und wenn einem der etwas kleinere Wertebereich und die geringere Genauigkeit ausreicht, dann ist dieser doch erste Wahl?
Ich nehm auch nicht überall Int64 oder gar irgendwas BigInt-Artiges, wenn mit doch ein Integer oder Byteausreichen würde. Float sollte von der Größe mit dem Integer übereinstimmen, also einer Registerbreite. [edit] ach mist, jetzt hab'sch Float mit Real verwechselt |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Zitat:
Zitat:
|
AW: Taschenrechner 2.0 - Der Multi-Rechner
Das hat eher was mit Speicher-/Recordausrichtungen zu tun.
OK, Real = Double (nicht Siglge), aber egal ... Real ist auf jedenfalls kein "alter" Typ ... es ist nur eine "Umleitung", welche aktuell auf Double zeigt. Real48 (in aktuellen Delphis) und das 6 Byte "Real" in alten Delphis ist wirklich obsolete. |
AW: Taschenrechner 2.0 - Der Multi-Rechner
OK endlich habe ich es geschafft ich habe aber den folgenden Code verwendet:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c : Real; begin a:= strtofloat(edit1.Text); b:= strtofloat(edit2.Text); c:= a/b; if b = 0 then ShowMessage('Durch NULL darf nicht dividiert werden!') else begin c:= a/b; Edit3.Text := floattostr(c); end; end; end. |
AW: Taschenrechner 2.0 - Der Multi-Rechner
Das
Delphi-Quellcode:
vor der IF-Abfrage ist wohl noch zuviel.
c:= a/b;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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