![]() |
Re: Taschenrechner in der Schule
und viel wichtiger als das, es gibt eine wunderschöne such-funktion auf diesem board, da werden sie geholfen :zwinker:
|
Re: Taschenrechner in der Schule
Delphi-Quellcode:
hab diesen Quelltext gefunden. i ist integer und b ist nen string!
function TRechnen.Dualzahl : string;
//------------------------------------------------- begin while i > 0 do begin if (i mod 2) <> 0 then b := b + '1' else b := b + '0'; i := i div 2; end; end; mein erstes problem ist, das ich diese Unit mit meiner Hauptunit verknüpfen muß und weiterhin bemängel er dann immer mein inttohex-Anweisung. von wegen incompatible typen string und integer. Barauche also mal wieder eure hilfe!!!!! |
Re: Taschenrechner in der Schule
es wäre hilfreich, wenn du dein problem ein wenig genauer beschreiben könntest. "von wegen incompatible typen string und integer" hilft hier nicht wirklich weiter solange man den dazu passenden quelltext nicht kennt... also bitte nochmal alles im zusammenhang, dann kann dir geholfen werden
ps: wieso benutzt du in einer funktion externe (bzw. globale) variablen? :gruebel: |
Re: Taschenrechner in der Schule
Delphi-Quellcode:
Soll also in einem Panel angezeigt werden!!
function TRechnen.Dualzahl : string;
//------------------------------------------------- begin while i > 0 do begin if (i mod 2) <> 0 then b := b + '1' else b := b + '0'; i := i div 2; end; end; procedure TRechner.DatenAkktualisierenDual; //steht in meiner Hauptunit //----------------------------------------------------- begin try Rechnen.SetZahl3 (StrToInt(Eingabe1Edt.Text)); except showmessage('Gib Bitte ganze Zahl ein!!'); end; end; procedure TRechner.DezZuDualBtnClick(Sender: TObject); //----------------------------------------------------- begin DatenAkktualisierenDual; ErgebnisPnl.Caption:= StrToFloat( // bin mir nicht sicher was hier rein muß); FensterAkktualisieren; end; Hoffe das reicht jetzt wenn nicht einfach noch mal melden!!! |
Re: Taschenrechner in der Schule
Wieso benutzt du innerhalb der Funktion keine lokale Variable, sondern greifst auf globale Variablen zurück?
Wo wird i benannt? Fehlt in deiner Funktion nicht eine Definition des Rückgabewerts? (z.B. result:=b;) |
Re: Taschenrechner in der Schule
Delphi-Quellcode:
wenn du die prozedur Dualzahl wie oben angegeben mit Parametern arbeiten lässt, sollte es funktionieren, ob du das mit Char(...) oder mit ner if-anweisung machst ist geschmackssache.
function TRechnen.Dualzahl(I: Integer): string;
begin Result := ''; while I > 0 do begin Result := Result + Char(Ord(I mod 2)+48); // Chr(48) = '0' I := I div 2; end; end; procedure TRechner.DezZuDualBtnClick(Sender: TObject); begin DatenAkktualisierenDual; //---Ergebniszuweisung an Panel | Trunc da Ergebnis vom Typ Real ist ErgebnisPnl.Caption := Dualzahl( Trunc(Ergebnis) ); //----------------------------- FensterAkktualisieren; end; hoffe ich konnte dir weiterhelfen. |
Re: Taschenrechner in der Schule
:?: Tut mir echt leid abba kriege ich immer noch nicht hin!!! :?:
Find ich gut das du so viel Gedult mit mir hast Nothine!!!! Stelle dir im Anhang noch mal meinen Rechner kannst ja mal, wenn du Lust hast, gucken wo das Problem liegt!! Kannst dir ja dann bei der Gelegenheit auch das Problem mit meiner Hexadezimalumwandlung angucken!! Wäre nett wenn du mir bescheid gibst was ich schon wieder falsch gemacht habe!! :wall: Vielen vielen DANK!!! |
Re: Taschenrechner in der Schule
(nur mal so als hinweis, ich kann immer nur deinen source durchgucken, was einzelne buttons sind und ähnliches bleibt mir verwehrt da mein delphi5 deine projekte nicht mag)
also ich weiß ja nich was du da vorher bei der darstellung als HexZahl versucht hast, es sah aber definitiv merkwürdig aus... also erstmal möchte ich dich bitten irgendwann anzufangen deine prozeduren mit parametern auszustatten... dann zu deiner Hexzahl-funktion:
Delphi-Quellcode:
das dürfte eigentlich schon reichen :mrgreen:
function TRechnen.Hexzahl(const I: Integer): string;
begin Result := IntToHex(I,8); end; sollten sonst noch probleme auftauchen wäre ich dir sehr verbunden wenn du GENAU schilderst was das problem ist, da ich es (wie bereits erwähnt) nicht immer nachvollziehen kann (z.B. was und wo der DezZuHexBtn-Button ist und solche scherze) und du musst mir nicht danken, jeder hat mal klein angefangen, außerdem hab ich grad nix besseres zu tun :mrgreen: :wink: |
Re: Taschenrechner in der Schule
Hat jetzt "alles" hingehauen!!!
Anschließend wollte ich dann noch den log , ln und e Funktionen erstellen. Sah auch alles eigentlich recht leicht aus nur hat nicht funktioniert!!! Wäre also voll nett wenn mir hier nochmal jemand helfen könnte!!! Sprich, allgemein gelößt wäre nett! :-D |
Re: Taschenrechner in der Schule
Delphi-Quellcode:
:?:
// Ln
Ergebnis := Ln(Zahl3); //oder Zahl1 oder wie auch immer // Log uses Math; ... Ergebnis := Log10(Zahl3); //s.o. die umsetzung von e (so wie im standart-windows-taschenrechner) ist etwas schwieriger, da erwarte ich dass du dir erst mal selber gedanken machst, nur soviel: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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