Informatik am Johanneum/Java: Unterschied zwischen den Versionen

Aus ZUM Projektwiki
(Reihungen beendet)
(Nur kleine Schliffe)
Zeile 292: Zeile 292:
===Reihungen===
===Reihungen===
<br>'''Definition'''<p>
<br>'''Definition'''<p>
Eine Reihung besteht aus einer Anzahl von Werten gleichen Datentyps. Sie alle werden unter einem Namen geführt und unterscheiden sich nur in den Feldnummern, welche die Position in der Reihung bestimmt.
Eine Reihung besteht aus einer Anzahl von Werten des gleichen Datentyps. Sie alle werden unter einem Namen geführt und unterscheiden sich nur in den Feldnummern, welche die Position in der Reihung bestimmt.
<p>
<p>
'''Arten von Reihungen'''
'''Arten von Reihungen'''
<p>
 
int[] a; Reihung aus ganzen Zahlen
* <p> int[] a; Reihung aus ganzen Zahlen
<p>
* <p> char[] b; Reihungen aus Zeichen
char[] b; Reihungen aus Zeichen
* <p> boolean[] c; Reihung aus Wahrheitswerten
<p>
* <p> int[][] d; Mehrdimensionale Reihung, dabei ist in jedem Element ein eigenes Array enthalten. Jede Dimension wird durch ein paar eckige Klammern dargestellt.<p>
boolean[] c; Reihung aus Wahrheitswerten
<p>
int[][] d; Mehrdimensionale Reihung, dabei ist in jedem Element ein eigenes Array enthalten. Jede Dimension wird durch ein paar eckige Klammern dargestellt.
<p>
'''Initialisierung von Reihen'''
'''Initialisierung von Reihen'''
<p>
<p>
Reihungen werden grundsätzlich mit dem Operator <b> new </b>initialisiert.
Reihungen werden grundsätzlich mit dem Operator <b> new </b>initialisiert.
<p>
<p>
''Beispiel''<syntaxhighlight lang="java">
''Beispiel:''<syntaxhighlight lang="java">
int[] a = new int[10]
int[] a = new int[10]
</syntaxhighlight><p>
</syntaxhighlight><p>
Zeile 315: Zeile 311:
Möchte man hingegen eine Reihung mit bereits bekannten Werten initialisieren, fällt der Operator <b> new </b> weg. Die eckigen Klammern werden durch geschwungene ersetzt innerhalb welcher alle Werte, durch ein Komma getrennt, eingetragen werden.
Möchte man hingegen eine Reihung mit bereits bekannten Werten initialisieren, fällt der Operator <b> new </b> weg. Die eckigen Klammern werden durch geschwungene ersetzt innerhalb welcher alle Werte, durch ein Komma getrennt, eingetragen werden.
<p>  
<p>  
''Beispiel''<syntaxhighlight lang="java">
''Beispiel:''<syntaxhighlight lang="java">
int[] b = {1,2,3,4,5}
int[] b = {1,2,3,4,5}
</syntaxhighlight><p>
</syntaxhighlight><p>
In diesem Beispiel erzeugen wir eine Reihungen mit einer Länge von 5 Elementen mit den Werten 1, 2, 3, 4 und 5.'''Auslesen von Werten'''
In diesem Beispiel erzeugen wir eine Reihungen mit einer Länge von 5 Elementen mit den Werten 1, 2, 3, 4 und 5.
 
'''Auslesen von Werten'''


Um Werte aus einer Reihung auszulesen, muss man den Namen der Reihung, sowie die die Nummer des Elements auswählen.
Um Werte aus einer Reihung auszulesen, muss man den Namen der Reihung, sowie die Position des Elements in der Reihung auswählen.


''Beispiel''<syntaxhighlight lang="java">
''Beispiel:''<syntaxhighlight lang="java">
int[] a = {1,2,3,4,5}
int[] a = {1,2,3,4,5}
Dann gilt:
Dann gilt:
a[3] = 4
a[3] = 4
</syntaxhighlight>
</syntaxhighlight>

