Hallo liebe Community,
ich bin neu in der Programmierszene. Ich habe zum jetztigen Semester mit meinem Bachelorstudium in "Angewandter Informatik" angefangen und bin gerade recht unzufrieden mit mir selbst. Und daher hätte ich so ein bis zwei Fragen die mir auf dem Herzen liegen und ihr, als langjährige Programmierer, eventuell mit eurer Erfahrung beantworten könnt... zugleich möchte ich mich für den Wall of Text entschuldigen, der jetzt folgt.
Das Studium selbst macht mir ungeheuer Spaß. Ich bin hochmotiviert, lerne 4-6h täglich nach der Uni (insbesondere für Mathe und technische Fächer) und übe das Programmieren mit Java regelmäßig. Jegliche Übungen und Hausaufgaben, die wir in Programmierung 1 bekommen, erledige ich immer (und diese sind auch immer korrekt am Ende).
Was mir aber Sorgen bereitet ist die Zeit, die ich brauche um die Hausaufgaben zu erledigen. Hier eine Beispielaufgabe, die ich gelöst habe:
"Schreiben Sie eine Klasse Schoko, die die Zahlen a, b und n von der Konsole einliest. Wir haben a kleine Schokoriegel (1 kg) und b große Schokoriegel (5 kg). Wir wollen insgesamt n kg Schokolade essen. Wie viele kleine Schokoriegel muss man essen, um genau n kg zu essen, wenn man zuerst so viele große wie möglich ist? Gebt die Anzahl der kleinen Riegel aus. Ist dies nicht möglich, soll −1 ausgegeben werden. Beispiel: a = 7, b = 1, n = 12 ergibt 7 – zuerst einen großen, dann 7 kleine. Wäre in diesem Falle n = 13, wäre die Ausgabe -1 (zu wenig Schokolade insgesamt). Wäre im Beispiel b = 2, so wäre die Ausgabe 2 – erst zwei große, dann zwei kleine. Was auch nicht funktioniert, ist a = 2, b = 100 und n = 13, weil man zu wenig kleine Riegel hat, obwohl die Gesamtmenge mehr als ausreicht."
Diese Hausaufgabe bekamen wir vor 3 Wochen auf. An dieser Aufgabe habe ich ca. 6-8h gesessen. Warum? Ich habe keine Ahnung... anscheinend habe ich das logische denken total ausgestellt. Der Dozent sagte, dass solch Aufgaben in der Prüfung dran kämen (und das seien noch die einfachen). Da wir nur 1 1/2h für die Prüfung Zeit haben, mache ich mir natürlich Gedanken....
Und daher meine Frage: Ist das normal, dass man zu Beginn für eigentlich "einfache Aufgaben" so eine Ewigkeit braucht oder sollte ich mir Sorgen machen? Natürlich weiss ich, dass kein Meister vom Himmel gefallen ist und sich so eine Programmiersprache nicht in 1-2 Wochen meistern lässt, aber es geht hier ja um "einfaches logisches Denken"...
Da die Aufgabe ja bereits 3 Wochen her ist, kam inzwischen schon wieder einiges an Stoff hinzu. Inzwischen bereiten mir verschachtelte Schleifen große Probleme - ich verstehe es einfach nicht. Bei einzelnen Schleifen ist mir die FUnktion klar - auch der Unterschied zwischen "While" und "For" Schleife. Aber sobald sie ineinander verschachtelt sind, macht für mich alles keinen Sinn mehr. Als Beispiel hierfür:
Eine weitere Hausaufgabe: "Schreiben Sie eine Klasse Wuerfel, die alle Möglichkeiten für das Würfeln mit drei Würfeln ausgibt, indem die Ergebnisse der drei Würfel wie folgt geschrieben werden: (1,1,1), (1,1,2), …, (1,2,1), (1,2,2), … (6,6,6), also insgesamt 216 Zeilen. Die Würfel sind insofern unterscheidbar"
Meine Lösung war, wieder nach ca. 4h:
public class Wuerfel {
public static void main(String[] args) {
for (int a = 1; a < 7; a= a + 1)
{
for (int b = 1; b < 7; b= b + 1 )
{
for (int c = 1; c < 7; c = c + 1)
{
System.out.println("(" + a + "," + b + "," + c + ")");
}
}
}
}
}
Im Endeffekt habe ich es aber nur durch probieren herausbekommen. Denn Sinn dahinter, habe ich bis jetzt noch nicht verstanden. Ich habe mich belesen und habe versucht, irgendwo Erklärungen zu finden, wie verschachtelte Schleifen funktionieren, aber bis jetzt noch nichts verständliches gefunden. Das einzige, was ich weiss, ist dass sie von "innen beginnen"´.
Also zu meiner zweiten Frage: Kann mir jemand verschachtelte Schleifen erklären oder gute, verständliche Literatur empfehlen?
Vielen Dank im voraus und entschuldigt nochmal die Wall of Text.
Liebe Grüße
ich bin neu in der Programmierszene. Ich habe zum jetztigen Semester mit meinem Bachelorstudium in "Angewandter Informatik" angefangen und bin gerade recht unzufrieden mit mir selbst. Und daher hätte ich so ein bis zwei Fragen die mir auf dem Herzen liegen und ihr, als langjährige Programmierer, eventuell mit eurer Erfahrung beantworten könnt... zugleich möchte ich mich für den Wall of Text entschuldigen, der jetzt folgt.
Das Studium selbst macht mir ungeheuer Spaß. Ich bin hochmotiviert, lerne 4-6h täglich nach der Uni (insbesondere für Mathe und technische Fächer) und übe das Programmieren mit Java regelmäßig. Jegliche Übungen und Hausaufgaben, die wir in Programmierung 1 bekommen, erledige ich immer (und diese sind auch immer korrekt am Ende).
Was mir aber Sorgen bereitet ist die Zeit, die ich brauche um die Hausaufgaben zu erledigen. Hier eine Beispielaufgabe, die ich gelöst habe:
"Schreiben Sie eine Klasse Schoko, die die Zahlen a, b und n von der Konsole einliest. Wir haben a kleine Schokoriegel (1 kg) und b große Schokoriegel (5 kg). Wir wollen insgesamt n kg Schokolade essen. Wie viele kleine Schokoriegel muss man essen, um genau n kg zu essen, wenn man zuerst so viele große wie möglich ist? Gebt die Anzahl der kleinen Riegel aus. Ist dies nicht möglich, soll −1 ausgegeben werden. Beispiel: a = 7, b = 1, n = 12 ergibt 7 – zuerst einen großen, dann 7 kleine. Wäre in diesem Falle n = 13, wäre die Ausgabe -1 (zu wenig Schokolade insgesamt). Wäre im Beispiel b = 2, so wäre die Ausgabe 2 – erst zwei große, dann zwei kleine. Was auch nicht funktioniert, ist a = 2, b = 100 und n = 13, weil man zu wenig kleine Riegel hat, obwohl die Gesamtmenge mehr als ausreicht."
Diese Hausaufgabe bekamen wir vor 3 Wochen auf. An dieser Aufgabe habe ich ca. 6-8h gesessen. Warum? Ich habe keine Ahnung... anscheinend habe ich das logische denken total ausgestellt. Der Dozent sagte, dass solch Aufgaben in der Prüfung dran kämen (und das seien noch die einfachen). Da wir nur 1 1/2h für die Prüfung Zeit haben, mache ich mir natürlich Gedanken....
Und daher meine Frage: Ist das normal, dass man zu Beginn für eigentlich "einfache Aufgaben" so eine Ewigkeit braucht oder sollte ich mir Sorgen machen? Natürlich weiss ich, dass kein Meister vom Himmel gefallen ist und sich so eine Programmiersprache nicht in 1-2 Wochen meistern lässt, aber es geht hier ja um "einfaches logisches Denken"...
Da die Aufgabe ja bereits 3 Wochen her ist, kam inzwischen schon wieder einiges an Stoff hinzu. Inzwischen bereiten mir verschachtelte Schleifen große Probleme - ich verstehe es einfach nicht. Bei einzelnen Schleifen ist mir die FUnktion klar - auch der Unterschied zwischen "While" und "For" Schleife. Aber sobald sie ineinander verschachtelt sind, macht für mich alles keinen Sinn mehr. Als Beispiel hierfür:
Eine weitere Hausaufgabe: "Schreiben Sie eine Klasse Wuerfel, die alle Möglichkeiten für das Würfeln mit drei Würfeln ausgibt, indem die Ergebnisse der drei Würfel wie folgt geschrieben werden: (1,1,1), (1,1,2), …, (1,2,1), (1,2,2), … (6,6,6), also insgesamt 216 Zeilen. Die Würfel sind insofern unterscheidbar"
Meine Lösung war, wieder nach ca. 4h:
public class Wuerfel {
public static void main(String[] args) {
for (int a = 1; a < 7; a= a + 1)
{
for (int b = 1; b < 7; b= b + 1 )
{
for (int c = 1; c < 7; c = c + 1)
{
System.out.println("(" + a + "," + b + "," + c + ")");
}
}
}
}
}
Im Endeffekt habe ich es aber nur durch probieren herausbekommen. Denn Sinn dahinter, habe ich bis jetzt noch nicht verstanden. Ich habe mich belesen und habe versucht, irgendwo Erklärungen zu finden, wie verschachtelte Schleifen funktionieren, aber bis jetzt noch nichts verständliches gefunden. Das einzige, was ich weiss, ist dass sie von "innen beginnen"´.
Also zu meiner zweiten Frage: Kann mir jemand verschachtelte Schleifen erklären oder gute, verständliche Literatur empfehlen?
Vielen Dank im voraus und entschuldigt nochmal die Wall of Text.
Liebe Grüße