Navigation überspringen

Übungen zu Vertiefung

Anwendungsentwicklung

Fragen

  1. Um eine Java-Anwendung auf einem Computer ausführen zu können, muss auf dem Computer eine ??? installiert sein. (Fülle die Lücke)
  2. Wofür steht die Abkürzung IDE?
    • integrated deployment environment
    • integrated deployment engine
    • integrated development environment
  3. Warum kannst du eine Processing Anwendung nicht in einem normalen Texteditor oder eine anderen Sorftware entwickeln?
  4. Zu welchem Zeitpunkt wird der Code so übersetzt, dass deine Plattform (Windows, Mac, Linux) ihn lesen kann?

Arten von Datentypen

Fragen

  1. Was sind die Unterschiede zwischen primitven Datentypen und Objekttypen?
  2. Warum haben Objekttypen den Standardwert null?
  3. Wie kann ich auf die Funktionen und Felder eines Objekts zugreifen?
  4. Erkläre die Prinzipien Call-By-Value und Call-By-Reference in eigenen Worten. Was kann passieren, wenn ich nicht darauf achte, dass es diese beiden unterschiedlichen Prinzipien gibt?

Assertions

Fragen

  1. Welcher Part einer Assertion ist optional?
  2. Wozu werden Assertions eingesetzt?

Aufgaben

1. Pin überprüfen
Schreibe ein Programm, dass dem Nutzer Zugriff auf seine Nutzerdaten gewährt, wenn er den richtigen Pin angibt. Simuliere das eingeben des Pin in Form einer von dir festgelegten Variable.

int korrekterPIN = 1234; 
int nutzerEingabe = 4567;   

Wenn der eingegebene Pin korrekt ist, so dem Nutzer in der Konsole angezeigt werden "Hallo Nutzer, hier sind ihre Nutzerdaten ...". Bei falscher Eingabe soll das Programm beendet werden und in der Konsole eine Fehlermeldung und der falsche Pin angezeigt werden.

2. Array addieren
Schreibe eine Funktion, die einen int-Array als Parameter übergeben bekommt und alle Zahlen im Array miteinander addiert. Das Ergebnis soll als int-Wert zurückgegeben werden.

Schreibe außerdem 3 Assertions, die deine Funktion überprüfen. Verwende für die Assertions folgende Beispiel-Arrays:

int [] foo = {  1,  2,  3};  // Erwartetes Ergebnis: 6
int [] bar = {-50, 25, 78};  // Erwartetes Ergebnis: 103
int [] foobar = {};          // Erwartetes Ergebnis: 0



Operatoren Teil 2

Fragen

  1. Die Assoziativität entscheidet in jedem Fall über Auswertereihenfolge der Operatoren. Wahr oder falsch?
  2. Logisches Oder und bitweises Oder haben denselben Rang. Wahr oder falsch?
  3. Welche Ausgabe liefert folgender Code?

    int age = 18;
    println(age >= 18 ? "foo" : "bar");
    • foo
    • bar
    • foo : bar

Aufgaben

1. Linksverschiebung
Gegeben ist folgender Code:

int value = 1;
int shift= 1;
 
int newValue = value << shift;
println(newValue );

Erweitere den Code so, dass dir in der Konsole mehrere verschiedene Werte angezeigt werden:

2
16
65536
-2147483648
1

Welche 2 Werte kannst du angeben, um den Wert 1 zu bekommen?

2. Konvertierung
Gegeben ist folgender Code:

int startWert = 5;
int zweiterWert = 0;
int erg = 0;
 
// aus 5 soll 7 werden
zweiterWert = ??;
erg = startWert | zweiterWert;
println(erg);
 
// aus 5 soll 4 werden
zweiterWert = ??;
erg = startWert & zweiterWert;
println(erg);
 
// Welcher Wert kommt raus?
erg = ~startWert ;
println(erg);

Welche Werte müssen in Zeile 6 und 11 bei zweiterWert angegeben werden, damit die Werte in der Kommentarzeile rauskommen? Welcher Wert kommt in der letzten Print-Anweisung raus?

Bewegung & Beschleunigung

Aufgaben

1. Zufällige Flugrichtung
Schreibe ein Programm, wo zu Beginn in der Mitte des Bildschirms ein Ball startet und dann in eine zufällig generierte Richtung weg und aus dem Bildschirm fliegt.

Versuche 3 verschiedene Lösungsvarianten:

  • Arbeite als Vektor mit 2 Variablen, die den Vektor beschreiben
  • Arbeite als Vektor mit PVector
  • Arbeite mit normalisierten Vektoren.

2. Abprallen
Entwickle die vorherige Aufgabe so weiter, dass der Ball von der Wand abprallt.

3. Fahrendes Auto
Schreibe ein Programm, das ein beschleunigendes und bremsendes Auto simuliert. Als "Auto" kannst du ein einfaches Recheck verwenden. Zu Beginn sollte das Rechteck am linken Bildschirm sein. Solange du die Leertaste gedrückt hältst, soll das Auto "Gas geben", also beschleunigen bis zu einer gewissen maximalen Geschwindigkeit. In dem Moment, wo du die Leertaste nicht mehr drückst, soll kein Gas mehr gegeben werden und das Auto soll bremsen bzw. entschleunigen.

Gleitkommazahlenformat

Fragen

  1. Schreibe die Zahl 4300 in der Form m · be auf. Schreibe eine andere Variante von der Zahl mit einem anderen Exponenten auf. 
  2. Was ist der Unteschied zwischen einer Festkommazahl und einer Gleitkommazahl?
  3. Was ist der Vorteil der Gleitkommazahldarstellung?
  4. Wann ist eine Gleitkommazahl normalisiert?
  5. Gleitkommazahlen werden im Computer in Form von Binärzahlen gespeichert. Dabei besteht die Binärezahl gemäß der Norm IEEE-754 aus mehreren Abschnitten. Wie lauten diese Abschnitte und in welcher Reihenfolge stehen diese?
  6. Normalerweise werden in der Mantisse einer Gleitkommazahl die Stellen vor und nach dem Komma gespeichert. Im IEEE-Format ist das nicht so - warum?
  7. Wahr oder falsch: In der Informatik gibt es die "Zahlen"  + Unendlich und - Unendlich.

Zahlensysteme

Fragen

  1. Welche 3 Zahlensysteme spielen in der Computertechnik die wichtigste Rolle?
  2. Was sind die Nennwerte in einem Zahlensystem?
  3. Wo wird z.B. in Processing oder in Paint oder in Photoshop das hexadezimale Zahlensystem verwendet?

Aufgaben

1. Binär → Dezimal
Rechne folgende Zahlen aus dem binären Zahlensystem in das dezimale Zahlensystem:

  • 110011
  • 100000
  • 101010
  • 100111

2. Dezimal → Binär
Rechne folgende Zahlen aus dem dezimalen Zahlensystem in das binären Zahlensystem:

  • 6540
  • 1000000
  • 91
  • 210012

3. Hexadezimal → Dezimal
Rechne folgende Zahlen aus dem hexadezimalen Zahlensystem in das dezimale Zahlensystem:

  • aeaeae
  • 22dd77
  • de17fa
  • 10fd3a

4. Dezimal → Hexadezimal
Rechne folgende Zahlen aus dem dezimalen Zahlensystem in das hexadezimale Zahlensystem:

  • 128
  • 678354
  • 250000
  • 364

Made with eXeLearning (New Window)