Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Taschenrechner in der Schule (https://www.delphipraxis.net/33092-taschenrechner-der-schule.html)

Nothine 4. Nov 2004 21:21

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:

bogohl 5. Nov 2004 14:26

Re: Taschenrechner in der Schule
 
Delphi-Quellcode:
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;
hab diesen Quelltext gefunden. i ist integer und b ist nen string!
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!!!!!

Nothine 5. Nov 2004 17:08

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:

bogohl 6. Nov 2004 13:33

Re: Taschenrechner in der Schule
 
Delphi-Quellcode:
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;
Soll also in einem Panel angezeigt werden!!
Hoffe das reicht jetzt wenn nicht einfach noch mal melden!!!

gordon freeman 6. Nov 2004 14:52

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;)

Nothine 6. Nov 2004 15:25

Re: Taschenrechner in der Schule
 
Delphi-Quellcode:
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;
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.
hoffe ich konnte dir weiterhelfen.

bogohl 6. Nov 2004 19:12

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!!!

Nothine 6. Nov 2004 19:32

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:
function TRechnen.Hexzahl(const I: Integer): string;
begin
  Result := IntToHex(I,8);
end;
das dürfte eigentlich schon reichen :mrgreen:

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:

bogohl 9. Nov 2004 17:13

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

Nothine 10. Nov 2004 14:24

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: Delphi-Referenz durchsuchenExp


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 Uhr.
Seite 2 von 3     12 3      

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