![]() |
2 hoch 3 hoch 4 u.s.w .
Ich bins wieder mal, ich habe mir vorgenommen ein Programm zu schreiben, also es soll folgendes tun
3 Edit in dem erstem schreibt man z.b. 3 und im zweiten 4 . Dann rechnet er 3*3*3*3 und das ergebnis gibt er im 3 edit an Ich habe es mir so vorgestellt die zahl die der benutzer eingibt, nehmt er raus und legt die in die variable zahl1
Delphi-Quellcode:
die andere zahl die der benutzer eingibt, nehmt er raus und legt die in die variable zahl2
zahl1:=edit1.text;
Delphi-Quellcode:
und jetzt muss er rechnen,
zahl2:=edit2.text;
ergebnis:= zahl1 * zahl2; das geht so nicht wie mache ich es das er immer * die zahl nimmt |
AW: 2 hoch 3 hoch 4 u.s.w .
Ein TEdit enthält Strings und du benötigst "Zahlen" ... wie wäre es also, wenn du die String entsprechend konvertierst?
z.B. String To Integer bzw. Integer To String |
AW: 2 hoch 3 hoch 4 u.s.w .
was hat das, was Du tust mit dem zu tun, was Du tun willst?
Was eine Schleife ist, solltest Du ja aus Deinen letzten Threads gelernt haben ... |
AW: 2 hoch 3 hoch 4 u.s.w .
... und ergänzend:
Warum benutzt du nicht die Funktion POWER aus der unit math? |
AW: 2 hoch 3 hoch 4 u.s.w .
mein schwachpunkt ist ich kann es nicht umsetzen
|
AW: 2 hoch 3 hoch 4 u.s.w .
Lassen wir Power einmal aus dem Spiel, als Schleifenübung ist das doch eine ganz geeignete Sache. Aber wie himi schon schrieb: man muss sich darüber im Klaren sein, dass das, was der Endbenutzer sieht, Strings sind. Das ist auch OK, aber man sollte nicht der Versuchung erliegen, nun alle Aufgaben mit Strings erledigen zu wollen, sondern erst einmal in den passenden Datentyp konvertieren, damit rechnen und zur Ausgabe wieder in String zurückkonvertieren (EVA-Prinzip). Das wurde ja im anderen Thread bereits angesprochen, aber leider nicht umgesetzt.
BTW: Eine Zahl hoch 0 ergibt immer 1, das nur so als Tipp ;) |
AW: 2 hoch 3 hoch 4 u.s.w .
Zitat:
[edit] *Mist* sry fürs Pushen, eigentlich wollte ich editieren :oops: [/edit] |
AW: 2 hoch 3 hoch 4 u.s.w .
wie ich es mache das er immer wenn jetzt eine 4 im edit 1 und eine 4 im anderen das er es macht also
4*4*4*4 |
AW: 2 hoch 3 hoch 4 u.s.w .
Zeige doch eimal ein bisschen Code
|
AW: 2 hoch 3 hoch 4 u.s.w .
Delphi-Quellcode:
Wenn Du den Kommentar mit der richtigen Zuweisung ersetzt, dann hast Du es schon.
function SlowPower(Basis, Exponent: integer): integer;
var i: integer; begin Result := 1; for i := 1 to Exponent do Result := {Was muss hier rein?}; end; |
AW: 2 hoch 3 hoch 4 u.s.w .
weg
|
AW: 2 hoch 3 hoch 4 u.s.w .
Wozu sollen die Arrays gut sein?
|
AW: 2 hoch 3 hoch 4 u.s.w .
für die 2 zahlen
|
AW: 2 hoch 3 hoch 4 u.s.w .
Du musst auch mal lesen, was die anderen schreiben. Dafür brauchst Du doch kein Array, nimm StrToInt (eigentlich besser TryStrToInt, aber lassen wir das mal außen vor), da gibst Du einen String rein und bekommst (hoffentlich) eine Integer raus, und das ganz ohne Array.
|
AW: 2 hoch 3 hoch 4 u.s.w .
weg
|
AW: 2 hoch 3 hoch 4 u.s.w .
Schmeiß doch mal die globalen Variablen weg und mach eine Funktion draus wie in meinem Beispiel. Diese Funktion kannst Du dann im ButtonClick aufrufen.
[edit] Oder lass es meinetwegen so und überleg Dir, womit Du in der Schleife die Basis multiplizieren musst. Exponent ist schon mal falsch, der dient nur als Schleifenvariable. [/edit] |
AW: 2 hoch 3 hoch 4 u.s.w .
Und verabschiede dich endlich auch von diesen globalen Variablen.
Für das, was du so machst, wirst du garantiert immer ohne sowas auskommen. basis, exponent, result und i werden "nur" in dieser Procedur verwendet, also gehören sie dort auch hin. PS: Den Exponenten hast du schon in der Schleife verbaut ... den brauchst also nicht nochmal benutzen. Bleibt also noch die Basis und das Result ... und du willst "zum" Result ja was dazurechnen. [add] Du mußt basis und exponent natürlich auch noch deine Edit-Inhalte zuweisen. Wären es lokale Variablen gewesen, hätte dir Delphi sogar gesagt, daß dort etwas fehlt. (siehe Compilerhinweise) |
AW: 2 hoch 3 hoch 4 u.s.w .
Delphi-Quellcode:
aber ich weiß nicht
procedure TForm1.Button1Click(Sender: TObject);
var basis,exponent,result,i:integer; begin Result := 1; for i := 1 to Exponent do Result := result * basis; // edit3.text:=inttostr(result); |
AW: 2 hoch 3 hoch 4 u.s.w .
Und wenn Du jetzt noch Basis und Exponent die eingegebenen Werte zuweist, was kommt dabei raus?
|
AW: 2 hoch 3 hoch 4 u.s.w .
Zitat:
Zitat:
|
AW: 2 hoch 3 hoch 4 u.s.w .
aso ist ja logisch
|
AW: 2 hoch 3 hoch 4 u.s.w .
Und hör bitte auf, Beitragsinhalte zu löschen. Wenn später andere dasselbe Problem haben, können sie den Zusammenhang der Antworten ja gar nicht mehr erkennen.
|
AW: 2 hoch 3 hoch 4 u.s.w .
oh tut mir leid
|
AW: 2 hoch 3 hoch 4 u.s.w .
Nicht so schlimm, aber bitte für die Zukunft merken. Peinlich muss Dir nichts sein, hier gibt es ganz andere Threads (nein, ich verlinke den bestimmten jetzt nicht^^).
|
AW: 2 hoch 3 hoch 4 u.s.w .
Das wäre auch nicht fair, Spott gab es schon genug:)
|
AW: 2 hoch 3 hoch 4 u.s.w .
:zwinker:
|
AW: 2 hoch 3 hoch 4 u.s.w .
Och schade, dabei war das Negieren soooo toll :love:
|
AW: 2 hoch 3 hoch 4 u.s.w .
Lass das doch bitte, jeder hat mal klein angefangen, auch wenn er meinte, er sei ein "guter Programmierer"
|
AW: 2 hoch 3 hoch 4 u.s.w .
Könnten wir denn jetzt wieder zum Thema zurückkehren? Larsi scheint sich ja sowieso vom Forum oder gar Delphi abgewandt zu haben, trotzdem lassen wir besagten Thread jetzt mal in Frieden ruhen, gehört nicht hierher.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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