Informatik I: Probeklausur

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Informatik I: Probeklausur

    Hallo,

    ich bin ja selbst nur Student, aber habe mal ein Probeklausur erstellt, wie ich sie mir im besten Falle erhoffen würde. ;)
    Aber bildet euch bitte nichts drauf ein, wenn ihr die Aufgaben alle problemlos lösen könnt.
    Ich denke, dass in der richtigen Klausur schwierigere Aufgaben dabei sein werden (dazu hat mir nur leider die kreativität gefehlt)
    Außerdem war ich in den letzten Vorlesungen "leider" nicht mehr da, daher weiß ich nicht genau was drankommen wird.

    Wenn ihr selbst Aufgaben oder Ideen habt, dann postet sie einfach hier.

    Aufgabe1:
    Beschreiben sie die das Datum 21.10.2005 mit der Backus Nauer Form und zeichnen Sie es als Syntaxdiagramm


    Aufgabe2:
    Casten Sie die Variable "programm" nach Float und beschreiben Sie, was dabei passiert und welche Vor-/ Nachteile sich daraufhin unter Umständen ergeben.
    int programm = 14;


    Aufgabe3:
    Nehmen Sie den folgenden Code als Grundlage und bauen Sie die wichtigsten JavaDoc Kommenare ein. Binden Sie außerdem „java.util.Formatter“ ein, erklären Sie ihre Funktion und weisen Sie einer beliebigen, globalen Konstante den Wert 1,0008 zu.

    public class Aufgabe3 {

    public static void main(String[] args) {

    ausgabe(„test“);

    }

    static void test(String ausgabe)
    {
    System.out.println(ausgabe);
    }

    }


    Aufgabe4:
    Korrigieren Sie im folgenden Code die Syntax Fehler. Korrigieren Sie nur die Stellen, die Fehler produzieren.

    public class Aufgabe4
    {
    public static void main (String[] args)
    {
    java.util.Scanner input = new java.util.Scanner(System.in);
    System.out.print("Bitte geben Sie eine Integerzahl ein: ");
    int eingabe = Integer.next();
    System.out.printf("Sie haben die Zahl %s eingegeben\n",eingabe);
    for(i=0; i<eingabe; ++i)
    System.out.println("Dies ist die "+i);
    if(true)
    System.out.println("[COLOR="RED"]te Zeile"[/COLOR]);
    }
    }


    Aufgabe5:
    Erstellen Sie ein Programm. Der Benutzer soll als Konsolenparameter eine Zahl „n“ übergeben. Als Ausgabe sollen die ersten n-Zeichen und die letzten n-Zeichen des Alphabets ausgegeben werden.
    Beugen Sie Eingabefehlern vor.
    Beispiel: n = 3
    > a z
    > b y
    > c x


    Aufgabe6:
    Erstellen Sie ein Programm.
    Lesen Sie den Inhalt der Datei matrix.txt aus und geben Sie den gesamten Inhalt von Matrix nacheinander mit einer for- und einer foreach-Schleife aus, so dass die Ausgabe der Datei gleicht.
    Zusätzlich soll die Ausgabe in die Datei matrix_out.txt geschrieben werden.
    Verwenden Sie ein 2 Dimensionales Array. Die Werte sind durch Leerzeichen getrennt.

    matrix.txt
    1 2 3 4
    5 6
    7 8 9 10 11 12
    13
    14 15 16


    Aufgabe7:
    Erklären Sie in Worten die Besonderheit einer Referenz-Variable.
    Optional können Sie einen Beispielcode erstellen. Gehen Sie unter anderem darauf ein, wie Sie Referenz Variablen "vergleichen" können


    Aufgabe8:
    Programmieren Sie die Ermittlung des kleinsten, gemeinsamen Teilers rekursiv und dokumentieren Sie ausführlich die Rechenschritt mit den 2 Zahlen 14 und 70.


    Aufgabe9:
    Womit, wenn nicht mit if-Bedingungen, lassen Sich an bestimmten Stellen überprüfen, ob bestimmte Annahmen über einen Zustand korrekt sind. Erstellen Sie ein Beispiel.


    Aufgabe10:
    Übertragen Sie die Daten des Arrays „programm“ in einen Vektor v und eine Hashtable h.
    Erklären Sie um was es sich bei den „Typen“ handelt und welche Vorteile sie gegenüber Arrays haben.

    String[] programm = {"easy","coding","coder","wiki","forum"};


    Aufgabe11:
    Erstellen Sie ein Applet mit schwarzer Hintergrundfarbe und einer sichtbaren, weißen Box, die keinen Rand berührt oder schneidet.


    Aufgabe12:
    Platzieren Sie dieses Applet in folgender HTML Seite.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <title>
    </title>
    </head>
    <body>
    </body>
    </html>


    Aufgabe13:
    Schreiben Sie eine Funktion um Pi zu berechnen. Übergeben Sie als Parameter den Näherungswert
    Nutzen Sie dazu folgendes Beispiel:
    Pi = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 – 1/15 + 1/17
    Dateien
  • Als Ergänzung zu meinen Aufgaben solltet ihr euch unbedingt nochmal die abstrakten Datentypen anschauen..

    In den Vorlesungen werden die Codes stark mit Iteratoren, Enumerationen, etc variiert..
    Wenn ihr das System nicht versteht, werdet ihr alle Besonderheiten lernen wollen. Aber für das Durchlaufen unserer Collections reicht das Interface Iterator() mit seinen Funktionen boolean hasNext() und Object next()

    Es ist wirklich alles einfacher als es aussieht
    schaut euch das Beispiel an:

    Quellcode

    1. import java.util.*;
    2. public class HashtableExample
    3. {
    4. public static void main(String[] args)
    5. {
    6. Hashtable hash = new Hashtable();
    7. hash.put("Fritz", "f.mueller@test.de");
    8. Iterator it = hash.iterator();
    9. while(it.hasNext()) {
    10. String alias = (String)it.next();
    11. System.out.println(alias + "->" + hash.get(alias));
    12. //Ausgabe: Fritz -> f.mueller@test.de
    13. }
    14. }
    15. }
    Alles anzeigen



    noch ein Code um noch ein paar Datei-Operationen und das abfangen von Fehlern zu erläutern.
    Außerdem soll euch der Code die Performance Vorteile vom StringBuffer ans Herz zu legen

    Quellcode

    1. public static void main(String[] args) throws IOException {
    2. assert (args.length > 2 && args[0].equals("passwort") && Integer.valueOf(args[1]) == 54321) :
    3. "Ungültige Eingabe";
    4. StringBuffer buffer = new StringBuffer();
    5. String source, dest;
    6. int i= 0;
    7. source = "src.dat";
    8. dest = "dest.dat";
    9. boolean test = new File(dest).exists();
    10. if(test)
    11. System.out.println("Datei existiert zwar schon, aber dazu ist es zu spät");
    12. try {
    13. // Öffne Quelldatei um den Inhalt zu lesen
    14. Scanner sc2 = new Scanner(new File(source));
    15. // Falls man Länderspezifische Einstellungen vornehmen will
    16. //sc2.useLocale();
    17. // Lese die Daten
    18. while(sc2.hasNextLine()) {
    19. buffer.append( sc2.nextLine() ).append("\n");
    20. i++;
    21. }
    22. //Status über erfolgreichen Leseprozess
    23. System.out.println(i+" Zeilen gelesen");
    24. sc2.close();
    25. // Öffne Zieldatei um den Inhalt zu schreiben
    26. Formatter output = new Formatter(new File(dest));
    27. // Schreibe Inhalt und schließe Datei
    28. output.format( buffer.toString() );
    29. output.close();
    30. // Status für erfolgreichen Schreibprozess
    31. System.out.println(i+" Zeilen geschrieben");
    32. }
    33. catch(FileNotFoundException e) {
    34. System.out.println("Fehler: Quelldatei existiert nicht");
    35. System.exit(0);
    36. } catch(IndexOutOfBoundsException e) {
    37. System.out.println("Fehler: Verwendest du eigentlich Arrays???");
    38. System.exit(0);
    39. } catch(NumberFormatException e) {
    40. System.out.println("Fehler: Die Quelldatei durfte ursprünglich ausschließlich doubles enthalten");
    41. System.exit(0);
    42. } catch(Exception e) {
    43. System.out.println("Fehler: Ein unbekannter Fehler ist aufgetreten");
    44. System.exit(0);
    45. } finally {
    46. System.out.println("Fehler oder Nicht Fehler.. Die Ausgabe kommt so oder so");
    47. }
    48. }
    Alles anzeigen
  • Ich finde Klausuren sollten nicht abfragen wie man bestimmte Dinge benutzt (z.B. java.util.Formatter oder wie man bestimmte Funktionen benutzt) sondern eher grundsätzliche Konzepte, Probleme und Dinge einer Sprache, Klassen ändern sich und das "Wissen" wird wertlos. Wichtiger wären imho Fragen zur VM, dem Sandkasten u.ä. Davon abgesehen finde ich die Fragen eigentlich ganz gut.
    Fragen zur Bindungspriorität von binären Operatoren sind zwar fies, aber eigentlich sollte man die können (P.S: in deinem Beispiel oben braucht man keine Ahnung haben, das Ergebnis ist immer false =).
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]