1 Aufgabe: Computer

Werbung
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
Vorname:
09.01.2017
Matr.-Nr.:
Punkte:
Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in
folgender Übung erfüllt habe:
Jahr: WS 2016/17
Übungsleiter: Alexander Syndikus Unterschrift: ___________________
1 Aufgabe: Computer-Aufbau
1.1 Prinzipieller Aufbau eines Computers (
/ 4,5)
Nennen Sie die wesentlichen Bestandteile eines Computers (Von-Neumann-Architektur)
CPU: Anm. die beiden Teile korrekt zuordnen (0,5 P)
__Recheneinheit (Arithmetic Logic Unit, ALU )__
__Steuerwerk oder Leitwerk (Control Unit)__
__Speicherwerk (Memory)__
__Eingabe- bzw. Ausgabewerk (I/O Unit)__
__Ein System, welches die Komponenten verbindet (Bus)__
Nennen Sie 3 BUS-Systeme, die die Komponenten verbinden:
__Addressbus__
__Datenbus__
__Steuerbus__
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 1/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
09.01.2017
Vorname:
1.2 Computer-Grundlagen (
Matr.-Nr.:
Punkte:
/ 7)
Sachverhalt
Antwort
Welches elektrische Bauteil ist die Grundlage einer CPU /
Speicherbausteinen / Gatter
Transistor
Nennen Sie 3 unterschiedliche physikalische
Speichertechniken, in denen digitale Daten gespeichert
werden können
Halbleiterspeicher, magnetische
Speicher, optische Speicher (3P)
Welche Logik wird in der Hardware-Computertechnik /
Dual-System verwendet?
Boolsche Logik
In der von-Neumann-Architektur benötigt 1 Zyklus
normalerweise 1 oder mehrere Takte?
mehrere
Schreiben Sie die Abkürzung CPU aus
Central Processing Unit
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 2/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
09.01.2017
Vorname:
Matr.-Nr.:
Punkte:
2 Aufgabe: Begriffe der Informatik
2.1 Bestimmen Sie welche Aussage korrekt ist (
/ 8)
Sachverhalt
Bedingung
nein
(
) Die in Sachverhalt ( X ) Die in Sachverhalt
gezeigte Zeichnung ist
gezeigte Zeichnung ist
ein Struktogramm
ein Programmablaufplan
ja
Ein Compiler ist
(
Eine CPU ist
( X ) Hardware
45670 ist in JAVA
) Hardware
( X ) Software
(
) Software
(
) ein Schlüsselwort ( X ) ein Literal
Ein Compiler gehört zum Betriebssystem
(
) stimmt
( X ) stimmt nicht
Bei Datenschutz geht es nur darum, dass
keiner Daten stiehlt/kopiert
(
) stimmt
( X ) stimmt nicht
In der Informatik versteht man unter
„Daten“ und „Information“ das gleiche
(
) stimmt
( X ) stimmt nicht
Debugger dienen zur Fehleranalyse
( X ) stimmt
(
2.2 Benennen Sie mit Begriffen der Informatik (
Sachverhalt
) stimmt
/ 6)
Begriff der Informatik
Eine Sammlung von Anweisungen, die so exakt definiert ist, Algorithmus
dass ein Computer sie ausführen kann
Bezeichnung der tatsächlichen Umsetzung / Programmierung Implementierung
Kleinste addessierbare Einheit im Speicher eines Computers Wort
(Von-Neumann-Architektur)
Im Betriebssystem gesetzte Variablen, die Auswirkungen auf Umgebungsvariablen
ein Programm haben (können) – z.B. „PATH“
Programm zum direkten Ausführen in einer Programmiersprache geschriebenen Programm (z.B. JAVA-Script)
Interpreter
Dateityp, in der z.B. Bild-/Audiodaten gespeichert sind
Binärdatei
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 3/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
Vorname:
09.01.2017
Matr.-Nr.:
2.3 Begriffe aus der objektorientierten Programmierung (
Sachverhalt
Punkte:
/ 9 P)
Begriff der Informatik
Wie werden „class“, „public“, „int“, „double“, „return“ und
weitere „reservierte“ Wörter (in JAVA) noch bezeichnet?
Schlüsselwörter
void main () // ← Sonderstellung der Funktion „main“ - wie
bezeichnet man diese Stelle?
Einsprungpunkt
Wie bezeichnet man die Kontrollstruktur „while“?
Schleife
Wie bezeichnet man die beiden Strings der Methode?
(Übergabe-)Parameter
class Adressen {
public Adressen (String vorname, String nachname) { … }
}
Wie bezeichnet man die zusammengefassten Anweisungen
inklusive der beiden „{“ und „}“?
{
int faktor = 10;
while ( z < b ) z = z * faktor;
}
Anweisungsblock
Wie bezeichnet man „= 0“ aufgrund der angegebenen
Definition?
class Adressen {
private int anzahl_adressen = 0;
}
Initialisieren
Was benötigt man um in einem Programm, das die Klasse
Adressen verwendet um den Wert für „anzahl_adressen“ zu
setzen?
class Adressen {
private int anzahl_adressen = 0;
}
Einen „Setter“
Welche Anweisung muss in einer (Get-)Methode mindestens Return-Anweisung
1 mal vorkommen, das die Klasse Adressen verwendet um
den Wert für „anzahl_adressen“ auszulesen?
Was sind „char“ „int“ „long“ „float“ „double“ in JAVA ?
Klausur_CuB_WS2016_17_Uebung_2_loesung
primitive Datentypen
Seite: 4/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
Vorname:
09.01.2017
Matr.-Nr.:
Punkte:
3 Aufgabe: Stellenwertsysteme
3.1 Welches Zahlensystem ist ein/kein Stellenwert-System? (
/ 1,5)
Antwort: Stellenwertsystem=Ja / kein Stellenwertsystem=Nein
Antwort
Zahlensystem
Ja
Binär-System
Ja
SystemHexadezimal-System
Nein
Römische-Ziffern-System
3.2 Umrechnung Dezimalsystem → Dualsystem (
/ 5)
Gegeben sei die Dezimalzahl 139 wandeln Sie diese Zahl in die Zahlendarstellung zur Basis 2 um.
Inklusive Rechenweg und Proberechnung.
139 / 2 = 69 R 1
69 / 2 = 34 R 1
34 / 2 = 17 R 0
17 / 2 =
8 R 1
8 / 2 =
4 R 0
4 / 2 =
2 R 0
2 / 2 =
1 R 0
1 / 2 =
0 R 1
Lösung:
(Rechenweg 2 P)
10001011(2)
(1 P)
Probe: 128 + 8 + 2 + 1 = 139 (2 P)
3.3 Umrechnung Hexadezimalsystem → Dezimalsystem (
/ 4)
Gegeben sei die Zahl „AB“ – wandeln Sie diese Zahl in das Dezimalsystem um.
Inklusive Rechenweg.
11 (B) *
10 (A) *
1 =
11
16 = 160
(Rechenweg 2 P)
=====
171
Lösung: 171(10) (2 P)
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 5/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
Vorname:
09.01.2017
Matr.-Nr.:
3.4 Umrechnung Dezimalsystem → Zahl Basis 8 (
Punkte:
/ 5)
Gegeben sei die Dezimalzahl 190 – wandeln Sie diese Zahl in die Zahl zur Basis 8 um.
Inklusive Rechenweg und Proberechnung.
190 / 8 = 23 R 6
23 / 8 =
2 R 7
2 / 8 =
0 R 2
Lösung:
276(8)
(Rechenweg 2 P)
(1 P)
Probe: 2*64 + 7*8 + 6 = 128 + 56 + 6 = 190 (2 P)
4 Aufgabe: Datentypen
4.1 Worin unterscheiden sich „long“ und „Long“ in JAVA? (
long
ist ___ ein primitiver Datentyp___
Long
ist ___ vom Typ Objekt _________
/ 2)
4.2 Worin unterscheiden sich „int“ und „float“ ? ( / 1)
(Tipp: Beschreiben Sie kurz wofür sich der Datentyp eignet)
„int“ eignet sich nur für Ganzzahlen; „float“ eigent sich für Kommazahlen.
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 6/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
Vorname:
4.3 Datentypen ermitteln (
09.01.2017
Matr.-Nr.:
Punkte:
/ 9)
Vervollständigen Sie die Programmierzeile anhand der Beschreibung:
Verwenden Sie den „speichergünstigsten“ Datentyp.
Eine Funktion soll die Multiplikation zweier Integer-Zahlen (int) berechnen (ohne
Genauigkeitsverlust).
__long_____ Mult2int ( int a, int b ) { (1 P)
Eine Funktion soll den Prozentwert einer Integer-Zahl (int) berechnen (Rückgabe in maximaler
Genauigkeit).
__double_____ Prozent ( int wert, float prozent ) { (1 P)
Eine Funktion soll aus einem String das erste Zeichen zurückgeben.
__char_____ ZeichenInStringAnPosition1 ( String text ) { (1 P)
Eine Funktion soll ein Array (primitiver Datentyp Integer) auswerten und den höchsten Wert
zurückgeben.
__int_____ MaxAusArray ( __int []__ array ) { (2 P)
Eine Funktion soll ein Array (Objekt-Datentyp Integer) auswerten und den Mittelwert zurückgeben
(maximale Genauigkeit).
__double__ MittelwertArray ( __Integer[]__ array ) { (2 P)
Eine Funktion soll die Multiplikation zweier byte-Variablen berechnen.
__int_ ByteMalByte ( __byte__ ganzzahl_1, __byte__ ganzzahl_2 ) { (1 + 0,5 +0,5 P)
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 7/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
Vorname:
09.01.2017
Matr.-Nr.:
Punkte:
5 Aufgabe: JAVA-Programmierung
5.1 Programmanalyse: einfaches Programm (
/ 2)
Geben Sie die Ausgabe am Bildschirm an.
public class Test1 {
public static void main(String[] args) {
int x = 1;
while ( x < 30 ) {
x = x * 2;
System.out.println ("x = " + x);
}
} // end main
} // end Test1
Bildschirmausgabe:
x = 2
x = 4
x = 8
x = 16
x = 32
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 8/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
09.01.2017
Vorname:
Matr.-Nr.:
5.2 Programmanalyse: Fehleranalyse (
Punkte:
/ 4)
Markieren Sie in der Zeile den Fehler an der betreffenden Stelle mit einem „*“ und schreiben
Sie neben die Zeile das entsprechende fehlerhafte/fehleden Zeichen, Schlüsselwort oder eine
Bemerkung
Hinweis: Je korrekt gefundenem Fehler ½ Punkt.
public * Test {
public
//
class
static
void
MeineKlasse
obj
main
(String[] args) { //
= * MeineKlasse() ; // new
obj.MYprint*; // ()
} //
} //
class
MeineKlasse { //
super
public
int
a = 0 ; // Schlüsselwort „super“ an dieser Stelle nicht erlaubt
Myprint ()
{ //
System.out.println("OBJECT = " * this.a) ; // +
} //
public
MeineKlasse * { // ()
a = a + 1 * // ;
* // }
} //
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 9/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
Vorname:
09.01.2017
Matr.-Nr.:
5.3 Programmanalyse: Non-static, static, final static (
Punkte:
/ 7)
Geben Sie die Ausgabe am Bildschirm an. (4P)
Könnte man für den Zugriff auf „obj1.a“ bzw. „obj1.b“ noch etwas anderes schreiben?
Kreuzen Sie an. (2P)
Und wenn Sie ja angekreuzt haben, was könnte man schreiben? (1P)
obj1.a
(X) ja / ( ) nein ___StaticNonStatic.a_____ (2P)
obj1.b
( ) ja / (X) nein _________________________ (1P)
public class StaticTest {
public static void main(String[] args) {
StaticNonStatic obj1 = new StaticNonStatic();
StaticNonStatic obj2 = new StaticNonStatic();
System.out.println("obj1.a = " + obj1.a);
System.out.println("obj2.a = " + obj2.a);
System.out.println("obj1.b = " + obj1.b);
System.out.println("obj2.b = " + obj2.b);
}
}
class StaticNonStatic {
public static int a = 10;
public int b = 0;
StaticNonStatic () {
this.b = this.a;
this.a--;
}
}
Bildschirmausgabe:
obj1.a = 8
obj2.a = 8
obj1.b = 10
obj2.b = 9
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 10/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
09.01.2017
Vorname:
5.4 Vererbung und Gültigkeit (
Matr.-Nr.:
Punkte:
/ 10)
Geben Sie die Ausgabe am Bildschirm an. Geben Sie eine kurze Erklärung an, diese wird
berücksichtigt (trennen Sie diese mit „//“ ab).
public class OberUnterTest {
public static void main(String[] args) {
int x = 1;
UnterKlasse objekt1 = new UnterKlasse( 9 );
System.out.println ("(main)x = " + x);
} // end main
} // end OberUnterTest
class OberKlasse {
int x = 0;
public OberKlasse ( int x ) {
this.x = x * 2;
}
} // end OberKlasse
class UnterKlasse extends OberKlasse {
int x = super.x * 2;
public UnterKlasse ( int x ) {
super ( x );
System.out.println ("x
= " + x);
System.out.println ("super.x = " + super.x);
System.out.println ("this.x
= " + this.x);
}
} // end UnterKlasse
Bildschirmausgabe:
x
= 9
// Konstruktor(UnterKlasse)-Parameter-Wert
super.x = 18
// Attribut von Oberklasse; Konstruktor berechnet x * 2
this.x
// Attribut von Unterklasse; initialisiert mit super.x * 2
= 36
(main)x = 1
// lokal in main
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 11/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
09.01.2017
Vorname:
Matr.-Nr.:
Punkte:
5.5 Aufgabe Potenz: 2y
f : ℕ → ℕ mit f (y) = 2y mit y  ℕ
5.5.1 Schreiben Sie einen Algorithmus zur Berechnung der Formel (3)
Verwenden Sie fortgesetzte Multiplikation in dem Lösungsweg.
1. ___Gegeben sei eine natürliche Zahl y_____
2. ___Multipliziere beginnend bei 1 so oft mit 2 wie durch y angegeben wird ____
3. ___Das Ergebnis der fortgesetzten Multiplikation ist das Resultat.__________
5.5.2 Schreiben Sie eine Funktion (JAVA) zur Berechnung des
Algorithmus (12)
Annahme: y soll nicht größer als 30 angegeben werden (max. Ergebnis somit noch im Bereich
Integer); dies soll nicht abgeprüft werden.
Realisieren Sie dies über eine geeignete Schleife.
1 ___int____ ZweierPotenz_y ( __int__ y ) {
(2 P)
2 ___ int ergebnis = 1 ; _________________
(2 P)
3 ___ for ( int i = 1; i <=y ; i++ ) ___________
(2 P)
4 ___{_________________________________
(1 P)
5 ______ergebnis = ergebnis * 2 ; __________
(2 P)
6 ___}_________________________________
(1 P)
7 ___return ergebnis ; ____________________
(2 P)
8}
Anmerkung: Lösung mit while = 1P Abzug, fehlende „;“ = 0,5P Abzug, falsche Zeichen z.B. „≤“
oder „=<“ statt „<=“ 0,5P Abzug
Klausur_CuB_WS2016_17_Uebung_2_loesung
Seite: 12/13
Übungs-Klausur: Informatik, CuB-dualer Studiengang WS 2016/17
Alexander Syndikus, h_da, Fb Informatik
Nachname:
09.01.2017
Vorname:
Matr.-Nr.:
Punkte:
Vom Prüfer auszufüllen:
Aufgabe Punkte erreichte Punkte
1.1
4,5
1.2
7
2.1
8
2.2
6
2.3
9
3.1
1,5
3.2
5
3.3
4
3.4
5
4.1
2
4.2
1
4.3
9
5.1
2
5.2
4
5.3
7
5.4
10
5.5.1
3
5.5.2
12
Summe
100
Notenschlüssel:
min.
Punkte
Note
100
130
170
200
230
270
300
330
370
400
500
Klausur_CuB_WS2016_17_Uebung_2_loesung
98
92
87
82
76
70
65
59
53
50
0
Seite: 13/13
Herunterladen