JAVA Flashcards

1
Q

Vom Problem zum Programm:

A
  • Lösbarkeit: Ist das Problem mit den Methoden der Informatik lösbar?
  • Strukturierung: Kann das Problem in Teilprobleme zerlegt werden, sodass im Team daran gearbeitet werden kann?
  • Modellierung: Bieten sich bestimmte Datentypen und -strukturen an, die die Programmierung vereinfachen?
  • Schnittstelldefinition: Wie müssen die Daten und Softwaremodule einzelner Arbeitsgruppen zur Gesamtlösung des Problems verknüpft werden?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Top-Down-Lösungsstrategie

A
  • Präzisieren der Ein- und Ausgabe: Festlegen der Datentypen für Ein- und Ausgabe
  • Entwickeln einer Lösungsidee: korrekte Lösung, effiziente Lösung
  • Entwurf des groben Programmgerüsts: Darstellung des Lösungswegs mit Hilfe von grafischen Diagrammen
  • Schrittweise Verfeinerung: Verfeinerungen des Programmablaufs zur Umsetzung in Programmiersprache
  • Umsetzung in eine Programmiersprache
  • Testen und Korrigieren von Fehlern: Prüfen des Programm -> Prozess des Debugging
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Definition: Programmsprachen

A
  • Programmiersprache = „Dolmetscher“ zwischen Mensch und Computer
  • systemorientierte Sprachen:
    • Programmierung der Befehlssatzebene des Prozessors
  • problemorientierte Sprachen – „Hochsprachen der Programmierung“
    • imperative Programmiersprachen: Formulierung von Lösungen in Form von Anweisungen Unterscheidung: objektorientierte Sprachen (JAVA, C#) und prozedurale Sprachen (Basis, C)
    • deklarative Programmiersprachen: Beschreibung von Objekten und deren Beziehung zueinander (Prolog, Lisp, LOGO)
  • Compilersprachen
    • Compiler („Übersetzer“) = Computerprogramm, das vorgegebenen Quellcode in maschinennahe Sprache übersetzt (JAVA, C, C++)
  • Interpretersprachen: Übersetzen von Befehlen eines Programmquellcodes während Abarbeitung durch Interpreter
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

zeitliche Entwicklung der Programmsprachen

A
  • FORTAN (1954) mathematisch-wissenschaftlich
  • ALGOL (1958) mathematisch-wissenschaftlich
  • COBOL (1959) kommerziell, kaufmännisch
  • BASIC (1963) Hobbybereich
  • PASCAL (1968) Ausbildung
  • C (1969) Systemimplementierung
  • ADA (1975) sicherheitskritische Anwendungen
  • C++ (1980) Objektorientierung
  • JAVA (1995) Objektorientierung, Internet-Anwendungen
  • C# (2000) Objektorientierung, Internet-Anwendungen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Definition: Programmaufbau in JAVA

A
  • Aufbau eines JAVA-Programms aus Klassen (Bezeichnung „class“)
    • notwendig die Klasse „main“ in einer Anwendung
  • Abschließen von Befehlen mit Semikolon
  • Einschließen logischer Blöcke, wie z.B. Klassen, mit paarweise zusammengehörigen geschweiften Klammern
  • Unterscheidung zwischen Groß- und Kleinschreibung
  • Importieren von Klassenbibliotheken: Berechnen der Wurzel mit Hilfe der Wurzelfunktion „Math.sqrt“ aus mathematischen Klassenbibliothek „java.math“
  • Variable „ein“ aus separaten Eingabeklasse - Eingabe.class - abgebildet, die einfache Eingabe von Zahlen und Zeichen ermöglicht
    • readChar, readInt, readFloat, readDouble, readLine
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Definition: Nasse-Schneider-Diagramm

A
  • Ziel: übersichtliche Darstellung des Ablaufs von Computerprogrammen
  • Erinder: Issac Nassi + Ben Shneidermann
  • auch bezeichnet als „Struktogramme“
    Darstellung der wesentlichen Komponenten von Programmen: Folge von Anweisungen, Verzweigungen, Schleifen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

PAP

A

Programmaufbauplan

  • in abgewandelter Form Einsatz als Aktivitätsdiagramme in UML
  • abgerundete Rechtecke = Kontrollpunkte
  • Parallelogramm = Ein- und Ausgabe
  • Rechtecke = Anweisungen
  • Raute = Verzweigung (Wiederholungen/ Schleife)
  • Verbindungslinien = Darstellung des Programmablaufs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Definition: Anweisungsfolge

A
  • Programmanläufe vielfach linear aufgebaut
    • Überführung von Eingabedaten durch Folge einzelner Rechenschritte in Ausgabedaten
  • Beispiel des JAVA-Programms „Quader“
    • Eingabe der Katenlängen a, b und c
    • Quadervolumen: V = abc
    • Quaderoberfläche: O = 2 (ab + ac + b*c)
    • Raumdiagonale: d = Wurzel aus (a^2 + b^2 + c^2)
    • Ausgabe der Berechnungen Quadervolumen, Quaderoberfläche und Raumdiagonale
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Definition: Verzweigungen

A
  • Programmabläufe können Verzweigungen enthalten
    • d.h. es müssen Entscheidungen getroffen werden, welche Programmanweisungen ausgeführt werden sollen
  • Beispiel: Lösen einer „Quadratischen Gleichung“ ax^2+bx+c = 0
  • JAVA-Code:
    • if (Bedingung)
    {AnsweisungoderBlock}
    • else if (Bedingung)
    {AnsweisungoderBlock}
    • else (Bedingung)
    {AnsweisungoderBlock}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Test von Programmen

A
  • Syntaxfehler (Compiler)
  • Fehlerlokalisierung für logische Programmfehler:
    • Schreibtischtest (Schritt-für-Schritt mit Vergleich der Änderung der Variablen und Attribute)
    • Ausgabe von Werten mit Hilfe von „Print-Befehlen“:
     System.out.printIn(„Attributename“ + Attributname)
    • Einschaltung des „debugging“-Modus im Programm
    • Defintion von Haltepunkten: Programmablauf abhalten + alle Variablenwerte inspizieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Sortieren durch Auswahl - Selection Sort

A
  • in jeweils betrachteten Folge Suchen des kleinsten Elementes + Vertauschen mit ersten Element der Folge
  • Beginnen der nächsten zu betrachtende Folge ein Element weiter
  • Aufwand unabhängig von Eingabeverteilung
  • nie mehr als 0(n) Vertauschungen erforderlich
  • 0(n^2) Vergleiche notwendig, unabhängig von Eingabeverteilung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Sortieren durch Austauschen - Bubble Sort

A
    1. Durchgang = Betrachten jeweils 2 benachbarter Elemente + Vertauschen, wenn größeres Element zuerst
    1. Durchgang = Wiederholen des Verfahrens, jedoch nur bis zum vorletzten Element
  • geringster Aufwand, wenn Folge bereits soritert
  • eines der schlechtesten Sortierverfahren überhaupt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Sortieren durch Einfügen - Insertion Sort

A
  • Einfügen eines einzelnen Elements in eine bereits sortierte Folge, sodass sich ergeben Folge wieder sortiert ist
  • Verschieben aller Elemente vor der Einfügestelle um jeweils einen Platz
  • geringer Aufwand für fast sortierte Folgen
  • geringe konstante Kosten
  • gut geeignet für doppelt verkettete lineare Listen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

sequentielle Suche

A
  • Daten nicht vorsortiert
    • d.h. Datenfeld muss von hinten nach vorn Schritt für Schritt durchkämmt werden
  • Voraussetzungen für Algorithmus:
    • Existieren einer sortierten/ unsortierten Datenarray
    • Existieren eines Suchschlüssels (Key)
  • Prinzip
    • Durchsuchen des Datenbereichs, bis gewünschte Element gefunden oder Ende des Haufens erreicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

binäre Suche

A
  • Daten vorsortiert
  • Voraussetzungen für Algorithmus:
    • Existieren einer sortierten/ unsortierten Datenarray
    • Existieren eines Suchschlüssels (Key)
  • Algorithmus:
    • Auswahl des mittleren Elements (Mitte)
    • Vergleich mit Suchschlüssel (Schlüssel)
    • Wenn kleiner/größer als Suchschlüssel: Fortsetzung beim linken/ rechten Teilhaufen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Definition: Interation

A
  • Programm arbeitet iterativ, wenn Folge von Anweisungen, die zur Lösung des Problems führen, schrittweise in Schleife abgearbeitet werden
  • Beispiele: Lösungen, die sich in Form von for-Schleifen formulieren lassen
17
Q

Definition: Rekursion

A
  • aus Mathematik; bedeutet: Selbstbezug
  • Lösen von Problemstellungen durch Selbstaufruf rekursiver Prozeduren
  • Programmcode meist kürzer als bei iterativen Lösungen
  • Methode = rekursiv, wenn sie sich selbst aufruft
    • Bsp.: Fakultätsfunktion n! = 1 * 2 * 3 … (n-1)*n
    • 5! = 1 * 2 * 3 * 4 * 5 = 120
18
Q

Definition: FIBONACCI-Folge

A
  • aus Legende der Abschätzung der Vermehrung von Kaninchen
  • Reihung von Zahlen, die die Entwicklung der Population wiedergibt
  • Algorithmus: nächste Zahl der Folge erhält man aus Summe der beiden vorangehenden Zahlen
19
Q

Objektorientierte Programmierung: Klassen

A
  • legt die Eigenschaften und Verhaltensweisen für bestimmte Objekte fest
  • allgemeine Beschreibung für bestimmte Objekte
  • Klasse = Bauplan
  • Bereitstellung mehrerer Datentypen (im Unterschied zur bislang verwendeten Datenstruktur Array)
20
Q

Objektorientierte Programmierung: Objekt

A
  • konkrete Mitglieder (Realisierungen) einer Klasse - häufig auch Begriff „Instanz“ verwendet
  • Aufbau
    • Eigenschaften: beschreiben Objekt, legen Zustand des Objekts fest
    • Methoden: aktive Vorgänge, die auf Objekt angewendet werden können und die Zustände des Objekts verändern können
  • Objekt = konkrete Instanz
21
Q

Objektorientierte Programmierung: Konstruktoren

A
  • jede Klasse = mindestens eine Methode, mit der Objekte (Instanzen) der Klasse erzeuget werden können
  • Standard-Konstruktor = Methode, die aus dem Namen der Klasse und dem leeren Klammerpaar () besteht, z.B. public class DukeBike () {…}
  • Anlegen („Konstruieren“) des Objekts gleich mit Werten
  • tragen Namen der Klasse als Bezeichner
  • keinen Rückgabewert
  • Deklaration eines Konstruktors darf kein Datentyp sein
  • Konstruktoren müssen public sein, wenn aus beliebig anderen Klassen Instanzen mit Hilfe des Konstruktors erzeugt werden müssen
  • Aufruf von Konstruktoren mit Schlüsselwort „new“
  • Klassen können mehrere Konstruktoren haben, die sich in Liste der Parameter unterscheiden