Programiranje 1 Flashcards

1
Q

Woraus besteht ein einfaches Java Programm? Wie können Sie es ausführen?

A
  • aus eine Klasse (, main()-Methode und Anweisung
  • durch run, Ergebniss erscheint auf console
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wozu dient die main()-Methode?

A
  • Als Startpunkt der Programmausführung eine Klasse (als eigenständiges Programm)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie können und sollen Bezeichner gewählt werden? Was ist nicht erlaubt?

A
  • aus Buchstaben (Klasse, variable & methode) A-Z,a-z
  • aus Ziffern (nicht aber beginnend!!!)
  • aus _ und §

Nicht: Schlüsselwörter (reserviert für Datentyp, for, else,tru etc.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was unterscheidet Ausdruck und Anweisung?

A
  • Ausdrücke sind Berechnungsvorschriften/Formeln, d.h. liefern währen Programmablauf konkreten Wert. (Abhängig von aktuellem Wert der Variable)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie können Sie Ihr Programm kommentieren?

A
  • // einzeiliger Kommentar
  • /* mehrzeiliger Kommentar*/
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Regeln zur Programmformatierung sollte man befolgen und warum?

A

1) Lesbarkeit - nur eine Anweisung pro Zeile, Einrückungen bei Blöcken, beschreibende Namen (keine Romane), Namenskoventionen (CamelCase)
2) Wiederverwendbarkeit und Wartbarkeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was versteht man unter Algorithmus?

A

Ein Algorithmus ist eine nachvollziehbare, detaillierte und explizite Vorschrift zur schrittweisen Lösung eines Problems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist ein Programmierparadigma? Welche gibt es?

A

Imperative,Deklarative und Funktionale Sprachen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was sind die wesentlichen Merkmale von Java, die dieser Sprache zu ihrem Durchbruch verholfen haben?

A

Objektorientierte Sprache, Automatische Speicherverwaltung, Zahlreiche Bibliotheken, Exzellente Entwicklungsverkzeuge

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wozu benötigen Sie Variablen?

A

Als Behälter für Daten während der Ausführung des Programms.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist ein Datentyp und welche Arten von Datentypen gibt es?

A

Datentypen speichern unterschiedliche Arten von Werten (binär Dargestellt) im Rechner anhand dem möglichen Operationen von diesen Werten.
Arten:
1) einfache (Zahlen,Zeichen…)
2)komplexe (Bilder,Telefondaten <-array)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Welche einfachen Datentypen gibt es und wie wählen Sie den richtigen Datentyp aus?
A

1) Ganzzahlige Datentypen (byte, short, int, long) <- unterschiedlicher Wertebereich
-Aus Anzahl benötigten Stellen und Speichergrösse wählen-
2) Fließkommazahlen (float, double) <- Dezimalzahlen
3) Wahrheitswerte (boolean) <- true/false als Erg. von Vergleichen
4) Einzelne Zeichen (char) <- Buchstaben,Sonderzeichen in ‘ ’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie werden Zeichen codiert?

A

Mit ASCII Code (standartisierter)
Jetzt aber Unicode und UTF(-8) ( erste 128 Zeichen aus ASCII)‚

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Wie und warum definieren Sie Konstanten?
A
  • Literale beschreiben einen konstanten Wert (mit final definiert)
    Wie? final Datentyp VARIABLEN_NAME = Wert
    Warum? Schutz von Veränderung, Optimierungspotential für Compiler
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind Operatoren, Operanden, Operationen?

A

