Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Hoch Rechnungsprogramm (https://www.delphipraxis.net/164525-hoch-rechnungsprogramm.html)

boxer123 16. Nov 2011 18:45


Hoch Rechnungsprogramm
 
Also das programm soll folgendes tun. zb. die zahl 112, der computer soll dann ausrechen

1 hoch 3, 1 hoch 3, 2 hoch 3

Und dann soll er das ergebnis in ein edit ausgeben.

Ich habe ein ansatz komm aber nicht weiter
Delphi-Quellcode:
var zahl1,zahl2,zahl3,i,:integer;
begin
  x:=strtoint(edit1.text);
    zahl1:= (x mod 10) div 1;
    zahl2:= (x mod 100) div 10;
    zahl3:= (x mod 1000) div 100;
  for i:= 1 to 3 do

Bjoerk 16. Nov 2011 19:05

AW: Hilfe bei einem programm
 
Wie meinen ?? :gruebel:

boxer123 16. Nov 2011 19:08

AW: Hilfe bei einem programm
 
also das program soll diese zahl die der benutzer eingibt z.b 481 dann soll er die zahl in ziffern zerlegen und dann jeder einzelne zahl hoch 3 ausrechnen und dann zum schluss alles addieren

himitsu 16. Nov 2011 19:20

AW: Hilfe bei einem programm
 
Ich würde mir mal die Unit Math ansehn und was für Funktionen sie mir bietet.

wie z.B. Delphi-Referenz durchsuchenPower


Wobei du "x hoch 3" notfalls auch hättest in die Grundrechenarten ( + - * / ) zuerlegen und somit auch ohne weitere Funktionen ausrechnen könntest.

Romiox 16. Nov 2011 19:22

AW: Hilfe bei einem programm
 
Delphi-Quellcode:
var i, Ergebnis :integer;
    zahlen: Array[1..3] of Integer;
begin
  x:=edit1.text;
  zahlen[1]:= strToInt(x[1]);
  zahlen[2]:= strToInt(x[2]);
  zahlen[3]:= strToInt(x[3]);
  for i:= 1 to 3 do
    zahlen[i] := zahlen[i]*zahlen[i]*zahlen[i];
  Result := // Ab hier is wieder klar, oder?
Im Grunde brauchst du, um ne for-Schleife verwenden zu können, das ganze doch nur als Array anlegen,
und als Index die Schleifenvariable zu nehmen.
(Und man könnte natürlich auch das einlesen mit in die Schleife ziehen, konsequenter Weise)

boxer123 16. Nov 2011 19:30

AW: Hilfe bei einem programm
 
ok thanks, ich habe es geschafft . Kann man das eigentlich so umschreiben das er zahlen generiert die wenn amn also die gleiche rechnung durchführt dann für 772 genau auch 772 rauskommt sohne zahlen soll er generieren kann man das machen?

Bjoerk 16. Nov 2011 19:33

AW: Hilfe bei einem programm
 
Das mit dem MOD DIV war nicht schlecht. Hatten wir das letzens nicht auch bei Dir ?

Delphi-Quellcode:
uses
  Math;

procedure TForm1.Button1Click(Sender: TObject);
const
  MaxN = 10;
var
  Value, N, I, Total: integer;
  Number: array [1..MaxN] of integer;
begin
  Edit2.Text:= '';
  if TryStrToInt(Edit1.Text, Value) then
  begin
    N:= Length(IntToStr(Value));
    if N <= 10 then
    begin
      for I:= 1 to N do
        Number[N-I+1]:= Value mod Round(IntPower(10, I)) div Round(IntPower(10, I-1));
      Total:= 0;
      for I:= 1 to N do
        Total:= Total + Round(IntPower(Number[I], 3));
      Edit2.Text:= IntToStr(Total);
    end;
  end;
end;

boxer123 16. Nov 2011 19:36

AW: Hilfe bei einem programm
 
was ist denn das sorry ich verstehe den nicht ^^ bin noch anfänger. Können wir das nicht mit div und mod lassen^^

Bjoerk 16. Nov 2011 19:37

AW: Hilfe bei einem programm
 
Das hast du doch in #1 geschrieben ? :wink:

boxer123 16. Nov 2011 19:39

AW: Hilfe bei einem programm
 
hmm hatte ich nicht nur das mit div und mod geschrieben^^

Bjoerk 16. Nov 2011 19:47

AW: Hilfe bei einem programm
 
Wenn du’s auch für etwas größere Zahlen haben möchtest, dann kannst du aus den integer int64 und aus dem TryStrToInt ein TryStrToInt64 machen.

Luckie 16. Nov 2011 19:55

AW: Hilfe bei einem programm
 
Bitte ändere den Titel so, dass er etwas über dein Problem aussagt. Hilfe bei einem Programm braucht hier wohl jeder.

himitsu 16. Nov 2011 20:01

AW: Hilfe bei einem programm
 
PS: Wie vielleicht bekannt sein sollte, wäre es nicht schlecht, daß du noch deinem Threadtitel einen ordentlichen (den unterschriebenen AGBs folgenden) Text verpasst.

Luckie 16. Nov 2011 20:03

AW: Hilfe bei einem programm
 
@himitsu: Lies mal meinen Beitrag.

himitsu 16. Nov 2011 20:22

AW: Hilfe bei einem programm
 
Der war grade noch nicht da (hatte vorher extra nochmal alles durchgeguckt) und RedBox redet eh fast nie mit mir :cry:

Bummi 16. Nov 2011 21:32

AW: Hilfe bei einem programm
 
[OT]
Déjà-vu
[/OT]

Sir Rufo 16. Nov 2011 21:44

AW: Hilfe bei einem programm
 
Mein Vorschlag (ohne div und mod und Math)
Delphi-Quellcode:
function SpecialCalcToRuleWorld( aNumber, aPower : integer ) : integer;
var
  nStr : string;
  nIdx, pIdx : integer;
  nDig, tVal : integer;
begin
  Result := 0;
  nStr := IntToStr( aNumber );
  for nIdx := 1 to Length( nStr ) do
    begin
      nDig := StrToInt( copy( nStr, nIdx, 1 ) );
      tVal := 1;
      for pIdx := 1 to aPower do
        tVal := tVal * nDig;
      Result := Result + tVal;
    end;
end;

// Aufruf der Funktion

...
ShowMessage( IntToStr( // nur schmückendes Beiwerk zum direkten Anzeigen in einer MessageBox
  SpecialCalcToRuleWorld( // der Funktionsname
    StrToInt( Edit1.Text ), // die Eingabe aus dem Edit-Feld in eine Zahl gewandelt
    3 // und hier die 3, weil ja alles ^3 sein soll
  ) // ab hier werden nur noch alle Klammern geschlossen =:o)
) );
BTW: natürlich kann man die Funktion auch anders benennen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 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