Version vom 16. Januar 2021, 14:25 Uhr

Offene Aufgaben

Bitte tragt in die Tabellen ein, welches Thema ihr bearbeiten wollt. Erst wenn ihr euch in der Tabelle für ein Thema eingetragen habt, könnt ihr mit der Bearbeitung beginnen. Ihr könnt Themen auch zu zweit erstellen.

offene Aufgaben
offene Aufgabe Verantwortlicher
Klassen in Eclipse anlegen Erik
Variablentypen Vinzent/J-P
eigene Methoden schreiben, Syntax der Signatur, return Statement
typische Fehlermeldungen, IndexOutOfBoundsExcecption
Arithmetische Operatoren Niklas
Verzweigungen Finn, Nikita
Schleifen (For-Schleife, While Schleife) Vinzent/J-P
Reihungen (Initialisierung, ...) Arian, Dharam

Tipps zur Erstellung eines Eintrags:

  • jedes Thema hat eine Überschrift von Typ Unterüberschrift1
  • Verwende danach für die einzelnen Teilthemen Unterüberschrift2 oder weitere Unterüberschriften. So erscheinen diese Felder im Inhaltsverzeichnis.
  • Quellcode kann eingefügt werden, indem die Zeile im Modus Quelltextbearbeitung mit einem Leerzeichen begonnen wird.
public void quellcodeSchreiben(){
//  dies ist ein Beispiel, wie Quellcode dargestellt werden kann.
// wechsele dazu in den Modus Quelltextbearbeitung (oben rechts bei dem Stft)
// beginne dann jede Quelltextzeile mit einem Leerzeichen.
}


Klassen in Eclipse anlegen


Variablentypen

In Java gibt es verschiedene Typen von Variablen. Einige davon werden im Folgenden erläutert.

Syntax einer Variable:

Erste Erstellung: Typ + Name = Wert -> Beispiel: int number = 3 / boolean correct = false

Spätere Bearbeitung: Name = Wert -> Beispiel: number = 1 / correct = true

Abfrage (z.B. in IF/ELSE Anfragen oder WHILE-Schleifen): Name == Wert -> number == 1 / correct == true

Ganzzahl-Typen:

integer (int): alle Zahlen zwischen -2147483648 und 2147483647.

long: alle Zahlen zwischen -9223372036854775808 und 9223372036854775807.

Kommazahl-Typen:

double: Zahlen mit Kommastellen, aber auch ohne. Double wird verwendet, da die Ganzzahl-Typen keine Kommastellen speichern können.

Boolean:

boolean: kann zwei Werte annehmen, entweder true oder false, also wahr oder falsch.

Char

char: kann den Wert eines Unicodezeichens annehmen, also beispielsweise einen Buchstaben oder eine Zahl von 0-9.

Syntax

char i = 'J'

String

String: kann die Werte einer Zeichenkette annehmen

ACHTUNG: Der Typ String muss in Java mit einem großen 'S' geschrieben werden.

Syntax

String java = "Hello World!"

Array

array[]: eine Reihung von Zahlen: man kann jeder Stelle eines Arrays eine bestimmte Zahl zuweisen.

Syntax

Erstellen eines Arrays mit der Länge u

int[] example = new int[u]

Erstellen eines Arrays mit bestimmten vorgegebenen Werten

int example[] = {0, 3, 5, 10, 20, 25}

Die Ausgaben kann folgendermaßen aussehen

example[3] == 10;

example[4] == 20;

Zuweisung eines Wertes für eine Arraystelle:

example[1] = 4;

Die abgeänderte Reihung besitzt nun folgende Werte: {0, 4, 5, 10, 20, 25}


Arithmetische Operatoren

Grundlagen

In der Programmiersprache Java sind arithmetische Operatoren implementiert. Dabei müssen immer numerische Operanten (int, long, float, double) verwendet werden.

Operatoren
Addition

Der Operator der Addition (a+b) addiert einen numerischen Operanden mit einem weiteren numerischen Operanden.

public class Addition {