Operatoren verknüpfen Operanden miteinander und liefern ein Ergebniss.
Operator: Operation/Aktion die in einem Programm durchgeführt wird ( Wie werden Daten
verknüpft? z.B. *,+,-,Vz…)
Operanden: Parameter der Operation (Welche Daten werden verknüpft? z.B. x,2,(2+3)…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Arten von Operatoren gibt es? Wie funktionieren Sie jeweils?

A

1) Arithmetische Operatoren (x+y, x*y, x-y, x/y, x%y <-Rest, -x <-Vorzeichen)
2) Zuweisungsoperator ‘=‘ (nicht gleichheit)
x=3 <- Zuerst immer Wert rechts von = (3) berechnen und zu Variable links von = (x)
abspeichern. X ist Ausdruck nicht Anweisung.
3) kombinierte Zuweisungsoperatoren (x+=y (x=x+y), -=, *=, /=, %=)
4) Inkrement- und Dekrement-Operatoren (++i Präinkrement, - -i Prädekrement, i++
Postinkrement, i- - Postdekrement)
5) Vergleichsoperatoren (Ergebnis- Wahrheitswert boolean, verwendung bei if, while..)
x==y, !=, < , > , <=, >=
6) Logische Operatoren ( Verknüpfung true-false- boolean)
!a (negation), a&&b (und), a||b (oder), a^b (exklusives oder)
7)Bitoperatoren ( Verknüpfung einzelne Bits zweier Werte int, byte, short, long)
~a,&,|,^
8) Schiebeoperatoren
A«b - a um b stellen nach links verschieben, mit 0 auffüllen
a»b - a um b stellen nach rechts verschieben, mit höchstem Bit auffüllen
A«<b - a nach rechts, mit 0 auffüllen
9) Bedingungsoperator
Bedingung ? Wert_wenn_true : wert_wenn_false;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was ist implizite/explizite Typumwandlung und wann kann sie jeweils eingesetzt werden?

A

Implizite - Operanden unterschiedliche Datentypen automatisch in grössere umgewandelt
Explizite - Umwandlung in kleinere Datentyp mithilfe Cast-Operators erzwungen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was sind Gefahren expliziter Typumwandlung?

A

Verlust von Genauigkeit oder Überlauf bei Wert außerhalb Wertebereichs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wenn es keine Typumwandlung nach boolean gibt, wie kann ich Wahrheitswerte in Java sinnvoll einsetzen?

A

double <- float <- long <- int <-short/char <-byte

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Wie können Sie Zeichenketten einlesen und diese in andere Datentypen umwandeln?

A

Mit switch?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was ist eine Kontrollstruktur, Entscheidungsanweisung, Schleife/
Wiederholungsanweisung?

A

Kontrollstrukturen beeinflussen die Ablaufreihenfolge der Anweisungen basierend auf Bedingungen.
1)Entscheidungsanweisungen - bedingte Ausführung von Anweisungen (if, else/switch)
2) Schleife/Wiederholungsanweisungen - wiederholte Ausführung von Anweisungen (while, do/while, for)

22
Q

Wie funktionieren if und switch und wann werden sie verwendet?

A

Werden verwendet wenn flexible Entscheidungen gebraucht werden. Führen Abweisungssequenzen in Abhängigkeit einer Bedingung aus.

23
Q

Wie funktionieren while, do/while, for und wann werden sie verwendet?

A

Sie werden verwendet wenn wir etwas wiederholt ausgeben müssen, sowie den Text verändern, oder prüfen.
While - zuerst Bedingung prüfen dann Anweisung Ausführen wenn true
Do/while- Zuerst mind. eine Anweisung ausführen und dann Bedingung prüfen
For - um die Kontrolle der Schleife über gleiche Stelle zugreifen zu können

24
Q

In welchem Bereich ist eine Variable gültig?

A

Gültigkeitsbereich einer lokalen Variable erstickt sich nur auf den Block in dem sie definiert wird.

25
Q

Was versteht man unter einem Feld (Array) und wozu benötigt man Felder?

A

Arrays als Folge von Werten des selben Datentyps. Man benötigt Felder um große gleichartige Datenmengen (versch. Einträge) speichern und rechnen (ausgeben) zu können.

26
Q

Wie können Sie Felder erzeugen, initialisieren, nutzen?

A

