Moin,
ich habe mir die 5,5 Phasen durchgelesen und bin ruhigen Gewissens...
Ich habe im Rahmen meines Studiums ein Programm erstellt, welches mir verschiedene zufallsbedingte Informationen zu Studenten ausspuckt wie zB Matrikelnr., Geburtsjahr usw.
Nun wollte ich den Jüngsten, den Ältesten und das Durchschnittsalter berechnen lassen. Da ich damit aber so meine Probleme hatte, habe ich mich mit einem Studi aus dem höheren Semester zusammengesetzt und das zusammen mit ihm gemacht. Läuft jetzt alles prima. Mein Problem ist, dass ich einige Stellen im Programm mittlerweile nicht mehr ganz nachvollziehen kann und bevor ich ihm nochmal auf den Sack gehe, wollte ich das bei euch tun
Ich poste das ganze einfach mal:
Ich verstehe soweit alles. Das einzige was bei mir etwas Probleme verursacht ist folgendes:
Es werden int arrays mit den Namen alt und jung erstellt, aber wieso werden beide mit
gefüllt?
Die if-Schleife raffe ich auch nicht, alt[3] hat doch gar keinen Wert, wie kann das denn größer oder kleiner sein als Studenten [3]?
Genauso habe ich meine Probleme mit
Warum die 3?
Also programmiert muss da nichts mehr werden, es läuft ja, ich verstehe nur den Teil mit dem jüngsten und ältesten nicht. Wäre nett, wenn mir jemand helfen könnte.
Danke
ich habe mir die 5,5 Phasen durchgelesen und bin ruhigen Gewissens...
Ich habe im Rahmen meines Studiums ein Programm erstellt, welches mir verschiedene zufallsbedingte Informationen zu Studenten ausspuckt wie zB Matrikelnr., Geburtsjahr usw.
Nun wollte ich den Jüngsten, den Ältesten und das Durchschnittsalter berechnen lassen. Da ich damit aber so meine Probleme hatte, habe ich mich mit einem Studi aus dem höheren Semester zusammengesetzt und das zusammen mit ihm gemacht. Läuft jetzt alles prima. Mein Problem ist, dass ich einige Stellen im Programm mittlerweile nicht mehr ganz nachvollziehen kann und bevor ich ihm nochmal auf den Sack gehe, wollte ich das bei euch tun
Ich poste das ganze einfach mal:
Java:
public class Studentenverwaltung1 {
public static void main(String[] args) {
int [][] Studenten = new int [50] [7];
int [] Studiengang = new int [50];
char [] Studiengänge = new char [5];
Studiengänge[0] = 'C';
Studiengänge[1] = 'V';
Studiengänge[2] = 'D';
Studiengänge[3] = 'B';
Studiengänge[4] = 'I';
int aktuellTag = 03;
int aktuellMonat = 11;
int aktuellJahr = 2010;
//-------------------------------------------------------------------------------------------------------------------------
for (int i = 0; i < Studenten.length; i++) {
Studenten[i][0] = 25000 + i; //Matrikelnummer
Studenten[i][1] = (int) (Math.random()*31); //Tag
Studenten[i][2] = (int) (Math.random()*12); //Monat
Studenten[i][3] = 1973 + (int) (Math.random()*20); //Jahr
Studenten[i][4] = (int)(Math.random() * 5);
if (Studiengänge [Studenten [i][4]] == 'C' || Studiengänge [Studenten [i][4]] == 'V')
Studenten[i][5] = 1;
else
Studenten[i][5] = 2;
}
for (int i = 0; i < Studenten.length; i++) {
Studenten[i][6] = (aktuellJahr - Studenten[i][3]);
if (Studenten[i][2] > aktuellMonat || Studenten[i][2] == aktuellMonat && Studenten[i][1] > aktuellTag)
Studenten[i][6] = (Studenten[i][6] - 1);
System.out.println ("Alter des Studenten: " + Studenten[i][6]);
System.out.println ("#" + Studenten [i][0]);
System.out.println ("Studiengang: " + Studiengänge[Studiengang[i]]);
System.out.print("Fachbereich: " + Studenten[i][5] + "\n"+"\n");
}
int[] alt = {Studenten[0][0],Studenten[0][1],Studenten[0][2],Studenten[0][3]};
int[] jung = {Studenten[0][0],Studenten[0][1],Studenten[0][2],Studenten[0][3]};
for (int i = 1; i < Studenten.length; i++) {
if((alt[3] > Studenten[i][3]) ||
((alt[3] == Studenten[i][3]) && (alt[2] > Studenten[i][2])) ||
((alt[3] == Studenten[i][3]) && (alt[2] == Studenten[i][2]) && (alt[1] > Studenten[i][1]))) {
for(int x = 0; x <= 3; x++) alt[x] = Studenten[i][x];
}
if((jung[3] < Studenten[i][3]) ||
((jung[3] == Studenten[i][3]) && (jung[2] < Studenten[i][2])) ||
((jung[3] == Studenten[i][3]) && (jung[2] == Studenten[i][2]) && (jung[1] < Studenten[i][1]))) {
for(int x = 0; x <= 3; x++) jung[x] = Studenten[i][x];
}
}
System.out.println("Ältester Student: #" + alt[0] + " Geburtstag: " + alt[1] + "." + alt[2] + "." + alt[3]);
System.out.println("Jüngster Student: #" + jung[0] + " Geburtstag: " + jung[1] + "." + jung[2] + "." + jung[3]);
int durchschnitt = 0;
for (int i = 0; i < Studenten.length; i++) durchschnitt += Studenten[i][6];
durchschnitt = durchschnitt / Studenten.length;
System.out.println("Durchschnittalter: " + durchschnitt);
}
}
Ich verstehe soweit alles. Das einzige was bei mir etwas Probleme verursacht ist folgendes:
Java:
int[] alt = {Studenten[0][0],Studenten[0][1],Studenten[0][2],Studenten[0][3]};
int[] jung = {Studenten[0][0],Studenten[0][1],Studenten[0][2],Studenten[0][3]};
for (int i = 1; i < Studenten.length; i++) {
if((alt[3] > Studenten[i][3]) ||
((alt[3] == Studenten[i][3]) && (alt[2] > Studenten[i][2])) ||
((alt[3] == Studenten[i][3]) && (alt[2] == Studenten[i][2]) && (alt[1] > Studenten[i][1]))) {
for(int x = 0; x <= 3; x++) alt[x] = Studenten[i][x];
}
if((jung[3] < Studenten[i][3]) ||
((jung[3] == Studenten[i][3]) && (jung[2] < Studenten[i][2])) ||
((jung[3] == Studenten[i][3]) && (jung[2] == Studenten[i][2]) && (jung[1] < Studenten[i][1]))) {
for(int x = 0; x <= 3; x++) jung[x] = Studenten[i][x];
}
}
Es werden int arrays mit den Namen alt und jung erstellt, aber wieso werden beide mit
Java:
{Studenten[0][0],Studenten[0][1],Studenten[0][2],Studenten[0][3]}
Die if-Schleife raffe ich auch nicht, alt[3] hat doch gar keinen Wert, wie kann das denn größer oder kleiner sein als Studenten [3]?
Genauso habe ich meine Probleme mit
Java:
for(int x = 0; x <= 3; x++) alt[x] = Studenten[i][x];
Warum die 3?
Also programmiert muss da nichts mehr werden, es läuft ja, ich verstehe nur den Teil mit dem jüngsten und ältesten nicht. Wäre nett, wenn mir jemand helfen könnte.
Danke