Array - Beispiel

süchtler

Grünschnabel
Hi Leute! Hab gerade das Kapitel "Arrays" in meinem Programmierbuch durchgelesen. Jetz habe ich da eine Übung gefunden, die ich gerne machen würde! Hab leider keine weiteren hilfen dabei, bzw Lösung dafür.
------

Eingabe
  • Name, PLZ, Ort, Strasse, email-Adresse (Array)
  • 5 Zahlen (Kommazahlen), das Downloadvolumen der letzten 5 Monate bei einem beliebigen Internetzugang (Array).
Verarbeitung
  • Berechnung des Durchschnittwertes (siehe Hinweis)
  • Berchnung der größen bzw. kleinsten Wertes
Ausgabe
  • Personendaten, in einer Zeile
  • Durchnittliches Downloadvolumen
  • größtes bzw. kleinstes Downloadvolumen
Hinweise:
  • Die Eingaben sollen jeweils in einer einzigen Variablen (Array) gespeichert werden.
  • Die Berechnung des Mittelwertes und der größten/kleinesten Zahl erfolgt ein einer einzigen (for-) Schleife.
  • Die Ausgabe der Personendaten erfolgt in einer (for-) Schleife.
-----
Bräuchte ein paar Tipps.... Vorallem für die Eingabe , die Verarbeitung und die Ausgabe...
Speziell: Eingabe über Arrays; 5 Zahlen mit Arrays; for Schleife für Mittelwert, Ausgabe der Daten mit for Schleife

mit freundlichen Grüssen
süchtler
 
Also ein paar Tips:

Du brauchst 2 Arrays. Einen String-Array für die Daten und einen double-Array für die Zahlen.
Auf die Elemente eines Arrays kannst du wiefolgt zugreifen:

Code:
string[] array = new string[5]; //Array mit 5 String-Werten
array[0] = "wert1";     // Arrays sind nullbasiert
array[1] = "wert2";	// 2. Wert im Array
array[5] = "wert5";	// Hier gäbe es einen Fehler, da es nur von 0-4 geht

Arrays kann man auch sortieren:

Code:
double[] array = new double[5];
array[0] = 1.00;
array[1] = 2.00;
array[2] = 0.88;
array[3] = 0.77;
array[4] = 2.55;
Array.Sort(array);	//Array wird sortiert
Console.WriteLine(array[0].ToString());		//Der 1. Wert des Arrays wird ausgegeben
						//Dies ist der kleinste Wert, da das Array sortiert wurde
Damit wäre es ein leichtes den kleinsten und größten Wert herauszufinden.


Durchlaufen mit der for-Schleife kannst du einen Array folgenermaßen:
Code:
double[] array = new double[5];
array[0] = 1.00;
array[1] = 2.00;
array[2] = 0.88;
array[3] = 0.77;
array[4] = 2.55;
for(int i = 0; i < array.Length; i++) 
{
	Console.WriteLine(array[i].ToString());
}

Um den Mittelwert in der for-Schleife zu berechnen, solltest du wissen, dass Variablen, die du in einer Schleife deklarierst, nur in dieser Schleife gültig sind. Du deklarierst also eine Variable außerhalb der Schleife und addierst bei dem Durchgang der for-Schleife den aktuellen Wert dazu. Das ganze teilst du dann durch 5.
Um den größten und kleinsten Wert ohne Sort zu berechnen, gehst du genauso vor, überprüfst dann aber bei jedem Durchgang der Schleife, ob der aktuelle Wert größer oder kleiner als der letzte ist und speicherst ihn dann.
 
hmmm.... danke mal.... aba das geht mir ein bisschen zu schnell.... könnte mir das bitte wer genauer erklären ? hab noch immer keinen plan wie ich das alles machen könnte?

Wie kann ich ein ganzes Array ausgeben lassen ?

Code:
string[] PersDat = new string[5]; 

Console.WriteLine("Geben Sie ihren Namen ein");

PersDat[0]=Console.ReadLine(); 

Console.WriteLine("Geben Sie ihren Ort ein");

PersDat[1]=Console.ReadLine(); 

//jetzt will ich Ort und Name Ausgeben lassen.... und das schaffe ich nicht
 
Zuletzt bearbeitet:
Code:
for (int i = 0; i < PersDat.Length; i++)
			{
				Console.WriteLine(PersDat[i]);
			}
Am Anfang der Schleift ist i = 0.
i wird solange erhöht, bis es größer oder gleich der Anzahl der Arrayelemente (PersDat.Length) ist. Im Rumpf der Schleife wird dann der Wert an der Position i des Arrays ausgegeben.

Wenn dein Array nur 2 Werte zugewiesen hat, wird die Schleife trotzdem 5mal durchlaufen, da das Array eine 'Länge' von 5 Elementen hat.
 
Du könntest die Ausgabe auch mict einer foreach-Schleife lösen.
Machen wir mal Ausgabe, und Feststellung der Werte in einem:
Code:
double[] zahlenArr = new double[5];
zahlenArr[0] = 1.1;
zahlenArr[1] = 1.2;
zahlenArr[2] = 1.3;
zahlenArr[3] = 1.4;
zahlenArr[4] = 1.5;

double summe = 0;
double groesste = double.Min; //weiß grad nicht, wie die Konstante korrekt heißt
double kleinste = double.Max; //weiß grad nicht, wie die Konstante korrekt heißt
foreach(double zahl in zahlenArr)  //durchläuft alle Elemente einer Auflistung(Collection) - in diesem Falle des Arrays - und gibt dies in der Variable zahl mit.
{ 
   if(zahl > groesste)
         groesste = zahl;
   if(zahl > kleinste)
         kleinste = zahl;
   summe += zahl;
   Console.WriteLine(zahl);
}
double mittelwert = summe / zahlenArr.Length;
Console.WriteLine("kleinste: " + kleinste);
Console.WriteLine("größte: " + groesste);
Console.WriteLine("mittelwert: " + mittelwert);
Noch Fragen ? :)
 
habe die eingabe des "traffics" so gemacht!

Code:
double[] DownVol = new double[5];

int x=0;

int y=1;

for(x=0;x<=4;x++)

{

Console.WriteLine("Geben Sie den Traffic des {0}. Monats ein.",y);

y++;

DownVol[x]=Convert.ToDouble(Console.ReadLine());

}

Wie sieht jetzt die for schleife für Mittelwert, größte und kleinste Zahl aus ?
 
habs schon gelöst !
Code:
for(nr=0; nr<DownVol.Length; nr++)

{

if (DownVol[nr]>max)max=DownVol [nr];

if (DownVol[nr]<min)min=DownVol [nr];

sum=sum+DownVol[nr];

}

sum=sum/5;

thx @ all es geht jetzt alles
 

Neue Beiträge

Zurück