Formula sa papira

27
Q

Wie können Sie mit mehrdimensionalen Feldern arbeiten?

A

Für jede Dimension Klammernpaar [ ] nutzen,?

28
Q

Was ist ein Referenzdatentyp?

A

Bei der Zuweisung von Feldvariablen wird nur die Referenz auf den Speicher für die Elemente kopiert, nicht der Speicher selbst.

29
Q

Welche Vorteile und Nachteile haben Felder als Datenstruktur?

A

Vorteile: Unkomplizierte Verwaltung von Datenlisten; beliebige Arten von Elementen möglich
Nachteile: Nachträgliche Veränderung der Elementenzahl nur durch Erzeugen eines neuen
Arrays und Kopieren der Elemente; rechen und programmieraufwändig

30
Q

Was sind Objekte, was sind Klassen?

A

1) Objekte besitzen einen Zustand, der durch die Werte seiner Eigenschaften beschrieben ist. Ein Objekt ist eine Instanz seiner Klasse.
2) Klasse ist zusammengesetzter Datentyp (z.b. Zweirad) der als “Vorlage” für die Erzeugung von (beliebig viele) Objekten gilt.
Klasse = Daten- + Funktionsabstraktion

31
Q

Wie werden Klassen in Java definiert?

A

Mit Klassenname ( public class Zweirad ) und Attribute (ohne Werte) die durch eine Klasse zusammengesetzt werden.

32
Q

Wie können Objekte erzeugt und verwendet werden?

A

Indem wir eine weitere Klasse mot main()-Methode programmieren, oder zu gleiche Klasse
eine neue main()-Methode hinzufügen.
«Klassenname» variable = new «Klassenname» ();

33
Q

Wie kann auf Attribute zugegriffen werden?

A

Über Punkt-Operator. Z.b.: fahrrad.radgroesse = 15;

34
Q

Warum benötigen wir dazu jeweils ein Objekt?

A

Weil es wird über die Objektreferenz und nicht den Klassennamen auf den Wert zugegriffen.

35
Q

Welche Konsequenzen hat es, dass Klassen Referenzdatentypen sind?

A

Eine Variable speichert immer nur die Referenz auf ein Objekt. Bei einer Zuweisung wird nur Referenz verändert, d.h. bei Vergleich ( if(mit == oder !=) ) werden nur Referenzen verglichen und nicht die Werte.

36
Q

Können wir Arrays aus Objekten erzeugen?

A

Nein, erzeugen eines Arrays (new Zweirad[2]) erzeugt keine Objekte. Objekte müssen gesondert mit new erzeugt werden. Objektreferenzen können als Array-Einträge zugewiesen werden (zweirader[0]=fahrrad).
Zugriff auf Attribute auch direkt in Array möglich (z.b. zweirader[1].radgroesse=17;). Über Arrays kann mit while/for iteriert werden.

37
Q

Was ist prozedurale Zerlegung und was umfasst der Begriff der „Methode“ zusätzlich?

A
  • Prozedurale Zerlegung bezieht sich auf auslagern von Anweisungssequenzen in “Unterprogramme”(Prozeduren oder Funktionen). In Java sin dies Methoden.
  • Methoden können des Zustand eines Objekts lesen und verändern. Sie sind immer einer Klasse zugeordnet.
38
Q

Wie deklarieren Sie eine Method (mit Parametern und Rückgabewerten)?

A

«rueckgabetyp» «methodenname>< («parameterliste») {
«Anweisungssequenz mit Rückgabewert&raquo_space; ;
}
z.B. double fahre(int stunden) {
return geschwindigkeit * stunden;
}

39
Q

Wie können Sie eine Methode aufrufen? Weshalb benötigen Sie dabei eine Objekt?

A

Über Punkt-Operator mit Objekt. Wir benötigen Objekt weil er verweis auf Klassen Attribute
hat. «objekt».«methodenname»(Wert1, Wert2…);

