2009 1 gin fom - Hochschule Bochum

Werbung
FOM Essen / FH Bochum Fachbereich { Mechatronik und Maschinenbau
Prof. Dr. M. Eikelberg
SS 2009
Fachprufung Informatik
06.07.2009
Name:
Vorname:
Matrikelnr.:
Nummer des USB-Sticks:
Abgabezeit:
Unterschrift:
Hinweise fur die Aufsicht:
1. Zugelassene Hilfsmittel sind in den Anmerkungen zur Klausur erlautert.
2. Dauer der Klausur: 180 Minuten.
Bemerkungen zum Ablauf der Klausurbearbeitung:
Bewertung in Punkten:
Aufgabe
1
2
3
Punkte
Benotung:
(in Worten:
)
Datum:
Unterschrift 1. Prufer:
Datum:
Unterschrift 2. Prufer:
Klausureinsicht am:
um
Student/Studentin:
:
Uhr, bestatigt durch
Prufer/Prufungsamt:
1
Aufgabe 1:
a) Fuhren Sie schriftlich und im Dualsystem folgende Rechnung durch:
110111011B 10101B
b) Bestimmen Sie fur den nachfolgenden Ausdruck die kanonische alternative Normalform
(KANF):
(A # B) (B C )
Hinweis 1: Das Zeichen steht fur die Antivalenz (exklusives ODER).
Hinweis 2: Fur Ihre Losungen zu Aufgaben 1 enthalt diese Aufgabenstellung am Ende
separate Blatter. Notieren Sie Ihre Losungen bitte auf diesen Blattern.
7 Punkte
Aufgabe 2:
Das folgende Struktogramm beschreibt ein Programm, das die Umrechnung einer ganzen
Zahl in eine Dual-, Octal- oder Hexadezimalzahl durchfuhrt
Legen Sie fur die Bearbeitung der Programmieraufgaben ein Eclipse Basisverzeichnis
ebvklausur an sowie in diesem Verzeichnis zu dieser Aufgabe ein Java-Basisverzeichnis
kljpr002. Programmieren Sie in diesem Java-Basisverzeichnis ein Java-Programm
klaufg02.Codierung
das die im Struktogramm beschriebene Verarbeitung durchfuhrt. In diesem Programm soll
eine Methode
private static char weiterPruefung()
aufgerufen werden. Den Programmcode zu dieser Methode nden Sie in einer Datei mit
Namen weiterpruefung.java. Sie nden diese Datei auf dem Ihnen im Rahmen der Klausurbearbeitung zur Verfugung gestellten Stick oder aber unter der URL
ftp://PC132W.bsnw.fb4.fh-bochum.de/eikelberg/javakurs/download/klausur/weiterpruefung.java
Laden Sie die Datei weiterpruefung.java herunter und ordnen Sie die in dieser Datei
enthaltene Methode an einer geeigneten Stelle in Ihrer Quelldatei klaufg02.Codierung
an.
Erstellen Sie Ihr Programm entsprechend dem nachfolgenden Struktogramm, compilieren
Sie das Programm und lassen Sie das Programm mindestens einmal laufen. Sie konnen Ihr
Programm testen, in dem Sie ganze Zahlen eingeben und die Umwandlung in andere Zahlensysteme mit Hilfe des Windows-Programms "Rechner" (Ordner Zubehor) uberprufen.
Achtung - das Struktogramm folgt auf der nachsten Seite ...
21 Punkte
2
3
Aufgabe 3:
Erstellen Sie in einem Java-Basisverzeichnis kljpr003 ein Programm
klaufg03.Fahrtenbuch
das Eintragungen in ein Fahrtenbuch einliest und in einer Ausgabedatei speichert. Zu jeder
der Fahrten sollen Start-Ort, Ziel-Ort, Start-Zeit, Ziel-Zeit und die gefahrenen Kilometer
eingelesen werden. Aus diesen Daten soll dann jeweils die Durchschnittsgeschwindigkeit
berechnet werden.
Beginnen Sie die Bearbeitung der Aufgabe damit, dass sie in Ihrem Eclipse Basisverzeichnis ebvklausur ein Java-Projekt kljpr003 anlegen und dort in einem Paketverzeichnis
klaufg03 eine Klasse klaufg03.Fahrtenbuch mit einer main-Methode anlegen. Codieren
Sie in dieser main-Methode die folgende Verarbeitung:
1. Beginnen Sie Ihr Programm mit einer Startmeldung, in der Ihr Nachname, Vorname
und Ihre Matrikelnummer erscheinen sollten.
2. Legen Sie einen 2-dimensionalen String-Array mit Namen fahrtenBuch aus 100 Zeilen
und 6 Spalten an.
3. Deklarieren Sie eine int-Variable anzahlFahrten und initialisieren Sie diese Variable
mit dem Wert Null.
4. Legen Sie einen eindimensionalen String-Array mit Namen eintragArten an, der die
folgenden Zeichenketten enthalt: "Start-Ort", "Ziel-Ort", "Start-Zeit", "Ziel-Zeit",
"gefahrene km" und "Durchschnittsgeschwindigkeit".
5. Solange weniger als 101 Fahrten eingegeben wurden und solange eine weitere Fahrt
eingegeben werden soll, sollen wie folgt Daten zu einer neuen Fahrt eingelesen werden:
Fur eine Fahrt mit Index anzahlFahrten sollen die Daten in der Zeile des Arrays fahrtenBuch mit Index anzahlFahrten gespeichert werden. In den ersten beiden Spalten
des Arrays sollen dabei der Start-Ort und der Ziel-Ort gespeichert werden. Die dritte
und vierte Spalte sollen die Start-Zeit und die Ziel-Zeit aufnehmen, wobei diese Daten
im Format "hh:mm" eingegeben werden sollen sowie im Datentyp String gespeichert
werden sollen. Die funfte Spalte soll die gefahrenen Kilometer aufnehmen, die ebenfalls zunachst im String-Format eingelesen und gespeichert werden sollen. Verwenden
Sie fur die Eingabeauorderung den oben angelegten String-Array eintragArten. Dies
ermoglicht Ihnen, den Eingabevorgang in Form einer for-Schleife zu codieren. Fragen
Sie nach der Durchfuhrung des Einlesevorgangs ab, ob ein weiterer Fahrtenbucheintrag
eingelesen werden soll und fuhren Sie einen erneuten Einlesevorgang fur einen Fahrtenbucheintrag durch, sofern weniger als 101 Fahrten eingegeben wurden und solange
eine weitere Fahrt eingegeben werden soll.
6. Berechnen Sie in einer Schleife fur jede Fahrt die Durchschnittsgeschwindigkeit und
speichern Sie die Durchschnittsgeschwindigkeit im String-Format fur jede Fahrt in der
sechsten Spalte des Arrays fahrtenBuch. Hierzu mussen Sie zunachst die in der funften Spalte gespeicherte km-Angabe in den Datentyp double umwandeln. Anschlieend
sollten Sie analog zu nachfolgendem Programmcode die Zeitangaben in der dritten
und vierten Spalte in ein Datumsformat umrechnen und die Zeitdierenz im Datentyp double, angegeben in Stunden mit Nachkommastellen berechnen. Aus der so
bestimmten Zeitdierenz und der km-Angabe konnen Sie dann die Durchschnittsgeschwindigkeit berechnen.
4
Die Umwandlung der Zeitangaben in der in der dritten und vierten Spalte in ein
Datumsformat und die Berechnung der Zeitdierenz im Datentyp double sollte analog
zu nachfolgendem Programmcode geschehen:
// import-Anweisungen fuer die Umwandlung der Zeitangaben
import java.text.DateFormat
import java.text.ParseException
import java.util.Locale
...
...
...
String startZeitString = "13:00"
String endZeitString = "14:30"
// Zeitangaben in msec umrechnen
Locale german = Locale.GERMAN
DateFormat startZeit = DateFormat.getTimeInstance(DateFormat.SHORT,german)
try
f
startZeit.parse(startZeitString)
g
catch (ParseException e)
f
System.out.println("Fehlerhafte Start-Zeit: "+startZeitString)
g
DateFormat endZeit = DateFormat.getTimeInstance(DateFormat.SHORT,german)
try
f
endZeit.parse(endZeitString)
f
catch (ParseException e)
f
System.out.println("Fehlerhafte End-Zeit: "+endZeitString)
f
// Zeitdifferenz berechnen
long startZeitMsec = startZeit.getCalendar().getTimeInMillis()
long endZeitMsec = endZeit.getCalendar().getTimeInMillis()
long fahrtZeitMSec = endZeitMsec - startZeitMsec
double fahrtZeit = (double)fahrtZeitMSec / 3600000
...
...
...
5
Sie nden diesen Programmcode in einer Datei zeitangaben-umrechnung.java, die
auf dem Ihnen im Rahmen der Klausurbearbeitung zur Verfugung gestellten Stick
oder aber unter der URL
ftp://PC132W.bsnw.fb4.fh-bochum.de/eikelberg/javakurs/download/klausur/weiterpruefung.java
gespeichert ist.
7. Geben Sie die im Array fahrtenBuch gespeicherten Datensatze in eine Ausgabedatei
daten/fahrtenbuch.txt aus. Die Ausgabe sollte dabei wie in folgemdem Beispiel
gestaltet werden:
Fahrt 1:
Start-Ort: Essen
Ziel-Ort: Bochum
Start-Zeit: 9:15
Ziel-Zeit: 9:35
gefahrene km: 20
Durchschnittsgeschwindigkeit: 60.0 km/h
Fahrt 2:
Start-Ort: Bochum
Ziel-Ort: Essen
Start-Zeit: 10:07
Ziel-Zeit: 10:22
gefahrene km: 15
Durchschnittsgeschwindigkeit: 60.0 km/h
6
32 Punkte
Anmerkungen:
Allgemeine Hinweise
1. Die Bearbeitungszeit betragt 180 Minuten.
2. Tragen Sie auf dem Aufgabenbogen deutlich lesbar Ihren Namen und Ihre Matrikelnummer ein.
3. Die Aufgaben zu den Grundlagen mussen schiftlich und nachvollziehbar gelost
werden, das heit fur diese Aufgaben muss unbedingt der Losungsweg vorgelegt
werden.
4. Losen Sie die Aufgaben zu den Grundlagen auf den an diese Aufgabenstellung
angehefteten leeren Blattern.
5. Notieren Sie auf dem Aufgabenbogen unbedingt die Nummer des Ihnen im Rahmen der Klausur uberlassenen USB-Sticks. Fehlt die Nummer, so kann Ihnen im
Rahmen der Klausurkorrektur kein Stick zugeordnet werden.
6. Als Losung geben Sie die um Ihre schriftliche Losung zu Aufgabe 1 erganzte
Aufgabenstellung, Ihre schriich erstellten Losungen sowie Ihren USB-Stick ab.
Im Rahmen der Korrektur wird aus den Daten auf Ihrem USB-Stick ein Ausdruck
erstellt, der als Grundlage der Beurteilung der entsprechenden Aufgaben dient.
7. Zum Bestehen der Klausur sind mindestens 24 Punkte erforderlich.
8. Auch die Beihilfe zum Tauschungsversuch wird mit entsprechenden Manahmen
geahndet.
Besondere Hinweise zur Arbeit mit dem Rechner
9. Achten Sie unbedingt darauf, dass Sie zum Abschluss der Arbeit mit
Eclipse die Java{Quelldateien abspeichern. Bei Fehlen einerer Quelldatei kann keine Wertung der entsprechenden Leistung erfolgen!
10. Bearbeiten Sie zur Vermeidung von Fehlern die Programmieraufgaben zunachst
im Verzeichnis C:ndaten Ihres Rechners. Ubertragen
Sie zum Abschluss der Klausur Ihre Losungen aus dem Verzeichnis C:ndaten in das Stammverzeichnis des
Ihnen zur Verfugung gestellten USB-Sticks.
11. Prufen Sie sorgfaltig, ob Ihre Losungen vollstandig auf den USB-Stick ubertragen
wurden. Losungsbestandteile, die nicht auf dem Stick zu nden sind, gelten als
nicht vorhanden und werden nicht bewertet!
12. Melden Sie Probleme bei der Arbeit mit Ihrem Rechner sofort der Aufsicht. Unerwartete oder merkwurdige Fehlermeldungen konnen Sie ebenfalls der Aufsicht
zeigen. Es besteht die Moglichkeit, derartige Probleme auf der Titelseite der Aufgabenstellung im Kasten "Bemerkungen zum Ablauf der Klausurbearbeitung"
durch die Aufsicht protokollieren zu lassen. Vom Pruing dort eingetragene Bemerkungen gelten als nicht geschrieben. Falls die Aufsicht die entsprechende Fehlermeldung als Fehler Ihrerseits beurteilt, beachten Sie bitte den Punkt 13:
13. Sollten Sie Schwierigkeiten bei der Bearbeitung von Aufgaben mit dem Rechner
haben, so konnen Sie die von Ihnen vorgenommenen Arbeitsschritte auch schriftlich festhalten. Schreiben Sie jeweils das Resultat Ihrer Bemuhungen am Rechner
auf, beschreiben Sie die Probleme und nennen Sie die Fehlermeldungen, die Sie
erhalten.
7
14. Der Aufbau von Netzverbindungen (Einbinden von Netzlaufwerken, Versenden
von Nachrichten uber TCP/IP etc.) wird als schwerer Tauschungsversuch gewertet, wenn der Netzzugri nicht in der Aufgabenstellung gefordert wird oder
automatisch erfolgt. Ein Zugri auf den Server PC132W.bsnw.fb4.fh-bochum.de
ist jedoch stets erlaubt!
15. Das Hinterlassen von Klausurdaten auf dem Arbeitsplatzrechner nach Abschluss
der Klausur wird ebenfalls als schwerer Tauschungsversuch gewertet. Sie sind auf
jeden Fall verpichtet, auf Ihrem Rechner den Inhalt des Verzeichnisses c:ndaten
am Ende der Klausur zu loschen.
Erlaubte Hilfsmittel:
Skripten "Grundlagen der Programmierung" und "Programmierung in Java", Vorlesungsmitschriften, U bungs- und Praktikumsaufgaben mit Losungen. Die Verwendung eines eigenen Taschenrechners ist nicht erlaubt, dagegen kann der im Betriebssystem vorhandene
Rechner (Anwendung Rechner im Ordner Zubehor) verwendet werden.
8
Blatter fur die Losungen zu Aufgabe 1:
9
10
11
12
Zugehörige Unterlagen
Herunterladen