Erste Schritte Bitte Hilfe bei Übungsaufgaben!

Enorion

Mitglied
Hallo zusammen,
ich bin neuer Student in der Informatik und werde jetzt wohl auch des öfteren hier vorbei schauen :)

Hab Probleme mit folgenden Übungsaufgaben. Die letzte ist mir ein Rätsel, vielleicht könnte mir jemand da eine Lösung mit Erklärung dazu geben. Und was man dafür wissen muss!
Aufgabe zwei, hab ich gelöst. Ist hier nur nochmal gezeigt, da in Aufgabe 3 danach gefragt wird!
Aufg2 (zu3):
http://www.bilder-upload.eu/show.php?file=860df2-1508843437.png
860df2-1508843437.png

Aufgabe 3:
http://www.bilder-upload.eu/show.php?file=d2accc-1508843627.png
d2accc-1508843627.png

Aufgabe 4: Hier wenn möglich Erklärung zur Lösung. Wobei sich sowas ja nachvollziehen lässt. http://www.bilder-upload.eu/show.php?file=3e61c0-1508843725.png
3e61c0-1508843725.png

Meine Lösung bisher zu 3:
Java:
    Scanner sc = new Scanner(System.in);
    int a;
    int b;
    int index;
 
    index = 0;

/* Ab hier sollen Sie den Programmcode ergänzen */
    System.out.print ("a: ");
    a = sc.nextInt();
 
    System.out.print ("b: ");
    b = sc.nextInt();
 
   while ( index < a )
    {
        System.out.println (b * (index + 2));
        index = index + 2;
Ein paar Klammern fehlen vom Kopieren, das mal ignorieren..
Hier kriege ich das gefragte größtenteils heraus. ABER: wenn A etwas ungerades ist, wie z.B. 13--- Hier kriege ich auch das b-fache von 14 raus?? Ich hab doch aber index < a gesetzt. D.h. 14 dürfte garnicht mehr *b genommen werden. Aber selbst dann fehlt mir die vervielfachung von 13? Ich blick das nicht. Oder hab ich hier was Grundlegendes falsch verstanden? Ist das überhaupt machbar mit nur der while schleife?


Alles noch sehr elementare Sachen, hoffe ihr Erfahrenen helft mir!
War dieses Wochenende komplett damit beschäftigt Mathe zu lernen und Sachen nachzuholen, da wir im Ersten Semester bei uns im Grunde genommen direkt 3 Fächer haben die mit Mathe zu tun haben. Dieses Wochenende wollt ich mich dann viel mit Programmieren beschäftigen, das Tempo an der Uni ist schon fordernd, so seis :)
 
Zuletzt bearbeitet von einem Moderator:

Enorion

Mitglied
Das Index +2 ist da, damit die erste Ausgabe nicht = 0 ist. Denn 0 ist ja keine gerade Zahl. Hab jetzt eine Lösung gefunden!! Aber : kann man das ganze als Analog zu Aufgabe 2 sehen? Also ist meine Lösung akzeptabel, was denkst du?
Java:
 System.out.print ("a: ");
    a = sc.nextInt();
 
    System.out.print ("b: ");
    b = sc.nextInt();
 
    index = index + 2;
 
   while ( index <= a   )
    {
       System.out.println (b * (index));
       index = index + 2;
       if (index >= a) System.out.println(b * (index - 1));
     
    }

Da ich hier eine If hab einbauen müssen... Aufgabe erfüllt. Aber Analog zu Aufg 2? Da weiß ich ehrlich gesagt nicht 100% was gemeint ist.
 
Zuletzt bearbeitet von einem Moderator:

Enorion

Mitglied
Mit der 0 hast du recht ups!

Ich ignoriere doch nicht deinen Vorschlag. Hab doch sogar die 2 herausgenommen. Aber wenn ich nur die 2 herausnehme und den Rest so lasse, (d.h. ohne die den If Satz dort), dann krieg ich nicht die richtigen Ergebnisse. Dann fehlt mir das b-fache von A (falls A ungerade). Tut mir leid wenn du das so verstanden hast.