40
Q

Was bedeuten die Schlüsselworte this / null?

A

This hat Referenz auf aktuelles Objekt ( Attribut) in Klasse. Null wird verwendet um zu prüfen das eine Referenz nicht initialisiert wird und somit auf keinen Objekt zeigt.

41
Q

Von wo können Sie auf lokale Variablen und Parameterwerte zugreifen?

A

Innerhalb einer Methode (main zb) nur auf eigene lokale Variablen, Parameterwerte und Attribute des aufgerufene Objekts.

42
Q

Welche Methoden zur Parameterübergabe gibt es? Wann werden Sie angewendet und
wie funktionieren Sie? Welche Konsequenzen ergeben sich jeweils?

A

1) Call by Value - für einfache Datentypen (int,double…)
- Übergabe des Parameterwerte als Kopie, Änderungen an Parameterwert innerhalb der Methode von außen nicht sichtbar
2) Call-by-Reference - für zusammengesetzte Datentypen (Array,Klassen)
- Übergabe der Referenz, keine Kopie von Daten, Änderungen an Objektattributen oder Arraydaten bleiben auch nach Rücksprung aus Methode erhalten

43
Q

Was ist ein Konstruktor?

A

Eine spezielle Methode einer Klasse, die beim Erzeugen eines Objektes automatisch aufgerufen wird. Hat gleiche Name wie Klasse und kann beliebig viele Parameter besitzen.
Kann überladen werden.

44
Q

Was bedeutet “Überladen“?

A

Mehrere Methoden gleiche Namens die sich aber in Anzahl oder der Datentyp ihrer Parameter unterscheiden. Zb void methode(int parameter)/ void methode (double parameter) / oder nur void methode() Beim Aufruf anhand Aufrufparameter wählen. ( ob 5 oder 31.3 oder() )

45
Q

Welche Möglichkeiten bietet die Java-Klassenbibliothek?

A

Mathematische Funktionen,Grafikprogrammierung, Zufallszahlen, Zeichenketten

46
Q

Wie können Sie große Programme durch Pakete strukturieren?

A

Paketen strukturieren die Klassen thematisch

47
Q

Welche mathematischen Funktionen bietet die Klasse Math

A

Trigonometrische (Math.sin(x)…) , Arkusfunktionen, Zahlen runden (Math.round / floor 2.5->2 /
ceil 2,5->3) , Minimum(min(x,y)) , Maximum (max(x,y)), Würzel (sqrt(x)) , Potenzfunktion
(Math.pow(r, 2.0)) , Konstanten PI (Math.PI) und E

48
Q

Welche Besonderheiten hat die Klasse String und wie können Sie Zeichenketten bearbeiten?

A

Besonderheiten:
-Objekte können durch new erzeugt werden (Klassenverhalten) ODER durch Zuweisung eines
Wertes (wie einfacher Datentyp).
- Objekte können mit -+ aneinandergehängt werden
- Werden by Reference übergeben sind aber nicht veränderlich

49
Q

Wie können Sie Zufallszahlen erzeugen? (Pseudozufallszahlen)

A

Erzeugen eines Zufallszahlengenerators:
import.java.util.Random
Random generator = new Random (); / new Random (int seed);

50
Q

Welche Zugriffsmodifizierer kennen Sie und wozu dienen diese?

A

Legen fest wer auf Klasse,Attribut,Methode zugreifen kann:
Public: Öffentlich, jede kann zugreifen
Private: Verborgen, Zugriff nur innerhalb eigene Klasse
Keine Angabe(package private): Aus jede Klasse innerhalb selben Pakets

51
Q

Was sind statische Attribute und Methoden und wozu können sie eingesetzt werden?

A

Statische Attribute (=Klassenvariablen) werden gemeinsam von allen Instanzen einer Klasse
genutzt werden. (static int nächsteBLZ = 600000;)
Statische Methoden - direkt der Klasse zugeordnet (static