Professional Documents
Culture Documents
A1
A2
A3
A4
VORAB-II/2010-101007
Universitt Augsburg, 86135 Augsburg Besucher: Universittsstr. 16, 86159 Augsburg Telefon: +49 821 598-4801 (Fax: -4899) www.fim-online.eu
Triff das Kernkompetenzzentrum FIM Am 12. Januar findet ab 15:30 im Gebude I im Raum 1201/1202 die Veranstaltung Triff das Kernkompetenzzentrum FIM statt. In gemtlicher Atmosphre knnt ihr hier mehr ber das Kernkompetenzzentrum Finanz- & Informationsmanagement (FIM), die Mitarbeit als Hiwi, Stipendien, das Pluskonzept, Praktikantenvermittlung und weitere Aktivitten erfahren. Bei Fragen knnt ihr gerne eine E-Mail an regina.pfleger@student.uni-augsburg.de schicken. Anmeldung bitte unter www.fim-online.eu/anmelden
Aufgabe 1: (10 Minuten) Bitte erlutern Sie zunchst allgemein das Minimum- und Maximumprinzip. Verdeutlichen Sie anschlieend die beiden Prinzipien jeweils an einem selbst gewhlten Beispiel. Warum ist es nicht mglich, Minimumund Maximumprinzip simultan zu verwirklichen? (maximal 0,5 Seiten)
Aufgabe 2: (26 Minuten) Sie sind Geschftsfhrer der Firma Schall. Der Gewinn pro Bestellung der Firma Schall ist von der Kaufmenge x abhngig und berechnet sich durch folgende Gewinnfunktion: G(x) = p*x v*x 3, wobei p den
Produktpreis, v die variablen Kosten pro verkaufter Menge und x die verkaufte Menge bezeichnet. Nun berlegen Sie ein Rabattsystem fr Kunden einzufhren, um einen Anreiz fr grere Einkufe zu
schaffen. Sie mchten jedem Kunden, der mehr als 100 Stck kauft, 5 weitere Stck umsonst berlassen. Bei einem Kauf von 500 oder mehr Stck wollen Sie die geschenkten Stcke sogar auf 50 erhhen. Hinweis: Im Folgenden kann auf eine Main-Methode verzichtet werden. a) Entwickeln Sie zunchst eine Methode rabattMenge, die die Kaufmenge als Integer-Parameter bergeben bekommt und dann entscheidet, wie viele Gratisexemplare der Kunde bei Einfhrung des Rabattsystems von Ihrer Firma erhalten wrde und die Anzahl als Integer zurckgibt. Erstellen Sie zunchst ein Struktogramm und dann den zugehrigen Quellcode. (8 Minuten) b) Schreiben Sie nun eine Methode gewinnNormal, welche die gekaufte Menge als Integer sowie den Produktpreis und die variablen Kosten als Double bergeben bekommt und den Gewinn ohne Einfhrung des Rabattsystems berechnen soll. Der berechnete Gewinn soll vom Datentyp Double sein und von der Methode zurck gegeben werden. Erstellen Sie zunchst ein Struktogramm und dann den zugehrigen Quellcode. (8 Minuten) c) Erstellen Sie nun eine Methode gewinnRabatt. Diese soll den Gewinn bei Einfhrung des Rabattsystems errechnen und als Double zurckgeben. Sie bekommt ebenfalls die gekaufte Menge als Integer, sowie den Produktpreis und die variablen Kosten als Double bergeben. Im Gegensatz zur einfachen Gewinnfunktion sollen in dieser Methode die Gratisexemplare bei der Gewinnberechnung bercksichtigt werden. Nutzen Sie hierzu die Methode rabattMenge aus Teilaufgabe a). Diese mssen Sie also nicht neu erstellen). Erstellen Sie auch hier zunchst ein Struktogramm und dann den zugehrigen Quellcode. Hinweis: Sollten Sie Teilaufgabe a) nicht gelst haben, gehen Sie davon aus, dass eine entsprechende Methode rabattMenge existiert, die Sie nur noch aufrufen mssen. (10 Minuten)
Aufgabe 3: Codeverstndnis (22 Minuten) Gegeben sei folgender Quelltext eines Java-Programms. Welche Ausgabe erzeugt das Programm am Bildschirm? Achten Sie dabei auch auf die richtige Reihenfolge! public class Codeverstaendnis { public static void main(String[] args) { int a = 4; int b = 5; int[] q = ersteMethode(a, a, b); for(int i=2;i<q.length;i++){ System.out.println("Q" + q[i]); } int[][] r = new int[][] {{10, 10}, {10, 10}}; zweiteMethode(r); System.out.println("RR" + r[1][1]); } public static void zweiteMethode(int [][] r){ for(int i=0;i<r.length;i++){ for(int j=0;j<r[0].length;j++){ r[i][j] = 10*i+j; } } for(int i=r.length-1;i>=0;i--){ for(int j=r[0].length-1;j>=0;j--){ System.out.println("R"+r[j][i]+ "1"); } } } public static int[] ersteMethode(int x, int y, int z){ System.out.println("X" + x); System.out.println("Y" + y); System.out.println("Z" + z); int a = x+2; int b = y + 1; z = (2 * a) % b; System.out.println("ZZ" + z); int[] p = new int[6]; for(int i=3;i>-3;i--){ System.out.println("I" + i); p[i+2]=i-2; } return p; } }
Aufgabe 4 (32 Minuten) Sie haben in der Vorlesung bereits das Konzept mehrdimensionaler Arrays kennen gelernt. In der Mathematik wird ein 2 dimensionaler Array des Datentyps int oder double einer Matrix abgebildet. So kann eine Matrix beispielsweise folgendermaen aussehen. 1 2 4 5 7 8 Diese Matrix bezeichnet man als 3x2-Matrix, da sie drei Zeilen und zwei Spalten besitzt. Es ist mglich, zwei Matrizen zu addieren. Das Ergebnis ist eine Matrix mit derselben Zeilen- und Spaltenanzahl wie die beiden Ausgangsmatrizen. Zu beachten ist hier, dass man zwei Matrizen nur addieren kann, wenn sie jeweils exakt dieselbe Zeilenanzahl und dieselbe Spaltenanzahl haben. Die Addition an sich geht wie folgt vonstatten:
a d b e c f
Beispiel:
g j h k i l
1 3 1 4 9 5
2 0 8 8 4 7
3 9 13
3 12 12
Verwirklichen Sie nun eine Methode im Struktogramm und danach in Java, die genau diese Addition fr Matrizen mit beliebiger Zeilen- und Spaltenanzahl ausfhren kann. Realisieren Sie die Matrizen mit 2dimensionalen int-Arrays. Die Methode addition sollte wie folgt aufgebaut sein: Sie ist mit zwei 2-dimensionalen integer-Arrays parametrisiert und besitzt als Rckgabewert ebenfalls einen 2-dimensionalen integer Array. Prfen Sie zuerst, ob die beiden bergebenen Arrays addierbar sind: Ist dies der Fall, sollen diese nach dem obigen Schema addiert werden und zurckgegeben werden. Sind die beiden Arrays nicht addierbar, soll eine Fehlermeldung ausgegeben werden, Als Rckgabewert dient ein leerer zweidimensionaler Array der Lnge 0.