Bei der Aufgabe an sich habe ich nochmal etwas kürzen können um Zeilen, jetzt sieht es eigentlich ganz gut aus?
Java:
System.out.print ("a: ");
    a = sc.nextInt();
 
    System.out.print ("b: ");
    b = sc.nextInt();
 
 
   while ( index <= a   )
    {
       System.out.println (b * (index ));
       index = index + 2;
       if (index > a) System.out.println(b * (index - 1));
     
    }
 
Zuletzt bearbeitet von einem Moderator:

Enorion

Mitglied
Code in Code-Tags: [code=java]//JAVA CODE HERE[/code]
Dank Javinners Beitrag versteh oder viel mehr hab ich die Zeile zur Kenntnis genommen... Da auf ersten Blick ich davon ausgegangen bin das da etwas falsch gepostet wurde oder so...

@Admin Hättest man direkt " Verwende Code Tags!!! " geschrieben, wäre das nicht untergegangen. Hätte zwar suchen müssen, aber hätte gewusst was du von mir willst.
Der Ton im Forum ist irgendwie nicht gerade gut... geschweige denn das Feedback.

Thema Feedback: denke die meisten gehen wohl eh davon aus ich möchte nur meine Aufgaben gemacht haben oder möchten nicht die ganzen Aufgaben durch gehen/lesen. Was ich nicht verübeln kann, da ich bisher keine Konkreten Fragen stellen konnte außer zu 3.

Ps: Hab jetzt alle Antworten. Die 4 ist doch überraschend einfach, wenn man aufhört auf dem Schlauch zu stehen.
 

Flown

Administrator
Mitarbeiter
Der Ton im Forum ist irgendwie nicht gerade gut... geschweige denn das Feedback.
Wo ist hier der Ton vergriffen? Ich hab dir ja in Prosaform eine Lösung geliefert (und als Student sollte das kein Problem darstellen).
Thema Feedback: denke die meisten gehen wohl eh davon aus ich möchte nur meine Aufgaben gemacht haben oder möchten nicht die ganzen Aufgaben durch gehen/lesen
Hab Probleme mit folgenden Übungsaufgaben. Die letzte ist mir ein Rätsel, vielleicht könnte mir jemand da eine Lösung mit Erklärung dazu geben. Und was man dafür wissen muss!
Klingt schwer nach: "Ich lass mal machen".

Ich mach das hier auch schon einige Zeit und meistens lauft es darauf hinaus, das eine Lösung geliefert wird, die 1:1 kopiert wird und irgendwann später wird gefragt, was das eigentlich macht. Das geht am Sinn des Programmierens/Problemlösens vorbei.

Ps: Hab jetzt alle Antworten. Die 4 ist doch überraschend einfach, wenn man aufhört auf dem Schlauch zu stehen.
Wenn du schon die Lösungen hast, dann stell sie doch hier rein. Hat 2 Vorteile: Review von deiner Lösung und 2. die Nachwelt hat auch was davon.
 

Enorion

Mitglied
Lösung der 3 steht ja schon dort. Jedenfalls fällt mir nichts besseres ein, obs richtig ist sehe ich dann morgen. Jedenfalls ist die Ausgabe korrekt.

Die 4 wäre eigentlich nur Anzahl = (Befehl für Scann) und im zu editierenden Bereich steht ja index * index. Das durch index * 2 ersetzen. Die Ausgabe ist korrekt. Also gehe ich mal davon aus das es richtig ist. Aber auch hier warte ich bis morgen.