   public static void main(String[] args) {
         int a = 7;
         int b = 3;
         
         ergebnis = a + b;
         System.out.print(ergebnis);
      }

}

Ausgabe = 10

Subtraktion

Der Operator der Subtraktion (a-b) subtrahiert einen numerischen Operanden von einem anderen numerischen Operator.

public class Subtraktion {

   public static void main(String[] args) {
         int a = 7;
         int b = 3;
         
         ergebnis = a - b;
         System.out.print(ergebnis);
      }

}

Ausgabe = 4

Multiplikation

Der Operator der Multiplikation (a*b) multipliziert einen numerischen Operanden mit einem anderen numerischen Operanden.

public class Multiplikation {

   public static void main(String[] args) {
         int a = 7;
         int b = 3;
         
         ergebnis = a * b;
         System.out.print(ergebnis);
      }

}

Ausgabe = 21

Division

Der Operator der Division (a/b) dividiert einen numerischen Operanden durch einen anderen numerischen Operanden. Division zweier numerischer Operanden gleichen Typs: In diesem Fall sind die beiden numerischen Operanden ganzzahlig, daher ist auch das Ergebnis ganzzahlig:

public class Division {

   public static void main(String[] args) {
         int a = 7;
         int b = 3;
         
         ergebnis = a / b;
         System.out.print(ergebnis);
      }

}

Ausgabe = 2

Division zweier numerischer Operanden unterschiedlichen Typs Es ist möglich numerische Operanden unterschiedlichen Typs zu dividieren. Ist einer der numerischen Operanden als Gleitkommazahl definiert, so ist auch das Ergebnis eine Gleitkommazahl:

public class Division {

   public static void main(String[] args) {
          int a = 7;
          float b = 3;
          errgebnis = a / b;
     System.out.print(ergebnis);
   }

}

Ausgabe: 2.3333333

Division mit Rest

Bei der Division mit Rest (modulo) dividiert einen numerischen Operanden durch einen zweiten numerischen Operanden (a%b). Dabei wird der ganzzahlige Rest als Ergebnis ausgegeben:

public class Modulodivision {

   public static void main(String[] args) {
         int a = 7;
         int b = 3;
         
         ergebnis = a % b;
         System.out.print(ergebnis);
      }

}

Ausgabe = 1

Verzweigungen

Einführung

Verzweigungen gehören zu den Kontrollstrukturen Javas, die einen flexiblen und ereignisgesteuerten Ablauf eines Programmes ermöglichen. Für die Verzweigungen braucht man festgelegte Bedingungen. Beim Durchlauf des Programmes wird dann an den Verzweigungen überprüft, ob die Bedingung erfüllt wird oder nicht. Je nachdem welcher Fall zutrifft, wird ein bestimmter Bereich des Programmes ausgeführt. Im Folgenden unterscheiden wir in drei Verzweigungen: if-Anweisung, if-else-Anweisung und else-if-Anweisung.

if-Anweisung

Bei der if-Anweisung wird als erstes überprüft, ob die gestellte Bedingung erfüllt wird oder nicht. Wird die Bedingung erfüllt, werden die danach folgenden Anweisungen ausgeführt. Wird die Bedingung nicht erfüllt, werden die danach folgenden Anweisungen übersprungen. In Java sieht die if-Anweisung so aus:

if (Bedingung){
    Anweisung;
}


if-else-Anweisung

Die if-else-Anweisung ist im Prinzip nur eine Erweiterung der if-Anweisung, bei der festgelegt wird, welche Anweisungen ausgeführt werden sollen, wenn die Bedingung nicht erfüllt wird. Man hat also zwei mögliche Fälle. In Java sieht die if-else-Anweisung so aus:

if (Bedingung) {
    Anweisung1;
} 
else {
     Anweisung2;
}


else-if-Anweisung

