kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung
kramann.info
© Guido Kramann

Login: Passwort:




Übung für den 21.11.2011 - Listenprogrammierung in C++ und Einführung in Java

(EN google-translate)

(PL google-translate)

Listenprogrammierung in C++

  • In der Vorlesung am 17.11. wurde die Methode append(..) der Klasse ListenContainer implementiert.
  • Laden Sie das Beispiel von der Startseite herunter (Material vom 10.11. UND 17.11.) und testen und analysieren es noch einmal.
  • Implementieren Sie dann die restlichen im UML-Diagramm in Kapitel 8.1.1 aufgeführten Methoden dieser Klasse.
  • Schreiben Sie zu jeder Implementierung immer gleich ein Testprogramm, um zu überprüfen, ob die Implementierung auch funktioniert (main-Methode).
  • Fragen Sie nach, wenn Ihnen die Bedeutung einer der Methoden nicht klar sein sollte.

Einführung in Java

  • In der Vorlesung am 17.11. wurden erste Java-Beispiele codiert.
  • Laden Sie die Beispiele von der Startseite herunter und testen und analysieren es noch einmal.
  • Hinweise:
  • Kompilieren einer Java-Quelltextdatei "MeineKlasse.java": javac MeineKlasse.java
  • Ausführen der nach dem Kompilieren entstandenen .cass-Datei: java MeineKlasse
  • Schreiben Sie nun das C++ - Programm "Code 3.3-2" aus Kapitel 3.3 (Übung) in Java um und bringen es zum Laufen.
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Knopflauscher implements ActionListener
{
    public JTextField eingabe1;    
    public JLabel     operator;
    public JTextField eingabe2;    
    public JButton    knopf;    
    public JLabel     ausgabe;

    public Knopflauscher()
    {
        eingabe1 = new JTextField("1");
        operator = new JLabel("+");
        eingabe2 = new JTextField("2");
        knopf    = new JButton("=");

        knopf.addActionListener(this);

        ausgabe  = new JLabel("");

        JFrame fenster = new JFrame("Summierer");
        fenster.setVisible(false);
        fenster.getContentPane().setLayout(new GridLayout(1,5));
        fenster.setBounds(10,10,250,60);
        fenster.getContentPane().add(eingabe1);
        fenster.getContentPane().add(operator);
        fenster.getContentPane().add(eingabe2);
        fenster.getContentPane().add(knopf);
        fenster.getContentPane().add(ausgabe);
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenster.pack();
        fenster.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
        double x = Double.parseDouble(eingabe1.getText());    
        double y = Double.parseDouble(eingabe2.getText());    
        double z = x+y;
        ausgabe.setText(z+"");
    }        
    public static void main(String[] args)
    {
        Knopflauscher knopflauscher = new Knopflauscher();
    }
}

Code 0-1: Kleines GUI-Programm.

  • Obiges Programm erlaubt es Zahlen über eine Grafische Benutzeroberfläche einzueben und sie per Knopfdruck zu addieren.
  • Schlagen Sie in der Java-API alle auftretenden Bibliotheksklassen nach und versuchen dadurch zu verstehen, was deren Methoden bewirken.
  • Analysieren Sie das Programm weiter und versuchen Sie zu verstehen, was die einzelnen Befehle bewirken.
  • Nehmen Sie dazu testweise einzelne Befehle heraus, oder wandeln sie ab.
  • Diskutieren Sie Ihre Analyse mit Ihren Nachbarn.
  • Versuchen Sie nun folgende Programmvarianten umzusetzen:
  • Ein Programm, das zwei Zahlen miteinander multipliziert.
  • Ein Programm, dass drei Zahlen miteinander multipliziert.