![]() |
Summe, Mittelwert, min und max ermitteln...
HI
Könnte mir vielleicht jemand bei einem Bsp weiterhelfen!!! Die Aufgabenstellung lautet: Ermittle aus einer in einem MEMO eingegebenen Zahlenreihe Summe, Mittelwert, Max und Min. Ich habe keine Ahnung wie das funktionieren soll und finde nirgendwo hilfe!!! pls HELP :gruebel: |
Re: Summe, Mittelwert, min und max ermitteln...
Hi und herzlich Willkommen. :dp:
Wo hapert es denn? Was versteht Du nicht? Vielleicht hilft es Dir auch erstmal ein Struktogramm zu den einzelnen Funktionen zu erstellen. Danach dürfte die Code-Umsetzung ein Kinderspiel sein. |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Wird hier wohl am ehesten passen. |
Re: Summe, Mittelwert, min und max ermitteln...
also wenn ich eine Zahl ins Memo eingebe, gibt er die Summe richtig an aber ich weiß nicht wie ich die Zahlen aus der 2. 3.... Zeile dazuzählen kann :?:
|
Re: Summe, Mittelwert, min und max ermitteln...
Kleiner Tipp: For-Schleife ;)
|
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
|
Re: Summe, Mittelwert, min und max ermitteln...
wow ist ja richtig was los hier!!!!
thx für die schnelle Hilfe aber ich bin noch nicht wirklich vertraut mit delphi....hat noch immer nicht geklingelt :gruebel: |
Re: Summe, Mittelwert, min und max ermitteln...
Was eine For-Schleife ist weißt Du (vielleicht klingelt es auch bei While-Do-Schleife oder Repeat-Until-Schleife?)?
|
Re: Summe, Mittelwert, min und max ermitteln...
![]() |
Re: Summe, Mittelwert, min und max ermitteln...
Delphi-Quellcode:
Die erste Zeile hat immer den Index 0, die letzte Zeile daher den Index Anzahl - 1.
for i := 0 to Memo.Lines.Count - 1 do...
|
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
ein Memo hat die Eigenschaft ![]() Jetzt kannst Du mit einer Schleife über alle Zeilen des Memos gehen und mit jeder einzelnen Zeile die notwendigen Operationen durchführen. |
Re: Summe, Mittelwert, min und max ermitteln...
ah ok und was wenn die anzahl der Zahlen nicht vorgegeben bzw unbegrenzt ist?
|
Re: Summe, Mittelwert, min und max ermitteln...
oh habe nicht ganz fertig gelesen... :oops:
schon klar thx |
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
|
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
|
Re: Summe, Mittelwert, min und max ermitteln...
danke an alle!!!! :hi:
ich werd jetzt mal probieren und meld mich wieder falls es noch was gibt!!!! thx Michael |
Re: Summe, Mittelwert, min und max ermitteln...
irgendetwas klppt leider noch nicht!!! :(
wenn ich eine Zahl eingebe funzt alles. Sobald ich in die nächste Zeile eine neue Zahl eingebe kommt die Fehlermeldung: "15 16' is not a valid integer value was mache ich falsch? |
Re: Summe, Mittelwert, min und max ermitteln...
Zeig doch mal den Code.
|
Re: Summe, Mittelwert, min und max ermitteln...
[delphi]
procedure TForm1.Button1Click(Sender: TObject); var summe, mitte, max, min:double; i, zahl: integer; begin for i := 0 to Memo1.Lines.Count - 1 do zahl:=strtoint (memo1.lines.text); i:=???; edit1.Text:=floattostr(i); end; falls ihr mich fragt was ich mir dabei gedacht hab....keine Ahnung :oops: |
Re: Summe, Mittelwert, min und max ermitteln...
Hi,
Du darfst nicht Lines.Text verwenden, sondern musst Lines[I] nehmen um nur die aktuelle Zeile auszulesen. Lines.Text beinhaltet alles, was im Memo steht. ;) |
Re: Summe, Mittelwert, min und max ermitteln...
ah ok!!!!!
wie muss ich jetzt i festlegen? jetzt zeigt er mir immer nur die letzte Zahl im Memo an i:=zahl+??? |
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
und i ist Integer also nimm am besten intToStr (wegen der Form :-D ) an i solltest du gar nichts ändern und für die summe mach doch einfach Summe:=summe+ Memo1.Lines für den Durchschnitt teile dies durch den Count+1 und min und max sind am leichtesten die kannst du dir selber überlegen :lol: (TIPP: nimm ne if-Abfrage(nicht Schleife :lol: )) [EDIT]Rechtschreibfehelr verbessert :oops: :-D [/EDIT] |
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
|
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
|
Re: Summe, Mittelwert, min und max ermitteln...
OK DANKE vielmals!!!!!! :hello:
Ich glaube jetzt hab ichs!!!!!!!!!! :-D geht wirklich schnell bei euch!!! ;] |
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
|
Re: Summe, Mittelwert, min und max ermitteln...
Zitat:
Die For-schleife setzt i auf 0 (for i := 0) und zählt dieses I dann bei jedem Durchlauf um eins hoch bis es "Memo1.Lines.Count -1" ist und führt für jedes i den Inhalt der Schleife aus |
Re: Summe, Mittelwert, min und max ermitteln...
eigentlich habe ich mit i die summe gemeint...denkfehler!!! :smile2:
|
Re: Summe, Mittelwert, min und max ermitteln...
Hallo nochmals
ich habe es jtzt ungefähr 10 000 000 versucht aber irgendetws scheint nicht zu klappen!!! [quote="Mikender"] und für die summe mach doch einfach Summe:=summe+ Memo1.Lines quote] dieser Vorschlag ergibt folgende Fehlermeldung: incompitable files... tschuldigung wenn ich mich blöd anstelle!?! :oops: |
Re: Summe, Mittelwert, min und max ermitteln...
Also gut, für die Summe:
Delphi-Quellcode:
Wobei Du eine Fehlerbehandlung selbst implementieren musst, das nehm ich Dir nicht auch noch ab ;)
Summe := 0;
for i := 0 to Memo.Lines.Count - 1 do inc(Summe,StrToInt(Memo.Lines[i])); |
Re: Summe, Mittelwert, min und max ermitteln...
auch das haut nicht hin!!!!! :cry:
--> left side can not be assigned to... |
Re: Summe, Mittelwert, min und max ermitteln...
Zeig mal Deinen Code, ich kann nicht hellsehen.
|
Re: Summe, Mittelwert, min und max ermitteln...
procedure TForm1.Button1Click(Sender: TObject);
var summe, mitte, max, zahl, min:double; i: integer; begin summe:=0; for i := 0 to Memo1.Lines.Count - 1 do zahl:=strtofloat(memo1.lines[i]); inc(summe,{hier taucht die fehlermeldung auf}strtoint(memo1.lines[i])); edit1.Text:=floattostr(summe); end; wofür ist das INC überhaupt? |
Re: Summe, Mittelwert, min und max ermitteln...
Das sind Fließkommazahlen? Dann etwas anders:
Delphi-Quellcode:
[edit] Abschließendes end vergessen [/edit]
procedure TForm1.Button1Click(Sender: TObject);
var summe, mitte, max, zahl, min:double; i: integer; begin summe:=0; for i := 0 to Memo1.Lines.Count - 1 do begin zahl:=strtofloat(memo1.lines[i]); summe := summe + zahl; end; edit1.Text:=floattostr(summe); end; |
Re: Summe, Mittelwert, min und max ermitteln...
es funktioniert!!!!! :hello:
und ich trottel habe das begin und end vergessen :wall: thx a lot!!!!!!! |
Re: Summe, Mittelwert, min und max ermitteln...
Hallo sqrt 9,
Inc ist eine Funktion welche den Wert der übergebenen Variable erhöht. Standardmäßig ist das eins. (Inc = Increment)
Delphi-Quellcode:
Das ist das gleiche wie:
x := 1;
Inc(x); // In x steht jetzt 2
Delphi-Quellcode:
Wenn du wie bei Deddy H aber um mehr als eins erhöhen möchtest, gibst du das im zweiten Parameter an:
x := 1;
x := x + 1; // In x steht jetzt 2
Delphi-Quellcode:
Und das ist das gleiche wie:
x := 1;
Inc(x, 2); // In x steht jetzt 3 (x := x + 2)
Delphi-Quellcode:
Also ganz allgemein:
x := 1;
x := x + 2; // In x steht jetzt 3
Delphi-Quellcode:
x := 1;
Inc(x, n);
Delphi-Quellcode:
Eine andere Sache übrigens: Verwende die Delphi-Tags:
x := 1;
x := x + n; [delphi]<Dein Delphicode>[/delphi] Findest du auch als Button oben in der Mitte (du musst aber, wenn kein Text selektiert ist, auch ein zweites mal zum Schließen klicken). Achso noch was: Wenn du etwas hinzufügen möchtest, dann editiere den Beitrag ;) Da ist neben den Zitat-Button auch ein Edit-Button (bei deinen Beiträgen natürlich nur). Und wo ich das gerade sehe: Inc() funktioniert nur bei Ganzzahlen (Integer). bei Gleit/Fließkommazahlen musst du das "manuell" machen. |
Re: Summe, Mittelwert, min und max ermitteln...
danke für dein sehr Lehrreiches Kommentar!!! :thumb:
|
Re: Summe, Mittelwert, min und max ermitteln...
Außerdem sollte man die Logik von der Darstellung trennen, d.h. es wäre besser, sich für die einzelnen Anforderungen (Summe, Mittel, etc.) jeweils eine Funktion zu schreiben und diese dann aufzurufen. Beispiel für die Summe:
Delphi-Quellcode:
Der Aufruf wäre dann z.B.
function SumFromStrings(const s: TStrings): double;
var i: integer; begin Result := 0; for i := 0 to s.Count - 1 do Result := Result + StrToFloat(s[i]); end;
Delphi-Quellcode:
Wobei ungültige Zeilen hier nicht berücksichtigt werden.
Edit1.Text := FloatToStr(SumFromStrings(Memo1.Lines));
|
Re: Summe, Mittelwert, min und max ermitteln...
eine allerletzte frage hätte ich noch...
schon behoben... :-D |
Re: Summe, Mittelwert, min und max ermitteln...
n muss integer sein und Du musst dann IntToStr verwenden.
[edit] Außerdem fehlt noch ein end; [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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