Wenn man eine Verzweigung in drei verschiedene Programmbereiche braucht, kann man die else-if-Anweisung verwenden. Bei derelse-if-Anweisung wird erstmal überprüft, ob die erste Bedingung zutrifft. Wenn diese Bedingung zutrifft, wird der erste Programmbereich durchlaufen. Wenn diese Bedingung nicht zutrifft, wird zur nächsten Prüfung einer Bedingung gesprungen. Wenn diese zweite Bedingung zutrifft, dann werden die dazugehörigen Anweisungen ausgeführt. Wenn diese zweite Bedingung nicht zutrifft, dann wird zum letzten Teil der else-if-Anweisung gesprungen und der letzte Programmbereich ausgeführt. In Java sieht die else-if-Anweisung so aus:

if (Bedingung1) {
    Anweisung1;
} else if (Bedingung2) {
     Anweisung2;
} else {
     Anweisung3;
}


Schleifen

FOR-Schleife

Die sogenannte FOR-Scheife wird verwendet, wenn man die benötigten Schleifendurchläufe bereits im Voraus kennt. Man benötigt die folgenden drei Parameter: Initialisierung/Startwert, Zielwert und Schrittweite

Syntax

for(Startwert; Zielwert; Schrittweite)

Beispiel

for(int i = 1; i < 3; i++) {
    gehe 10 Schritte;
}

Mit dieser Schleife wird bei i == 1 10 Schritte gegangen und bei i == 2 ebenfalls, bei i == 3 nicht mehr, da der Zielwert erreicht ist.

WHILE-Schleife
Die sogenannte WHILE-Schleife wird solange ausgeführt, bis eine bestimmte Bedingung nicht erfüllt ist. Diese Bedingung steht am Anfang der Schleife. Sofern die Bedingung anfangs nicht erfüllt wird, wird die Schleife übersprungen.

Syntax

while(Bedingung) {
    Anweisung;
}

Beispiel

boolean correct = true;
while(correct) {
    gehe 10 Schritte;
    correct = false;
}

Die Schleife wird einmal ausgeführt, da die Bedingung anfangs korrekt und danach nicht mehr korrekt ist.


DO-WHILE-Schleife

Die sogenannte DO-WHILE-Schleife ist eine WHILE-SCHLEIFE mit dem Unterschied, dass die Anweisung mindestens einmal ausgeführt wird, hierbei ist es anfangs egal, ob die Bedingung erfüllt ist oder nicht.

Syntax

do {
    Anweisung;
} while(Bedingung);

Beispiel

int o = 1;
do {
    gehe 10 Schritte;
} while(o == 2);

Diese Schleife wird einmal ausgeführt, danach nicht mehr, da die Bedingung nicht erfüllt wird.

Reihungen


Definition

Eine Reihung besteht aus einer Anzahl von Werten des gleichen Datentyps. Sie alle werden unter einem Namen geführt und unterscheiden sich nur in den Feldnummern, welche die Position in der Reihung bestimmt.

Arten von Reihungen

  • int[] a; Reihung aus ganzen Zahlen

  • char[] b; Reihungen aus Zeichen

  • boolean[] c; Reihung aus Wahrheitswerten

  • int[][] d; Mehrdimensionale Reihung, dabei ist in jedem Element ein eigenes Array enthalten. Jede Dimension wird durch ein paar eckige Klammern dargestellt.

Initialisierung von Reihen

Reihungen werden grundsätzlich mit dem Operator new initialisiert.

Beispiel:

int[] a = new int[10]

In diesem Beispiel erzeugen wir eine Reihung mit 10 Elementen, dieses enthält jedoch noch keine Werte.

Möchte man hingegen eine Reihung mit bereits bekannten Werten initialisieren, fällt der Operator new weg. Die eckigen Klammern werden durch geschwungene ersetzt innerhalb welcher alle Werte, durch ein Komma getrennt, eingetragen werden.

Beispiel:

int[] b = {1,2,3,4,5}

In diesem Beispiel erzeugen wir eine Reihungen mit einer Länge von 5 Elementen mit den Werten 1, 2, 3, 4 und 5.

Auslesen von Werten

Um Werte aus einer Reihung auszulesen, muss man den Namen der Reihung, sowie die Position des Elements in der Reihung auswählen.

Beispiel:

int[] a = {1,2,3,4,5}

Dann gilt:
a[3] = 4