Entwickler-Ecke
Basistechnologien - Zwischenwerte in Schleife speichern.
Gusto - Mi 16.11.11 09:16
Titel: Zwischenwerte in Schleife speichern.
Moin Moin,
ich habe diese Aufgabe:
Schreiben Sie ein Programm, das den Mitttelwert von vorher einzugebenden Zahlen berechnet und ausgibt. Wie viele Zahlen eingegeben werden sollen, kann der Benutzer vorher festlegen.
Mein Programm sieht bisher so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| string Eingabe; int Anzahl; int Zahl; int Ergebnis;
Console.WriteLine("Hallo Benutzer!"); Console.WriteLine("Wie viele zahlen möchten Sie eingeben?"); Eingabe = Console.ReadLine(); Anzahl = Convert.ToInt32(Eingabe);
int n = 1; while (n <= Anzahl) { Console.WriteLine("Geben Sie eine Zahl ein"); Eingabe = Console.ReadLine(); Zahl = Convert.ToInt32(Eingabe); n++; } |
Aber das mit dem Mittelwert ausrechnen wird nichts, weil ich nicht weiß wie ich jeden eingegebenen Wert einzelnt speicher
Danke im Vorraus
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Moderiert von
Gausi: Delphi-Tags durch C#-Tags ersetzt. Da war ich wohl eben noch nicht ganz wach...Moderiert von
Gausi: Topic aus Off Topic verschoben am Mi 16.11.2011 um 09:06
Xion - Mi 16.11.11 09:34
:welcome:
Um mehrere Werte zu speichern kannst du z.B. ein dynamisches Array verwenden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var Zahlen: array of integer;
procedure ZahlEingegeben (x: integer); var len: integer; begin Len := Length(Zahlen); SetLength(Zahlen, len+1); Zahlen[len] := x; end;
function CalcMaximum (x: integer): integer; var E: integer; begin Result := 0; for E:= 0 to High(Zahlen) do if Zahlen[E]>Result then Result := Zahlen[E]; end; |
Als Beispiel ;)
bummi - Mi 16.11.11 09:52
Wobei es für den Mittelwert langt Zahl immer zu Summe zu addieren und am Schluss durch Anzahl zu teilen ....
Gusto - Mi 16.11.11 09:58
@xion.
Ich bin in einer Ausbildung zum System-Integrator(!).
Leider ist mir dein Quelltext VIEL zu kompliziert. Wir haben grade mit Schleifen angefangen.
@bummi
Wie soll ich das denn addieren?
Könntest du mir ein Beispiel geben? Bzw. die Aufgabe lösen? Ich habe noch weitere 5 Aufgaben, muss aber diese wissen um die anderen 5 zu bearbeiten.
Ich saß gestern 1 1/2 Stunde daran und habe die Lösung nichtmal "ergooglen" können.
Vielleicht habe ich einfach nur ein Brett vorm Kopf :(
Mfg und Danke
bummi - Mi 16.11.11 10:07
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| program Project1;
{$APPTYPE CONSOLE}
uses SysUtils; var i:Integer; Anzahl:Integer; Zahl:Double; Summe:Double;
begin try
Summe := 0; WriteLn('Hallo Benutzer!'); WriteLn('Wie viele zahlen möchten Sie eingeben?'); ReadLn(Anzahl); for I := 1 to Anzahl do begin Writeln ('Geben Sie eine Zahl ein.'); Readln(Zahl); Summe := Summe + Zahl; end; Writeln('Mittelwert: ' + FloatToStr(Summe/Anzahl)); Readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. |
Gusto - Mi 16.11.11 10:20
Es geht immernoch nicht. Es geht ja eigentlich nur darum, dass der eingebene Wert mit den vorherigen addiert wird.
Ich arbeite mit Microsoft Visual C# 2010 Express.
So sieht es aus.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Console.WriteLine("Hallo Benutzer!"); Console.WriteLine("Wie viele zahlen möchten Sie eingeben?"); Eingabe = Console.ReadLine(); Anzahl = Convert.ToInt32(Eingabe);
int n = 1; while (n <= Anzahl) { Console.WriteLine("Geben Sie eine Zahl ein"); Eingabe = Console.ReadLine(); Zahl = Convert.ToInt32(Eingabe); summe := summe+zahl; n++; } |
Moderiert von
Th69: C#-Tags hinzugefügt
bummi - Mi 16.11.11 10:23
Sorry, ich hatte völlig übersehen dass ins C-Forum gerutscht bin, war das in C nicht irgendwas mit
Summe += Zahl;
???
thepaine91 - Mi 16.11.11 10:26
Ja += ist korrekt.
Gusto - Mi 16.11.11 10:29
Lösung:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| string Eingabe; int Anzahl; int Zahl; int Summe = 0;
Console.WriteLine("Hallo Benutzer!"); Console.WriteLine("Wie viele zahlen möchten Sie eingeben?"); Eingabe = Console.ReadLine(); Anzahl = Convert.ToInt32(Eingabe);
int n = 1; while (n <= Anzahl) { Console.WriteLine("Geben Sie eine Zahl ein"); Eingabe = Console.ReadLine(); Zahl = Convert.ToInt32(Eingabe); Summe += Zahl; n++; }
Console.WriteLine(Summe); |
IT WORKS!!!!!!!
Vielen Dank! :D
Mfg
Moderiert von
Th69: C#-Tags hinzugefügt
ujr - Mi 16.11.11 19:24
Gusto hat folgendes geschrieben : |
IT WORKS!!!!!!!
|
Kann schon sein - aber nicht mit
der "Lösung"...
Handycommander - Sa 10.12.11 16:49
ujr hat folgendes geschrieben : |
Gusto hat folgendes geschrieben : |
IT WORKS!!!!!!!
|
Kann schon sein - aber nicht mit der "Lösung"... |
Unterschreib ich so... ;)
Du hast eine WICHTIGE Berechung vergessen...
Gruß,
Tobi
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!