![]() |
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 |
AW: Hilfe bei einem programm
Wie meinen ?? :gruebel:
|
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
|
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. ![]() Wobei du "x hoch 3" notfalls auch hättest in die Grundrechenarten ( + - * / ) zuerlegen und somit auch ohne weitere Funktionen ausrechnen könntest. |
AW: Hilfe bei einem programm
Delphi-Quellcode:
Im Grunde brauchst du, um ne for-Schleife verwenden zu können, das ganze doch nur als Array anlegen,
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? und als Index die Schleifenvariable zu nehmen. (Und man könnte natürlich auch das einlesen mit in die Schleife ziehen, konsequenter Weise) |
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?
|
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; |
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^^
|
AW: Hilfe bei einem programm
Das hast du doch in #1 geschrieben ? :wink:
|
AW: Hilfe bei einem programm
hmm hatte ich nicht nur das mit div und mod geschrieben^^
|
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.
|
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.
|
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.
|
AW: Hilfe bei einem programm
@himitsu: Lies mal meinen Beitrag.
|
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:
|
AW: Hilfe bei einem programm
[OT]
Déjà-vu [/OT] |
AW: Hilfe bei einem programm
Mein Vorschlag (ohne div und mod und Math)
Delphi-Quellcode:
BTW: natürlich kann man die Funktion auch anders benennen :)
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) ) ); |
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