Aufgabe
Bilde sinnvolle Sätze, bei denen die folgenden Begriffe verwendet werden / bzw. vervollständige die Sätze …
- Programmiersprache / Sourcecode / Mensch
- Quellcode / Programmiersprache / Syntax
- Sourcecode / Compiler / Interpreter / Maschinencode
- Programmiersprache / Arten von Programmiersprachen /
- Die Funktion von Compiler bzw. Interpreter bestehen ….
- Interpreter / Laufzeit des ausführbaren Programmes
- Syntax / Compiler / Fehler
- Syntax / Programmiersprache
- Mit Hilfe eines Algorithmuses ….
- Algorithmus / Programmiersprache / Computer
- Java / Quellcode / Compiler / Bytecode / Interpreter
Lösung Vertiefungsaufgabe: Musterloesung_Java_Grundlagen_mit_Grafik
Weitere Übungsfragen zur Vorbereitung auf den Test/Klausur
Hinweis: Bei einigen Aufgaben können mehrere Antworten richtig sein.
1. Welche Aussage trifft auf ein Computerprogramm zu?
☐ A) Es enthält Anweisungen, die von einem Computersystem verarbeitet werden können.
☐ B) Es ist grundsätzlich dasselbe wie eine Programmiersprache.
☐ C) Es dient dazu, bestimmte Aufgaben mithilfe eines Computers auszuführen.
☐ D) Es besteht immer ausschließlich aus Maschinencode.
2. Welche Beispiele können als Algorithmus betrachtet werden?
☐ A) Eine genaue Schrittfolge zum Berechnen des Durchschnitts mehrerer Zahlen.
☐ B) Eine Kochanleitung mit eindeutig beschriebenen Arbeitsschritten.
☐ C) Eine Grafikkarte.
☐ D) Eine festgelegte Vorgehensweise zum Sortieren einer Namensliste.
3. Ein Java-Programm enthält eine Anweisung, die nicht nach den Regeln der Sprache geschrieben wurde. Welcher Bereich ist betroffen?
☐ A) Syntax
☐ B) Hardware
☐ C) Semantik
☐ D) Plattformunabhängigkeit
4. Ein Programm berechnet 5 + 3, obwohl eigentlich 5 * 3 berechnet werden sollte. Welche Aussage passt am besten?
☐ A) Die Anweisung kann syntaktisch korrekt sein.
☐ B) Es liegt möglicherweise ein logischer Fehler vor.
☐ C) Das Problem betrifft die Bedeutung bzw. Wirkung der Anweisung.
☐ D) Der Compiler muss diesen Fehler zwingend erkennen.
5. Welche Aussagen über Quellcode treffen zu?
☐ A) Er wird in einer Programmiersprache formuliert.
☐ B) Er kann von Menschen gelesen und bearbeitet werden.
☐ C) Java-Quellcode muss vor der normalen Ausführung verarbeitet bzw. kompiliert werden.
☐ D) Quellcode kann ausschließlich aus Nullen und Einsen bestehen.
6. Warum kann Maschinencode nicht ohne Weiteres auf jedem beliebigen Prozessor ausgeführt werden?
☐ A) Weil Maschinencode von der jeweiligen Prozessorarchitektur abhängig sein kann.
☐ B) Weil Prozessoren unterschiedliche Befehlssätze besitzen können.
☐ C) Weil Maschinencode grundsätzlich erst von Java übersetzt werden muss.
☐ D) Weil Maschinencode nur für Menschen bestimmt ist.
7. Was beschreibt ein Programmierparadigma?
☐ A) Eine grundlegende Art, Programme zu strukturieren und Probleme programmiertechnisch zu lösen.
☐ B) Ein bestimmtes Computermodell.
☐ C) Objektorientierung ist ein Beispiel dafür.
☐ D) Prozedurale Programmierung ist ein Beispiel dafür.
8. Ein Compiler erhält ein Programm als Quellcode. Welche Aufgaben kann er übernehmen?
☐ A) Den Quellcode in eine andere Codeform übersetzen.
☐ B) Bestimmte Fehler im Quellcode erkennen.
☐ C) Jeden logischen Fehler zuverlässig finden.
☐ D) Die Einhaltung bestimmter Sprachregeln überprüfen.
9. Was unterscheidet einen Interpreter typischerweise von einem klassischen Compiler?
☐ A) Ein Interpreter verarbeitet Anweisungen im Zusammenhang mit ihrer Ausführung.
☐ B) Ein Compiler übersetzt typischerweise Code vor der eigentlichen Ausführung.
☐ C) Ein Interpreter ist ein Hardwarebauteil.
☐ D) Beide dienen in unterschiedlicher Weise dazu, Programmcode ausführbar zu machen.
14. Welche Aussage erklärt das Prinzip „Write once, run anywhere“ am treffendsten?
☐ A) Java verwendet einen weitgehend plattformneutralen Zwischencode.
☐ B) Eine passende Laufzeitumgebung setzt diesen Code auf der jeweiligen Plattform um.
☐ C) Java erzeugt für alle Prozessoren exakt denselben Maschinencode.
☐ D) Ein einmal erstelltes Java-Programm kann grundsätzlich auf verschiedenen unterstützten Plattformen eingesetzt werden.
15. Eine Entwicklungsumgebung stellt mehrere Werkzeuge gemeinsam bereit. Welche gehören typischerweise dazu?
☐ A) Editor
☐ B) Debugger
☐ C) Funktionen zum Starten bzw. Kompilieren von Programmen
☐ D) Arbeitsspeicher des Computers
17. Welche Tätigkeit ist beim Debuggen sinnvoll?
☐ A) Variablenwerte während der Ausführung kontrollieren.
☐ B) Programmabläufe schrittweise verfolgen.
☐ C) Nach der Ursache eines Fehlers suchen.
☐ D) Grundsätzlich sämtliche Programmzeilen löschen.
18. Ordne die Situationen gedanklich einer Fehlerart zu. Welche Aussagen sind richtig?
☐ A) Eine schließende Klammer fehlt → möglicher Syntaxfehler.
☐ B) Ein Preis wird versehentlich addiert statt multipliziert → möglicher logischer Fehler.
☐ C) Während der Ausführung wird auf ein nicht vorhandenes Arrayelement zugegriffen → möglicher Laufzeitfehler.
☐ D) Ein Programm liefert ein falsches Ergebnis → es muss deshalb ein Syntaxfehler vorliegen.
20. Ein Programm soll denselben Befehl 50-mal ausführen. Warum ist eine Schleife sinnvoll?
☐ A) Die Anweisung muss nicht 50-mal im Quellcode wiederholt werden.
☐ B) Die Anzahl der Wiederholungen kann gesteuert werden.
☐ C) for oder while können dafür eingesetzt werden.
☐ D) Schleifen können grundsätzlich nur genau zweimal ausgeführt werden.
23. Ein Programm lässt sich problemlos kompilieren und starten, liefert aber bei der Berechnung eines Rabatts einen falschen Betrag. Was ist am wahrscheinlichsten?
☐ A) Ein logischer Fehler.
☐ B) Ein Syntaxfehler.
☐ C) Der Algorithmus bzw. die Berechnungslogik sollte überprüft werden.
☐ D) Das Programm kann keinen Fehler enthalten, weil es kompiliert wurde.
24. Welche Aussage fasst das Java-Prinzip am besten zusammen?
☐ A) Quellcode wird durch javac in Bytecode übersetzt, der anschließend von einer JVM verarbeitet werden kann.
☐ B) Quellcode wird von der Grafikkarte direkt ausgeführt.
☐ C) Java-Bytecode ist vollständig identisch mit Java-Quellcode.
☐ D) Die JVM trägt dazu bei, dass derselbe Bytecode auf unterschiedlichen Plattformen ausgeführt werden kann.
Übungsfragen zur Vorbereitung – Teil B bis F
Teil B – Fachbegriffe erklären und voneinander abgrenzen
1. Erklären Sie jeweils kurz in 1–2 Sätzen die folgenden Begriffe:
Programmiersprache – Maschinencode – Interpreter – Debugger – Variable – Datentyp
2. Erklären Sie den Unterschied zwischen Quellcode und Bytecode. Gehen Sie dabei auch darauf ein, wann diese beiden Codeformen bei Java auftreten.
3. Ein Programm kann Fehler enthalten, obwohl es sich starten lässt. Erklären Sie den Unterschied zwischen einem Fehler beim Übersetzen eines Programms und einem Fehler, der erst während der Programmausführung auftritt.
Teil C – Transfer und Begründung
1. Eine Firma entwickelt eine Java-Anwendung auf einem Mac. Ein Kunde möchte dieselbe Anwendung anschließend auf einem Windows-PC einsetzen.
Erklären Sie, warum die Anwendung nicht zwangsläufig neu programmiert werden muss. Verwenden Sie in Ihrer Erklärung die Fachbegriffe Quellcode, Bytecode und JVM.
2. Zwei Computer besitzen unterschiedliche Betriebssysteme. Auf beiden ist eine jeweils passende Java-Laufzeitumgebung installiert.
Erklären Sie, weshalb auf beiden Computern grundsätzlich dieselbe .class-Datei ausgeführt werden kann, obwohl die Computer unterschiedliche Betriebssysteme verwenden.
3. Ein Programm zur Berechnung einer Rechnung wurde ohne Fehlermeldung kompiliert. Statt 119,00 € berechnet es jedoch 81,00 €.
Erklären Sie,
a) warum eine erfolgreiche Kompilierung trotzdem möglich ist,
b) welche Fehlerart wahrscheinlich vorliegt und
c) mit welchem Werkzeug bzw. welcher Vorgehensweise die Ursache untersucht werden könnte.
4. Bewerten Sie fachlich folgende Aussage:
„Der Compiler versteht, was der Programmierer erreichen möchte. Deshalb kann er erkennen, ob der verwendete Algorithmus fachlich sinnvoll ist.“
Erklären Sie, was ein Compiler tatsächlich überprüfen kann und wo seine Grenzen liegen.
5. Ein Programm funktioniert bei vielen Eingaben problemlos. Bei einer bestimmten Eingabe bricht es jedoch während der Ausführung plötzlich ab.
Erläutern Sie,
a) welche Fehlerart hier vorliegen könnte,
b) warum der Compiler diesen Fehler möglicherweise nicht vorher erkannt hat und
c) wie ein Debugger bei der Fehlersuche helfen kann.
6. Ein Schüler sagt:
„Wenn mein Programm keine Syntaxfehler enthält, brauche ich es nicht mehr zu testen.“
Nehmen Sie fachlich Stellung. Nennen Sie mindestens zwei unterschiedliche Fehlerarten oder Probleme, die trotz korrekter Syntax auftreten können.
Zusatzaufgaben
Vergleichen Sie die folgenden drei Ebenen eines Java-Programms:
Java-Quellcode – Java-Bytecode – Maschinencode
Gehen Sie für jede Ebene darauf ein,
- wer bzw. was den Code verarbeitet,
- wie nah der Code an der Hardware ist und
- welche Bedeutung die jeweilige Ebene für die Plattformunabhängigkeit von Java besitzt.