Gefragt hab ich hier im Forum nicht um es einfach machen zu lassen, sondern weil ich für diese Aufgabe ewig gebraucht habe. Bin davon ausgegangen es alleine nicht lösen zu können... Schön das es doch geklappt hat :) Da ich die erste Woche bisher überwiegend Mathe nachgeholt habe im Studium und das neue gelernt habe, auch um Aufgaben bearbeiten zu können (die im Gegensatz hierzu strenger bewertet werden, da hier lediglich 20% erreicht werden müssen in den ersten zwei Wochen, die ich schon mit Aufgabe 1 & 2 habe)
musste ich sozusagen heute das ganze erarbeiten. Da morgen Übungen etc. sind die dort ansetzten... Und dann wirds noch mehr bzw. unverständlicher. So Probleme möchte ich erst gar nicht zu lassen.. Kenne mich zu gut und weiß, das ich sonst zuviel Aufschiebe, weil meine Frustation zu groß ist.^^
 

Javinner

Top Contributor
@Enorion
Der Ton im Forum ist irgendwie nicht gerade gut... geschweige denn das Feedback
Wenn man hier länger ist und beinahe täglich reinschaut, dann kann man etwas beobachten, und zwar:
  • in der Woche melden sich gefühlt 5 neue Mitglieder an.
  • der erste Post ist keine kurze Vorstellung, gar Begrüßung, sondern es wird locker aus der Hüfte geschossen, man brauche Hilfe, am besten den Code zu der oder jener Aufgabe.
  • dabei ist es leider keine Regel, dass die bisherigen Bemühungen (Code) von dem Fragesteller gepostet werden, um seinen Gedankengang aufzuzeigen.
  • die Aufgaben sind teils sehr einfach gestrickt und hin und wieder stellt es sich raus, dass der Fragesteller im dritten Semester eines Informatikstudiums ist. (wie hat man bis zum Dato seine Zeit verbracht? und sollte man sich für das Thema nicht mehr interessieren, wenn man sich dazu bewegt hat, dies zu studieren?)
  • in einigen Fällen kommt der Hilferuf irgendwann Freitag Abend. Dann hört man bis Sonntag nichts, auch keine Rückmeldung, damit dann gegen 22 Uhr am Sonntag der Alarm losgeht, und man es auf biegen und brechen versucht, seinen Pflichten nachzukommen.
  • wenn es um Tutorials oder Literatur geht, soll alles möglichst neu und vor allem für Lau zu haben sein

Anfangs dachte ich auch anders und war eigentlich der Meinung, man solle doch geschwind die paar Zeilen Code schreiben. Aus heutigen Sicht teile ich die Meinung der Administration, wenn es darum geht, nicht die Code-Sau für Menschen zu sein, welche eigenen Aufgaben und Pflichten nicht nachkommen wollen. Viel mehr ist das Heranführen an Lösung der Kern der Sache und wird dem ernsthaft Interessierten wesentlich mehr unter die Flügel greifen, als alles andere.

Wie du siehst, sind die Leute hier ganz nett und helfen einem beim lernen, sich selbst zu helfen! Wie ging die Weisheit mit dem Fisch und der Angel nochmal ;) Drum bleib am Ball, bleib stets höflich und vor allem, lerne!
Dann wird es hier laufen, denke ich.

edit: benutze die Suchfunktion des Forums, beinahe jedes Anfängerproblem wurde schon behandelt und man findet in einigen Treads viel interessantes
 

Flown

Administrator
Mitarbeiter
Lösung der 3 steht ja schon dort. Jedenfalls fällt mir nichts besseres ein, obs richtig ist sehe ich dann morgen. Jedenfalls ist die Ausgabe korrekt.
Ich kann dir mal ein paar Alternativen zeigen:
Java:
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();

int index = 0;
while (index * b <= a) {
  System.out.println(index * b);
  index++;
}

for (int i = 0; i <= a / b; i++) {
  System.out.println(i * b);
}

for(int i = 0; i <= a; i += b) {
  System.out.println(i);
}
Wobei ich Variante 2 zum Parallelisieren und Variante 3 für die serielle Verarbeitung bevorzugen würde.
 

Neue Themen


Oben