Syntax-Problem

#1

Hallo Ihr lieben

Ich habe dieses Semester eine VL zur Java-Programmierung und raffe irgendwie gar nichts :confused:

Jetzt haben wir 'ne hausaufgabe aufbekommen mit der ich absolut nicht klarkomme. Ich vesteh gar nicht was die da von mir wollen. Aber wenn ich das nicht bestehe krieg ich meinen Schein nicht. kann mir jemand erklaären wie das läuft? :frowning:

a) Gegeben sei folgendes Fragment:

if (x > 0); System.out.println("x ist positiv");

Was ist das Problem dieser Anweisung? Testen Sie es mit verschiedenen Werten von x (positive und negative).

b) Gibt es ein Problem mit den folgenden Code-Zeilen? Wenn ja, welches?

1. if (a > b) then c = 0;
2. if a > b { c = 0; }
3. if (a > b) c = 0;
4. if (a > b) c = 0 else b = 0;

c) Warum ist der Ausdruck (a < b < c) ungültig? Wie kann man den Ausdruck in Java korrekt
formulieren?

Außerdem sollen wir so 'ne Fibonacci-Reihe programmieren. Ausrechnen kann ich das ja noch (bin ja nicht ganz blöd :stuck_out_tongue_winking_eye: ), aber wie so’n programm aussehen könnt ist mir absolut schleierhaft.
Wäre schön, wenn mir jemand helfen könnte.

So jedenfalls lautet die Aufgabenstellung:

Die Folge der Fibonacci Zahlen beginnt mit F0 = 0 und F1 = 1. Jedes weitere Folgenglied ist
die Summe der beiden vorangehenden Glieder: Fn = Fn-1 + Fn-2

a) Schreiben Sie ein Programm, dass eine ganze Zahl z als Eingabe bekommt und ein Array mit den ersten z Fibbonaccizahlen erzeugt.

b) Das Programm soll dann die Quotienten der aufeinanderfolgenden Folgeglieder (als Gleitkommazahl) ausgeben.
(Der Wert nähert sich dem sogenannten goldenen Schnitt an.)

c) Stellen Sie sicher, dass ihr Programm keine Fehler produziert, wenn es mit einer ganzen Zahl aufgerufen wird (d.h. es werden keine Eingaben getätigt, die keine ganzen Zahlen sind)

Damit wir uns richtig verstehen. Ich will nicht, daß hier jemand meine Hausaufgaben macht. Ich wünsch mir einfach nur jemanden, der mir das vernünftig erklärt, da mir in der VL rein gar nichts klar wird und unser Tutor noch mehr und schneller redet, als er RedBull trinkt. :verzweifel:

Merci a tous

Eure Ilka ::manwink

#2

Du solltest genauer beschreiben, wo es hängt…

a) Gegeben sei folgendes Fragment:

Funktioniert das so, wie es da steht (wenn du es genau so in ein testprogramm einfügst und ausführst) ?

b) Gibt es ein Problem mit den folgenden Code-Zeilen? Wenn ja, welches?

Was sagt denn der Compiler, wenn du die Zeilen in ein Testprogramm einfügst und das dann zu compilieren versuchst?

Zum Fibonacci: Um den Bereich zwischen dem Wiedergeben der Aufgabenstellung und dem Verweis auf Google zu füllen, wären gezielte Fragen (und eigene Ansätze) angebracht…

#3

Viele deiner Fragen kannst du selbst ausprobieren, mit hohem Lerneffekt.

Was ist das Problem dieser Anweisung? Testen Sie es mit verschiedenen Werten von x (positive und negative).

Die if-Anweisung wurde mit einem Semilon abgeschlossen. Die Bedingung wird zwar ausgewertet, aber die Ergebnsianweisung gilt als nicht zur if-Anweisung zugehörig. Die Ausgabe wird daher immer die gleiche sein, egal, welches Vorzeichen x trägt.
Die fehlenden geschweiften Klammern könnten außerdem ein Problem machen. Siehe unten.

b)

  1. ist kein Java, das Schlüsselwort then gibts bspw. in Basic.
  2. Der Prüfausdruck für eine if-Anweisung muss in Klammern stehen
  3. Ist OK, kann man so machen. Es kann aber zu Problemen kommen, wenn man möchte, dass als Ergebnis der Bedingung mehrere Anweisungen bzw. ein Anweisungsblock ausgeführt werden sollen.
  4. Anweisungen werden immer mit einem Semikolon abgeschlossen. Diese Zeile ist daher nicht kompilierbar. Im Übrigen gilt das Gleiche wie zu 3.

c)
Es können immer nur 2 Elemente mit einander verglichen werden.
Eine gültige Anweisung könnte daher so aussehen:
if(a < b && b < c)

Aber wenn du diese Grundlagen noch nicht beherrscht, wird die Fibonacci-Reihe sicher ein Problem.