https://projekte.zum.de/api.php?action=feedcontributions&user=11jojo&feedformat=atomZUM Projektwiki - Benutzerbeiträge [de]2024-03-29T09:40:20ZBenutzerbeiträgeMediaWiki 1.39.6https://projekte.zum.de/index.php?title=Informatik_am_Johanneum/Java&diff=41426Informatik am Johanneum/Java2021-01-16T13:06:14Z<p>11jojo: Reihungen beendet</p>
<hr />
<div>===Offene Aufgaben===<br />
<br />
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.<br />
<br />
{| class="wikitable"<br />
|+offene Aufgaben<br />
!offene Aufgabe!!Verantwortlicher<br />
|-<br />
|Klassen in Eclipse anlegen||Erik<br />
|-<br />
|Variablentypen<br />
|Vinzent/J-P<br />
|-<br />
|eigene Methoden schreiben, Syntax der Signatur, return Statement<br />
|<br />
|-<br />
|typische Fehlermeldungen, IndexOutOfBoundsExcecption<br />
|<br />
|-<br />
|Arithmetische Operatoren<br />
|Niklas<br />
|-<br />
|Verzweigungen<br />
|Finn, Nikita<br />
|-<br />
|Schleifen (For-Schleife, While Schleife)<br />
|Vinzent/J-P<br />
|-<br />
|Reihungen (Initialisierung, ...)<br />
|Arian, Dharam<br />
|-<br />
|<br />
|<br />
|}<br />
<br />
Tipps zur Erstellung eines Eintrags: <br />
<br />
*jedes Thema hat eine Überschrift von Typ Unterüberschrift1<br />
*Verwende danach für die einzelnen Teilthemen Unterüberschrift2 oder weitere Unterüberschriften. So erscheinen diese Felder im Inhaltsverzeichnis.<br />
*Quellcode kann eingefügt werden, indem die Zeile im Modus Quelltextbearbeitung mit einem Leerzeichen begonnen wird.<br />
<br />
public void quellcodeSchreiben(){<br />
// dies ist ein Beispiel, wie Quellcode dargestellt werden kann.<br />
// wechsele dazu in den Modus Quelltextbearbeitung (oben rechts bei dem Stft)<br />
// beginne dann jede Quelltextzeile mit einem Leerzeichen.<br />
}<br />
<br /><br />
===Klassen in Eclipse anlegen===<br />
<br /><br />
===Variablentypen===<br />
In Java gibt es verschiedene Typen von Variablen. Einige davon werden im Folgenden erläutert.<br />
<br />
===='''Syntax einer Variable:'''====<br />
Erste Erstellung: Typ + Name = Wert -> Beispiel: int number = 3 / boolean correct = false<br />
<br />
Spätere Bearbeitung: Name = Wert -> Beispiel: number = 1 / correct = true<br />
<br />
Abfrage (z.B. in IF/ELSE Anfragen oder WHILE-Schleifen): Name == Wert -> number == 1 / correct == true<br />
<br />
===='''Ganzzahl-Typen:'''====<br />
integer (int): alle Zahlen zwischen -2147483648 und 2147483647.<br />
<br />
long: alle Zahlen zwischen -9223372036854775808 und 9223372036854775807.<br />
<br />
===='''Kommazahl-Typen:'''====<br />
double: Zahlen mit Kommastellen, aber auch ohne. Double wird verwendet, da die Ganzzahl-Typen keine Kommastellen speichern können.<br />
<br />
===='''Boolean:'''====<br />
boolean: kann zwei Werte annehmen, entweder true oder false, also wahr oder falsch.<br />
<br />
===='''Char'''====<br />
char: kann den Wert eines Unicodezeichens annehmen, also beispielsweise einen Buchstaben oder eine Zahl von 0-9.<br />
<br />
<u>Syntax</u> <br />
<br />
char i = 'J'<br />
<br />
===='''String'''====<br />
String: kann die Werte einer Zeichenkette annehmen<br />
<br />
ACHTUNG: Der Typ String muss in Java mit einem großen 'S' geschrieben werden.<br />
<br />
<u>Syntax</u> <br />
<br />
String java = "Hello World!"<br />
<br />
===='''Array'''====<br />
array[]: eine Reihung von Zahlen: man kann jeder Stelle eines Arrays eine bestimmte Zahl zuweisen.<br />
<br />
<u>''Syntax''</u> <br />
<br />
<u>Erstellen eines Arrays mit der Länge u</u><br />
<br />
int[] example = new int[u]<br />
<br />
<u>Erstellen eines Arrays mit bestimmten vorgegebenen Werten</u><br />
<br />
int example[] = {0, 3, 5, 10, 20, 25}<br />
<br />
<u>Die Ausgaben kann folgendermaßen aussehen</u><br />
<br />
example[3] == 10;<br />
<br />
example[4] == 20;<br />
<br />
<u>Zuweisung eines Wertes für eine Arraystelle:</u><br />
<br />
example[1] = 4;<br />
<br />
Die abgeänderte Reihung besitzt nun folgende Werte: {0, 4, 5, 10, 20, 25}<br />
<br />
<br /><br />
===Arithmetische Operatoren===<br />
=====Grundlagen=====<br />
In der Programmiersprache Java sind arithmetische Operatoren implementiert. Dabei müssen immer numerische Operanten (int, long, float, double) verwendet werden.<br />
=====Operatoren=====<br />
======Addition======<br />
Der Operator der Addition (a+b) addiert einen numerischen Operanden mit einem weiteren numerischen Operanden.<br />
<br />
public class Addition {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a + b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 10<br />
======Subtraktion======<br />
Der Operator der Subtraktion (a-b) subtrahiert einen numerischen Operanden von einem anderen numerischen Operator.<br />
<br />
public class Subtraktion {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a - b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 4 <br />
======Multiplikation======<br />
Der Operator der Multiplikation (a*b) multipliziert einen numerischen Operanden mit einem anderen numerischen Operanden.<br />
<br />
public class Multiplikation {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a * b;<br />
System.out.print(ergebnis);<br />
}<br />
} <br />
<br />
Ausgabe = 21<br />
======Division======<br />
Der Operator der Division (a/b) dividiert einen numerischen Operanden durch einen anderen numerischen Operanden. <br />
<u>Division zweier numerischer Operanden gleichen Typs:</u><br />
In diesem Fall sind die beiden numerischen Operanden ganzzahlig, daher ist auch das Ergebnis ganzzahlig:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 2<br />
<br />
<u> Division zweier numerischer Operanden unterschiedlichen Typs </u><br />
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:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
float b = 3;<br />
<br />
errgebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe: 2.3333333<br />
<br />
======Division mit Rest======<br />
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:<br />
<br />
public class Modulodivision {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a % b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 1<br />
===Verzweigungen===<br />
<br />
====Einführung====<br />
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.<br /><br />
<br />
====''if''-''Anweisung''====<br />
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:<br />
<br />
if (Bedingung){<br />
Anweisung;<br />
}<br />
<br /><br />
====''if-else''-Anweisung====<br />
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:<br />
<br />
if (Bedingung) {<br />
Anweisung1;<br />
} <br />
else {<br />
Anweisung2;<br />
}<br />
<br /><br />
<br />
====''else-if''-Anweisung====<br />
Wenn man eine Verzweigung in drei verschiedene Programmbereiche braucht, kann man die ''else-if''-Anweisung verwenden. Bei der''else-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: <br />
<br />
if (Bedingung1) {<br />
Anweisung1;<br />
} else if (Bedingung2) {<br />
Anweisung2;<br />
} else {<br />
Anweisung3;<br />
}<br />
<br />
<br /><br />
===Schleifen===<br />
'''FOR-Schleife'''<br />
<br />
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<br />
<br />
<u>Syntax</u><br />
<br />
for(Startwert; Zielwert; Schrittweite)<br />
<br />
<u>Beispiel</u><br />
<br />
for(int i = 1; i < 3; i++) {<br />
gehe 10 Schritte;<br />
}<br />
<br />
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.<br />
<br />
'''WHILE-Schleife'''<br />
<br />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.<br />
<br />
<u>Syntax</u><br />
<br />
while(Bedingung) {<br />
Anweisung;<br />
}<br />
<u>Beispiel</u><br />
<br />
boolean correct = true;<br />
while(correct) {<br />
gehe 10 Schritte;<br />
correct = false;<br />
}<br />
Die Schleife wird einmal ausgeführt, da die Bedingung anfangs korrekt und danach nicht mehr korrekt ist.<br />
<br />
<br />
'''DO-WHILE-Schleife'''<br />
<br />
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.<br />
<br />
<u>Syntax</u><br />
<br />
do {<br />
Anweisung;<br />
} while(Bedingung);<br />
<u>Beispiel</u><br />
<br />
int o = 1;<br />
do {<br />
gehe 10 Schritte;<br />
} while(o == 2);<br />
Diese Schleife wird einmal ausgeführt, danach nicht mehr, da die Bedingung nicht erfüllt wird.<br />
<br />
===Reihungen===<br />
<br>'''Definition'''<p><br />
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.<br />
<p><br />
'''Arten von Reihungen'''<br />
<p><br />
int[] a; Reihung aus ganzen Zahlen<br />
<p><br />
char[] b; Reihungen aus Zeichen<br />
<p><br />
boolean[] c; Reihung aus Wahrheitswerten<br />
<p><br />
int[][] d; Mehrdimensionale Reihung, dabei ist in jedem Element ein eigenes Array enthalten. Jede Dimension wird durch ein paar eckige Klammern dargestellt.<br />
<p><br />
'''Initialisierung von Reihen'''<br />
<p><br />
Reihungen werden grundsätzlich mit dem Operator <b> new </b>initialisiert.<br />
<p><br />
''Beispiel''<syntaxhighlight lang="java"><br />
int[] a = new int[10]<br />
</syntaxhighlight><p><br />
In diesem Beispiel erzeugen wir eine Reihung mit 10 Elementen, dieses enthält jedoch noch keine Werte.<br />
<P><br />
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.<br />
<p> <br />
''Beispiel''<syntaxhighlight lang="java"><br />
int[] b = {1,2,3,4,5}<br />
</syntaxhighlight><p><br />
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'''<br />
<br />
Um Werte aus einer Reihung auszulesen, muss man den Namen der Reihung, sowie die die Nummer des Elements auswählen.<br />
<br />
''Beispiel''<syntaxhighlight lang="java"><br />
int[] a = {1,2,3,4,5}<br />
Dann gilt:<br />
a[3] = 4<br />
</syntaxhighlight></div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/Java&diff=41377Informatik am Johanneum/Java2021-01-15T15:40:23Z<p>11jojo: </p>
<hr />
<div>===Offene Aufgaben===<br />
<br />
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.<br />
<br />
{| class="wikitable"<br />
|+offene Aufgaben<br />
!offene Aufgabe!!Verantwortlicher<br />
|-<br />
|Klassen in Eclipse anlegen||Erik<br />
|-<br />
|Variablentypen<br />
|Vinzent/J-P<br />
|-<br />
|eigene Methoden schreiben, Syntax der Signatur, return Statement<br />
|<br />
|-<br />
|typische Fehlermeldungen, IndexOutOfBoundsExcecption<br />
|<br />
|-<br />
|Arithmetische Operatoren<br />
|Niklas<br />
|-<br />
|Verzweigungen<br />
|Finn, Nikita<br />
|-<br />
|Schleifen (For-Schleife, While Schleife)<br />
|Vinzent/J-P<br />
|-<br />
|Reihungen (Initialisierung, ...)<br />
|Arian, Dharam<br />
|-<br />
|<br />
|<br />
|}<br />
<br />
Tipps zur Erstellung eines Eintrags: <br />
<br />
*jedes Thema hat eine Überschrift von Typ Unterüberschrift1<br />
*Verwende danach für die einzelnen Teilthemen Unterüberschrift2 oder weitere Unterüberschriften. So erscheinen diese Felder im Inhaltsverzeichnis.<br />
*Quellcode kann eingefügt werden, indem die Zeile im Modus Quelltextbearbeitung mit einem Leerzeichen begonnen wird.<br />
<br />
public void quellcodeSchreiben(){<br />
// dies ist ein Beispiel, wie Quellcode dargestellt werden kann.<br />
// wechsele dazu in den Modus Quelltextbearbeitung (oben rechts bei dem Stft)<br />
// beginne dann jede Quelltextzeile mit einem Leerzeichen.<br />
}<br />
<br /><br />
===Klassen in Eclipse anlegen===<br />
<br /><br />
===Variablentypen===<br />
In Java gibt es verschiedene Typen von Variablen. Einige davon werden im Folgenden erläutert.<br />
<br />
===='''Syntax einer Variable:'''====<br />
Erste Erstellung: Typ + Name = Wert -> Beispiel: int number = 3 / boolean correct = false<br />
<br />
Spätere Bearbeitung: Name = Wert -> Beispiel: number = 1 / correct = true<br />
<br />
Abfrage (z.B. in IF/ELSE Anfragen oder WHILE-Schleifen): Name == Wert -> number == 1 / correct == true<br />
<br />
===='''Ganzzahl-Typen:'''====<br />
integer (int): alle Zahlen zwischen -2147483648 und 2147483647.<br />
<br />
long: alle Zahlen zwischen -9223372036854775808 und 9223372036854775807.<br />
<br />
===='''Kommazahl-Typen:'''====<br />
double: Zahlen mit Kommastellen, aber auch ohne. Double wird verwendet, da die Ganzzahl-Typen keine Kommastellen speichern können.<br />
<br />
===='''Boolean:'''====<br />
boolean: kann zwei Werte annehmen, entweder true oder false, also wahr oder falsch.<br />
<br />
===='''Char'''====<br />
char: kann den Wert eines Unicodezeichens annehmen, also beispielsweise einen Buchstaben oder eine Zahl von 0-9.<br />
<br />
<u>Syntax</u> <br />
<br />
char i = 'J'<br />
<br />
===='''String'''====<br />
String: kann die Werte einer Zeichenkette annehmen<br />
<br />
ACHTUNG: Der Typ String muss in Java mit einem großen 'S' geschrieben werden.<br />
<br />
<u>Syntax</u> <br />
<br />
String java = "Hello World!"<br />
<br />
===='''Array'''====<br />
array[]: eine Reihung von Zahlen: man kann jeder Stelle eines Arrays eine bestimmte Zahl zuweisen.<br />
<br />
<u>''Syntax''</u> <br />
<br />
<u>Erstellen eines Arrays mit der Länge u</u><br />
<br />
int[] example = new int[u]<br />
<br />
<u>Erstellen eines Arrays mit bestimmten vorgegebenen Werten</u><br />
<br />
int example[] = {0, 3, 5, 10, 20, 25}<br />
<br />
<u>Die Ausgaben kann folgendermaßen aussehen</u><br />
<br />
example[3] == 10;<br />
<br />
example[4] == 20;<br />
<br />
<u>Zuweisung eines Wertes für eine Arraystelle:</u><br />
<br />
example[1] = 4;<br />
<br />
Die abgeänderte Reihung besitzt nun folgende Werte: {0, 4, 5, 10, 20, 25}<br />
<br />
<br /><br />
===Arithmetische Operatoren===<br />
=====Grundlagen=====<br />
In der Programmiersprache Java sind arithmetische Operatoren implementiert. Dabei müssen immer numerische Operanten (int, long, float, double) verwendet werden.<br />
=====Operatoren=====<br />
======Addition======<br />
Der Operator der Addition (a+b) addiert einen numerischen Operanden mit einem weiteren numerischen Operanden.<br />
<br />
public class Addition {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a + b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 10<br />
======Subtraktion======<br />
Der Operator der Subtraktion (a-b) subtrahiert einen numerischen Operanden von einem anderen numerischen Operator.<br />
<br />
public class Subtraktion {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a - b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 4 <br />
======Multiplikation======<br />
Der Operator der Multiplikation (a*b) multipliziert einen numerischen Operanden mit einem anderen numerischen Operanden.<br />
<br />
public class Multiplikation {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a * b;<br />
System.out.print(ergebnis);<br />
}<br />
} <br />
<br />
Ausgabe = 21<br />
======Division======<br />
Der Operator der Division (a/b) dividiert einen numerischen Operanden durch einen anderen numerischen Operanden. <br />
<u>Division zweier numerischer Operanden gleichen Typs:</u><br />
In diesem Fall sind die beiden numerischen Operanden ganzzahlig, daher ist auch das Ergebnis ganzzahlig:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 2<br />
<br />
<u> Division zweier numerischer Operanden unterschiedlichen Typs </u><br />
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:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
float b = 3;<br />
<br />
errgebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe: 2.3333333<br />
<br />
======Division mit Rest======<br />
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:<br />
<br />
public class Modulodivision {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a % b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 1<br />
===Verzweigungen===<br />
<br />
====Einführung====<br />
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.<br /><br />
<br />
====''if''-''Anweisung''====<br />
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:<br />
<br />
if (Bedingung){<br />
Anweisung;<br />
}<br />
<br /><br />
====''if-else''-Anweisung====<br />
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:<br />
<br />
if (Bedingung) {<br />
Anweisung1;<br />
} <br />
else {<br />
Anweisung2;<br />
}<br />
<br /><br />
<br />
==== ''else-if''-Anweisung ====<br />
Wenn man eine Verzweigung in drei verschiedene Programmbereiche braucht, kann man die ''else-if''-Anweisung verwenden. Bei der''else-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: <br />
<br />
if (Bedingung1) {<br />
Anweisung1;<br />
} else if (Bedingung2) {<br />
Anweisung2;<br />
} else {<br />
Anweisung3;<br />
}<br />
<br />
<br /><br />
===Schleifen===<br />
'''FOR-Schleife'''<br />
<br />
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<br />
<br />
<u>Syntax</u><br />
<br />
for(Startwert; Zielwert; Schrittweite)<br />
<br />
<u>Beispiel</u><br />
<br />
for(int i = 1; i < 3; i++) {<br />
gehe 10 Schritte;<br />
}<br />
<br />
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.<br />
<br />
'''WHILE-Schleife'''<br />
<br />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.<br />
<br />
<u>Syntax</u><br />
<br />
while(Bedingung) {<br />
Anweisung;<br />
}<br />
<u>Beispiel</u><br />
<br />
boolean correct = true;<br />
while(correct) {<br />
gehe 10 Schritte;<br />
correct = false;<br />
}<br />
Die Schleife wird einmal ausgeführt, da die Bedingung anfangs korrekt und danach nicht mehr korrekt ist.<br />
<br />
<br />
'''DO-WHILE-Schleife'''<br />
<br />
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.<br />
<br />
<u>Syntax</u><br />
<br />
do {<br />
Anweisung;<br />
} while(Bedingung);<br />
<u>Beispiel</u><br />
<br />
int o = 1;<br />
do {<br />
gehe 10 Schritte;<br />
} while(o == 2);<br />
Diese Schleife wird einmal ausgeführt, danach nicht mehr, da die Bedingung nicht erfüllt wird.<br />
<br />
===Reihungen===<br />
<br>'''Definition'''<p><br />
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.<br />
<p><br />
'''Arten von Reihungen'''<br />
<p><br />
int[] a; Reihung aus ganzen Zahlen<br />
<p><br />
char[] b; Reihungen aus Zeichen<br />
<p><br />
boolean[] c; Reihung aus Wahrheitswerten<br />
<p><br />
int[][] d; Zweidimensionale Reihung (wie eine Tabelle)<br />
<p><br />
'''Initialisierung von Reihen'''<br />
<p><br />
Reihungen werden grundsätzlich mit dem Operator <b> new </b>initialisiert.<br />
<p><br />
''Beispiel''<br />
<p><br />
int[] a = new int[10];<br />
<p><br />
In diesem Beispiel erzeugen wir eine Reihung mit 10 Elementen, dieses enthält jedoch noch keine Werte.<br />
<P><br />
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.<br />
<p> <br />
''Beispiel''<br />
<p><br />
int[] b = {1,2,3,4,5}<br />
<p><br />
In diesem Beispiel erzeugen wir eine Reihungen mit einer Länge von 5 Elementen mit den Werten 1, 2, 3, 4 und 5.</div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/Java&diff=41357Informatik am Johanneum/Java2021-01-15T11:20:43Z<p>11jojo: </p>
<hr />
<div>===Offene Aufgaben===<br />
<br />
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.<br />
<br />
{| class="wikitable"<br />
|+offene Aufgaben<br />
!offene Aufgabe!!Verantwortlicher<br />
|-<br />
|Klassen in Eclipse anlegen||Erik<br />
|-<br />
|Variablentypen<br />
|Vinzent/J-P<br />
|-<br />
|eigene Methoden schreiben, Syntax der Signatur, return Statement<br />
|<br />
|-<br />
|typische Fehlermeldungen, IndexOutOfBoundsExcecption<br />
|<br />
|-<br />
|Arithmetische Operatoren<br />
|Niklas<br />
|-<br />
|Verzweigungen<br />
|Finn, Nikita<br />
|-<br />
|Schleifen (For-Schleife, While Schleife)<br />
|Vinzent/J-P<br />
|-<br />
|Reihungen (Initialisierung, ...)<br />
|Arian, Dharam<br />
|-<br />
|<br />
|<br />
|}<br />
<br />
Tipps zur Erstellung eines Eintrags: <br />
<br />
*jedes Thema hat eine Überschrift von Typ Unterüberschrift1<br />
*Verwende danach für die einzelnen Teilthemen Unterüberschrift2 oder weitere Unterüberschriften. So erscheinen diese Felder im Inhaltsverzeichnis.<br />
*Quellcode kann eingefügt werden, indem die Zeile im Modus Quelltextbearbeitung mit einem Leerzeichen begonnen wird.<br />
<br />
public void quellcodeSchreiben(){<br />
// dies ist ein Beispiel, wie Quellcode dargestellt werden kann.<br />
// wechsele dazu in den Modus Quelltextbearbeitung (oben rechts bei dem Stft)<br />
// beginne dann jede Quelltextzeile mit einem Leerzeichen.<br />
}<br />
<br /><br />
===Klassen in Eclipse anlegen===<br />
<br /><br />
===Variablentypen===<br />
In Java gibt es verschiedene Typen von Variablen. Einige davon werden im Folgenden erläutert.<br />
<br />
===='''Syntax einer Variable:'''====<br />
Erste Erstellung: Typ + Name = Wert -> Beispiel: int number = 3 / boolean correct = false<br />
<br />
Spätere Bearbeitung: Name = Wert -> Beispiel: number = 1 / correct = true<br />
<br />
Abfrage (z.B. in IF/ELSE Anfragen oder WHILE-Schleifen): Name == Wert -> number == 1 / correct == true<br />
<br />
===='''Ganzzahl-Typen:'''====<br />
integer (int): alle Zahlen zwischen -2147483648 und 2147483647.<br />
<br />
long: alle Zahlen zwischen -9223372036854775808 und 9223372036854775807.<br />
<br />
===='''Kommazahl-Typen:'''====<br />
double: Zahlen mit Kommastellen, aber auch ohne. Double wird verwendet, da die Ganzzahl-Typen keine Kommastellen speichern können.<br />
<br />
===='''Boolean:'''====<br />
boolean: kann zwei Werte annehmen, entweder true oder false, also wahr oder falsch.<br />
<br />
===='''Char'''====<br />
char: kann den Wert eines Unicodezeichens annehmen, also beispielsweise einen Buchstaben oder eine Zahl von 0-9.<br />
<br />
<u>Syntax</u> <br />
<br />
char i = 'J'<br />
<br />
===='''String'''====<br />
String: kann die Werte einer Zeichenkette annehmen<br />
<br />
ACHTUNG: Der Typ String muss in Java mit einem großen 'S' geschrieben werden.<br />
<br />
<u>Syntax</u> <br />
<br />
String java = "Hello World!"<br />
<br />
===='''Array'''====<br />
array[]: eine Reihung von Zahlen: man kann jeder Stelle eines Arrays eine bestimmte Zahl zuweisen.<br />
<br />
<u>''Syntax''</u> <br />
<br />
<u>Erstellen eines Arrays mit der Länge u</u><br />
<br />
int[] example = new int[u]<br />
<br />
<u>Erstellen eines Arrays mit bestimmten vorgegebenen Werten</u><br />
<br />
int example[] = {0, 3, 5, 10, 20, 25}<br />
<br />
<u>Die Ausgaben kann folgendermaßen aussehen</u><br />
<br />
example[3] == 10;<br />
<br />
example[4] == 20;<br />
<br />
<u>Zuweisung eines Wertes für eine Arraystelle:</u><br />
<br />
example[1] = 4;<br />
<br />
Die abgeänderte Reihung besitzt nun folgende Werte: {0, 4, 5, 10, 20, 25}<br />
<br />
<br /><br />
===Arithmetische Operatoren===<br />
=====Grundlagen=====<br />
In der Programmiersprache Java sind arithmetische Operatoren implementiert. Dabei müssen immer numerische Operanten (int, long, float, double) verwendet werden.<br />
=====Operatoren=====<br />
======Addition======<br />
Der Operator der Addition (a+b) addiert einen numerischen Operanden mit einem weiteren numerischen Operanden.<br />
<br />
public class Addition {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a + b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 10<br />
======Subtraktion======<br />
Der Operator der Subtraktion (a-b) subtrahiert einen numerischen Operanden von einem anderen numerischen Operator.<br />
<br />
public class Subtraktion {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a - b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 4 <br />
======Multiplikation======<br />
Der Operator der Multiplikation (a*b) multipliziert einen numerischen Operanden mit einem anderen numerischen Operanden.<br />
<br />
public class Multiplikation {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a * b;<br />
System.out.print(ergebnis);<br />
}<br />
} <br />
<br />
Ausgabe = 21<br />
======Division======<br />
Der Operator der Division (a/b) dividiert einen numerischen Operanden durch einen anderen numerischen Operanden. <br />
<u>Division zweier numerischer Operanden gleichen Typs:</u><br />
In diesem Fall sind die beiden numerischen Operanden ganzzahlig, daher ist auch das Ergebnis ganzzahlig:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 2<br />
<br />
<u> Division zweier numerischer Operanden unterschiedlichen Typs </u><br />
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:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
float b = 3;<br />
<br />
errgebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe: 2.3333333<br />
<br />
======Division mit Rest======<br />
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:<br />
<br />
public class Modulodivision {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a % b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 1<br />
===Verzweigungen===<br />
<br />
====Einführung====<br />
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.<br /><br />
<br />
====''if''-''Anweisung''====<br />
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:<br />
<br />
if (Bedingung){<br />
Anweisung;<br />
}<br />
<br /><br />
====''if-else''-Anweisung====<br />
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:<br />
<br />
if (Bedingung) {<br />
Anweisung1;<br />
} <br />
else {<br />
Anweisung2;<br />
}<br />
<br /><br />
<br />
==== ''else-if''-Anweisung ====<br />
Wenn man eine Verzweigung in drei verschiedene Programmbereiche braucht, kann man die ''else-if''-Anweisung verwenden. Bei der''else-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: <br />
<br />
if (Bedingung1) {<br />
Anweisung1;<br />
} else if (Bedingung2) {<br />
Anweisung2;<br />
} else {<br />
Anweisung3;<br />
}<br />
<br />
<br /><br />
===Schleifen===<br />
'''FOR-Schleife'''<br />
<br />
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<br />
<br />
<u>Syntax</u><br />
<br />
for(Startwert; Zielwert; Schrittweite)<br />
<br />
<u>Beispiel</u><br />
<br />
for(int i = 1; i < 3; i++) {<br />
gehe 10 Schritte;<br />
}<br />
<br />
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.<br />
<br />
'''WHILE-Schleife'''<br />
<br />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.<br />
<br />
<u>Syntax</u><br />
<br />
while(Bedingung) {<br />
Anweisung;<br />
}<br />
<u>Beispiel</u><br />
<br />
boolean correct = true;<br />
while(correct) {<br />
gehe 10 Schritte;<br />
correct = false;<br />
}<br />
Die Schleife wird einmal ausgeführt, da die Bedingung anfangs korrekt und danach nicht mehr korrekt ist.<br />
<br />
<br />
'''DO-WHILE-Schleife'''<br />
<br />
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.<br />
<br />
<u>Syntax</u><br />
<br />
do {<br />
Anweisung;<br />
} while(Bedingung);<br />
<u>Beispiel</u><br />
<br />
int o = 1;<br />
do {<br />
gehe 10 Schritte;<br />
} while(o == 2);<br />
Diese Schleife wird einmal ausgeführt, danach nicht mehr, da die Bedingung nicht erfüllt wird.<br />
<br />
===Reihungen===<br />
'''Definition'''</div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/Java&diff=41355Informatik am Johanneum/Java2021-01-15T11:18:53Z<p>11jojo: </p>
<hr />
<div>===Offene Aufgaben===<br />
<br />
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.<br />
<br />
{| class="wikitable"<br />
|+offene Aufgaben<br />
!offene Aufgabe!!Verantwortlicher<br />
|-<br />
|Klassen in Eclipse anlegen||Erik<br />
|-<br />
|Variablentypen<br />
|Vinzent/J-P<br />
|-<br />
|eigene Methoden schreiben, Syntax der Signatur, return Statement<br />
|<br />
|-<br />
|typische Fehlermeldungen, IndexOutOfBoundsExcecption<br />
|<br />
|-<br />
|Arithmetische Operatoren<br />
|Niklas<br />
|-<br />
|Verzweigungen<br />
|Finn, Nikita<br />
|-<br />
|Schleifen (For-Schleife, While Schleife)<br />
|Vinzent/J-P<br />
|-<br />
|Reihungen (Initialisierung, ...)<br />
|Arian, Dharam<br />
|-<br />
|<br />
|<br />
|}<br />
<br />
Tipps zur Erstellung eines Eintrags: <br />
<br />
*jedes Thema hat eine Überschrift von Typ Unterüberschrift1<br />
*Verwende danach für die einzelnen Teilthemen Unterüberschrift2 oder weitere Unterüberschriften. So erscheinen diese Felder im Inhaltsverzeichnis.<br />
*Quellcode kann eingefügt werden, indem die Zeile im Modus Quelltextbearbeitung mit einem Leerzeichen begonnen wird.<br />
<br />
public void quellcodeSchreiben(){<br />
// dies ist ein Beispiel, wie Quellcode dargestellt werden kann.<br />
// wechsele dazu in den Modus Quelltextbearbeitung (oben rechts bei dem Stft)<br />
// beginne dann jede Quelltextzeile mit einem Leerzeichen.<br />
}<br />
<br /><br />
===Klassen in Eclipse anlegen===<br />
<br /><br />
===Variablentypen===<br />
In Java gibt es verschiedene Typen von Variablen. Einige davon werden im Folgenden erläutert.<br />
<br />
===='''Syntax einer Variable:'''====<br />
Erste Erstellung: Typ + Name = Wert -> Beispiel: int number = 3 / boolean correct = false<br />
<br />
Spätere Bearbeitung: Name = Wert -> Beispiel: number = 1 / correct = true<br />
<br />
Abfrage (z.B. in IF/ELSE Anfragen oder WHILE-Schleifen): Name == Wert -> number == 1 / correct == true<br />
<br />
===='''Ganzzahl-Typen:'''====<br />
integer (int): alle Zahlen zwischen -2147483648 und 2147483647.<br />
<br />
long: alle Zahlen zwischen -9223372036854775808 und 9223372036854775807.<br />
<br />
===='''Kommazahl-Typen:'''====<br />
double: Zahlen mit Kommastellen, aber auch ohne. Double wird verwendet, da die Ganzzahl-Typen keine Kommastellen speichern können.<br />
<br />
===='''Boolean:'''====<br />
boolean: kann zwei Werte annehmen, entweder true oder false, also wahr oder falsch.<br />
<br />
===='''Char'''====<br />
char: kann den Wert eines Unicodezeichens annehmen, also beispielsweise einen Buchstaben oder eine Zahl von 0-9.<br />
<br />
<u>Syntax</u> <br />
<br />
char i = 'J'<br />
<br />
===='''String'''====<br />
String: kann die Werte einer Zeichenkette annehmen<br />
<br />
ACHTUNG: Der Typ String muss in Java mit einem großen 'S' geschrieben werden.<br />
<br />
<u>Syntax</u> <br />
<br />
String java = "Hello World!"<br />
<br />
===='''Array'''====<br />
array[]: eine Reihung von Zahlen: man kann jeder Stelle eines Arrays eine bestimmte Zahl zuweisen.<br />
<br />
<u>''Syntax''</u> <br />
<br />
<u>Erstellen eines Arrays mit der Länge u</u><br />
<br />
int[] example = new int[u]<br />
<br />
<u>Erstellen eines Arrays mit bestimmten vorgegebenen Werten</u><br />
<br />
int example[] = {0, 3, 5, 10, 20, 25}<br />
<br />
<u>Die Ausgaben kann folgendermaßen aussehen</u><br />
<br />
example[3] == 10;<br />
<br />
example[4] == 20;<br />
<br />
<u>Zuweisung eines Wertes für eine Arraystelle:</u><br />
<br />
example[1] = 4;<br />
<br />
Die abgeänderte Reihung besitzt nun folgende Werte: {0, 4, 5, 10, 20, 25}<br />
<br />
<br /><br />
===Arithmetische Operatoren===<br />
=====Grundlagen=====<br />
In der Programmiersprache Java sind arithmetische Operatoren implementiert. Dabei müssen immer numerische Operanten (int, long, float, double) verwendet werden.<br />
=====Operatoren=====<br />
======Addition======<br />
Der Operator der Addition (a+b) addiert einen numerischen Operanden mit einem weiteren numerischen Operanden.<br />
<br />
public class Addition {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a + b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 10<br />
======Subtraktion======<br />
Der Operator der Subtraktion (a-b) subtrahiert einen numerischen Operanden von einem anderen numerischen Operator.<br />
<br />
public class Subtraktion {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a - b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 4 <br />
======Multiplikation======<br />
Der Operator der Multiplikation (a*b) multipliziert einen numerischen Operanden mit einem anderen numerischen Operanden.<br />
<br />
public class Multiplikation {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a * b;<br />
System.out.print(ergebnis);<br />
}<br />
} <br />
<br />
Ausgabe = 21<br />
======Division======<br />
Der Operator der Division (a/b) dividiert einen numerischen Operanden durch einen anderen numerischen Operanden. <br />
<u>Division zweier numerischer Operanden gleichen Typs:</u><br />
In diesem Fall sind die beiden numerischen Operanden ganzzahlig, daher ist auch das Ergebnis ganzzahlig:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 2<br />
<br />
<u> Division zweier numerischer Operanden unterschiedlichen Typs </u><br />
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:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
float b = 3;<br />
<br />
errgebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe: 2.3333333<br />
<br />
======Division mit Rest======<br />
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:<br />
<br />
public class Modulodivision {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a % b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 1<br />
===Verzweigungen===<br />
<br />
====Einführung====<br />
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.<br /><br />
<br />
====''if''-''Anweisung''====<br />
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:<br />
<br />
if (Bedingung){<br />
Anweisung;<br />
}<br />
<br /><br />
====''if-else''-Anweisung====<br />
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:<br />
<br />
if (Bedingung) {<br />
Anweisung1;<br />
} <br />
else {<br />
Anweisung2;<br />
}<br />
<br /><br />
<br />
==== ''else-if''-Anweisung ====<br />
Wenn man eine Verzweigung in drei verschiedene Programmbereiche braucht, kann man die ''else-if''-Anweisung verwenden. Bei der''else-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: <br />
<br />
if (Bedingung1) {<br />
Anweisung1;<br />
} else if (Bedingung2) {<br />
Anweisung2;<br />
} else {<br />
Anweisung3;<br />
}<br />
<br />
<br /><br />
===Schleifen===<br />
'''FOR-Schleife'''<br />
<br />
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<br />
<br />
<u>Syntax</u><br />
<br />
for(Startwert; Zielwert; Schrittweite)<br />
<br />
<u>Beispiel</u><br />
<br />
for(int i = 1; i < 3; i++) {<br />
gehe 10 Schritte;<br />
}<br />
<br />
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.<br />
<br />
'''WHILE-Schleife'''<br />
<br />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.<br />
<br />
<u>Syntax</u><br />
<br />
while(Bedingung) {<br />
Anweisung;<br />
}<br />
<u>Beispiel</u><br />
<br />
boolean correct = true;<br />
while(correct) {<br />
gehe 10 Schritte;<br />
correct = false;<br />
}<br />
Die Schleife wird einmal ausgeführt, da die Bedingung anfangs korrekt und danach nicht mehr korrekt ist.<br />
<br />
<br />
'''DO-WHILE-Schleife'''<br />
<br />
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.<br />
<br />
<u>Syntax</u><br />
<br />
do {<br />
Anweisung;<br />
} while(Bedingung);<br />
<u>Beispiel</u><br />
<br />
int o = 1;<br />
do {<br />
gehe 10 Schritte;<br />
} while(o == 2);<br />
Diese Schleife wird einmal ausgeführt, danach nicht mehr, da die Bedingung nicht erfüllt wird.<br />
<br />
===Reihungen===<br />
<h4> Definition </h4></div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/Java&diff=41354Informatik am Johanneum/Java2021-01-15T11:18:07Z<p>11jojo: </p>
<hr />
<div>===Offene Aufgaben===<br />
<br />
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.<br />
<br />
{| class="wikitable"<br />
|+offene Aufgaben<br />
!offene Aufgabe!!Verantwortlicher<br />
|-<br />
|Klassen in Eclipse anlegen||Erik<br />
|-<br />
|Variablentypen<br />
|Vinzent/J-P<br />
|-<br />
|eigene Methoden schreiben, Syntax der Signatur, return Statement<br />
|<br />
|-<br />
|typische Fehlermeldungen, IndexOutOfBoundsExcecption<br />
|<br />
|-<br />
|Arithmetische Operatoren<br />
|Niklas<br />
|-<br />
|Verzweigungen<br />
|Finn, Nikita<br />
|-<br />
|Schleifen (For-Schleife, While Schleife)<br />
|Vinzent/J-P<br />
|-<br />
|Reihungen (Initialisierung, ...)<br />
|Arian, Dharam<br />
|-<br />
|<br />
|<br />
|}<br />
<br />
Tipps zur Erstellung eines Eintrags: <br />
<br />
*jedes Thema hat eine Überschrift von Typ Unterüberschrift1<br />
*Verwende danach für die einzelnen Teilthemen Unterüberschrift2 oder weitere Unterüberschriften. So erscheinen diese Felder im Inhaltsverzeichnis.<br />
*Quellcode kann eingefügt werden, indem die Zeile im Modus Quelltextbearbeitung mit einem Leerzeichen begonnen wird.<br />
<br />
public void quellcodeSchreiben(){<br />
// dies ist ein Beispiel, wie Quellcode dargestellt werden kann.<br />
// wechsele dazu in den Modus Quelltextbearbeitung (oben rechts bei dem Stft)<br />
// beginne dann jede Quelltextzeile mit einem Leerzeichen.<br />
}<br />
<br /><br />
===Klassen in Eclipse anlegen===<br />
<br /><br />
===Variablentypen===<br />
In Java gibt es verschiedene Typen von Variablen. Einige davon werden im Folgenden erläutert.<br />
<br />
===='''Syntax einer Variable:'''====<br />
Erste Erstellung: Typ + Name = Wert -> Beispiel: int number = 3 / boolean correct = false<br />
<br />
Spätere Bearbeitung: Name = Wert -> Beispiel: number = 1 / correct = true<br />
<br />
Abfrage (z.B. in IF/ELSE Anfragen oder WHILE-Schleifen): Name == Wert -> number == 1 / correct == true<br />
<br />
===='''Ganzzahl-Typen:'''====<br />
integer (int): alle Zahlen zwischen -2147483648 und 2147483647.<br />
<br />
long: alle Zahlen zwischen -9223372036854775808 und 9223372036854775807.<br />
<br />
===='''Kommazahl-Typen:'''====<br />
double: Zahlen mit Kommastellen, aber auch ohne. Double wird verwendet, da die Ganzzahl-Typen keine Kommastellen speichern können.<br />
<br />
===='''Boolean:'''====<br />
boolean: kann zwei Werte annehmen, entweder true oder false, also wahr oder falsch.<br />
<br />
===='''Char'''====<br />
char: kann den Wert eines Unicodezeichens annehmen, also beispielsweise einen Buchstaben oder eine Zahl von 0-9.<br />
<br />
<u>Syntax</u> <br />
<br />
char i = 'J'<br />
<br />
===='''String'''====<br />
String: kann die Werte einer Zeichenkette annehmen<br />
<br />
ACHTUNG: Der Typ String muss in Java mit einem großen 'S' geschrieben werden.<br />
<br />
<u>Syntax</u> <br />
<br />
String java = "Hello World!"<br />
<br />
===='''Array'''====<br />
array[]: eine Reihung von Zahlen: man kann jeder Stelle eines Arrays eine bestimmte Zahl zuweisen.<br />
<br />
<u>''Syntax''</u> <br />
<br />
<u>Erstellen eines Arrays mit der Länge u</u><br />
<br />
int[] example = new int[u]<br />
<br />
<u>Erstellen eines Arrays mit bestimmten vorgegebenen Werten</u><br />
<br />
int example[] = {0, 3, 5, 10, 20, 25}<br />
<br />
<u>Die Ausgaben kann folgendermaßen aussehen</u><br />
<br />
example[3] == 10;<br />
<br />
example[4] == 20;<br />
<br />
<u>Zuweisung eines Wertes für eine Arraystelle:</u><br />
<br />
example[1] = 4;<br />
<br />
Die abgeänderte Reihung besitzt nun folgende Werte: {0, 4, 5, 10, 20, 25}<br />
<br />
<br /><br />
===Arithmetische Operatoren===<br />
=====Grundlagen=====<br />
In der Programmiersprache Java sind arithmetische Operatoren implementiert. Dabei müssen immer numerische Operanten (int, long, float, double) verwendet werden.<br />
=====Operatoren=====<br />
======Addition======<br />
Der Operator der Addition (a+b) addiert einen numerischen Operanden mit einem weiteren numerischen Operanden.<br />
<br />
public class Addition {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a + b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 10<br />
======Subtraktion======<br />
Der Operator der Subtraktion (a-b) subtrahiert einen numerischen Operanden von einem anderen numerischen Operator.<br />
<br />
public class Subtraktion {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a - b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 4 <br />
======Multiplikation======<br />
Der Operator der Multiplikation (a*b) multipliziert einen numerischen Operanden mit einem anderen numerischen Operanden.<br />
<br />
public class Multiplikation {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a * b;<br />
System.out.print(ergebnis);<br />
}<br />
} <br />
<br />
Ausgabe = 21<br />
======Division======<br />
Der Operator der Division (a/b) dividiert einen numerischen Operanden durch einen anderen numerischen Operanden. <br />
<u>Division zweier numerischer Operanden gleichen Typs:</u><br />
In diesem Fall sind die beiden numerischen Operanden ganzzahlig, daher ist auch das Ergebnis ganzzahlig:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 2<br />
<br />
<u> Division zweier numerischer Operanden unterschiedlichen Typs </u><br />
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:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
float b = 3;<br />
<br />
errgebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe: 2.3333333<br />
<br />
======Division mit Rest======<br />
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:<br />
<br />
public class Modulodivision {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a % b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 1<br />
===Verzweigungen===<br />
<br />
====Einführung====<br />
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.<br /><br />
<br />
====''if''-''Anweisung''====<br />
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:<br />
<br />
if (Bedingung){<br />
Anweisung;<br />
}<br />
<br /><br />
====''if-else''-Anweisung====<br />
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:<br />
<br />
if (Bedingung) {<br />
Anweisung1;<br />
} <br />
else {<br />
Anweisung2;<br />
}<br />
<br /><br />
<br />
==== ''else-if''-Anweisung ====<br />
Wenn man eine Verzweigung in drei verschiedene Programmbereiche braucht, kann man die ''else-if''-Anweisung verwenden. Bei der''else-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: <br />
<br />
if (Bedingung1) {<br />
Anweisung1;<br />
} else if (Bedingung2) {<br />
Anweisung2;<br />
} else {<br />
Anweisung3;<br />
}<br />
<br />
<br /><br />
===Schleifen===<br />
'''FOR-Schleife'''<br />
<br />
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<br />
<br />
<u>Syntax</u><br />
<br />
for(Startwert; Zielwert; Schrittweite)<br />
<br />
<u>Beispiel</u><br />
<br />
for(int i = 1; i < 3; i++) {<br />
gehe 10 Schritte;<br />
}<br />
<br />
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.<br />
<br />
'''WHILE-Schleife'''<br />
<br />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.<br />
<br />
<u>Syntax</u><br />
<br />
while(Bedingung) {<br />
Anweisung;<br />
}<br />
<u>Beispiel</u><br />
<br />
boolean correct = true;<br />
while(correct) {<br />
gehe 10 Schritte;<br />
correct = false;<br />
}<br />
Die Schleife wird einmal ausgeführt, da die Bedingung anfangs korrekt und danach nicht mehr korrekt ist.<br />
<br />
<br />
'''DO-WHILE-Schleife'''<br />
<br />
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.<br />
<br />
<u>Syntax</u><br />
<br />
do {<br />
Anweisung;<br />
} while(Bedingung);<br />
<u>Beispiel</u><br />
<br />
int o = 1;<br />
do {<br />
gehe 10 Schritte;<br />
} while(o == 2);<br />
Diese Schleife wird einmal ausgeführt, danach nicht mehr, da die Bedingung nicht erfüllt wird.<br />
<br />
===Reihungen===<br />
<h2> Definition </h2></div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/Java&diff=41352Informatik am Johanneum/Java2021-01-15T11:15:23Z<p>11jojo: Überschrift</p>
<hr />
<div>===Offene Aufgaben===<br />
<br />
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.<br />
<br />
{| class="wikitable"<br />
|+offene Aufgaben<br />
!offene Aufgabe!!Verantwortlicher<br />
|-<br />
|Klassen in Eclipse anlegen||Erik<br />
|-<br />
|Variablentypen<br />
|Vinzent/J-P<br />
|-<br />
|eigene Methoden schreiben, Syntax der Signatur, return Statement<br />
|<br />
|-<br />
|typische Fehlermeldungen, IndexOutOfBoundsExcecption<br />
|<br />
|-<br />
|Arithmetische Operatoren<br />
|Niklas<br />
|-<br />
|Verzweigungen<br />
|Finn, Nikita<br />
|-<br />
|Schleifen (For-Schleife, While Schleife)<br />
|Vinzent/J-P<br />
|-<br />
|Reihungen (Initialisierung, ...)<br />
|Arian, Dharam<br />
|-<br />
|<br />
|<br />
|}<br />
<br />
Tipps zur Erstellung eines Eintrags: <br />
<br />
*jedes Thema hat eine Überschrift von Typ Unterüberschrift1<br />
*Verwende danach für die einzelnen Teilthemen Unterüberschrift2 oder weitere Unterüberschriften. So erscheinen diese Felder im Inhaltsverzeichnis.<br />
*Quellcode kann eingefügt werden, indem die Zeile im Modus Quelltextbearbeitung mit einem Leerzeichen begonnen wird.<br />
<br />
public void quellcodeSchreiben(){<br />
// dies ist ein Beispiel, wie Quellcode dargestellt werden kann.<br />
// wechsele dazu in den Modus Quelltextbearbeitung (oben rechts bei dem Stft)<br />
// beginne dann jede Quelltextzeile mit einem Leerzeichen.<br />
}<br />
<br /><br />
===Klassen in Eclipse anlegen===<br />
<br /><br />
===Variablentypen===<br />
In Java gibt es verschiedene Typen von Variablen. Einige davon werden im Folgenden erläutert.<br />
<br />
===='''Syntax einer Variable:'''====<br />
Erste Erstellung: Typ + Name = Wert -> Beispiel: int number = 3 / boolean correct = false<br />
<br />
Spätere Bearbeitung: Name = Wert -> Beispiel: number = 1 / correct = true<br />
<br />
Abfrage (z.B. in IF/ELSE Anfragen oder WHILE-Schleifen): Name == Wert -> number == 1 / correct == true<br />
<br />
===='''Ganzzahl-Typen:'''====<br />
integer (int): alle Zahlen zwischen -2147483648 und 2147483647.<br />
<br />
long: alle Zahlen zwischen -9223372036854775808 und 9223372036854775807.<br />
<br />
===='''Kommazahl-Typen:'''====<br />
double: Zahlen mit Kommastellen, aber auch ohne. Double wird verwendet, da die Ganzzahl-Typen keine Kommastellen speichern können.<br />
<br />
===='''Boolean:'''====<br />
boolean: kann zwei Werte annehmen, entweder true oder false, also wahr oder falsch.<br />
<br />
===='''Char'''====<br />
char: kann den Wert eines Unicodezeichens annehmen, also beispielsweise einen Buchstaben oder eine Zahl von 0-9.<br />
<br />
<u>Syntax</u> <br />
<br />
char i = 'J'<br />
<br />
===='''String'''====<br />
String: kann die Werte einer Zeichenkette annehmen<br />
<br />
ACHTUNG: Der Typ String muss in Java mit einem großen 'S' geschrieben werden.<br />
<br />
<u>Syntax</u> <br />
<br />
String java = "Hello World!"<br />
<br />
===='''Array'''====<br />
array[]: eine Reihung von Zahlen: man kann jeder Stelle eines Arrays eine bestimmte Zahl zuweisen.<br />
<br />
<u>''Syntax''</u> <br />
<br />
<u>Erstellen eines Arrays mit der Länge u</u><br />
<br />
int[] example = new int[u]<br />
<br />
<u>Erstellen eines Arrays mit bestimmten vorgegebenen Werten</u><br />
<br />
int example[] = {0, 3, 5, 10, 20, 25}<br />
<br />
<u>Die Ausgaben kann folgendermaßen aussehen</u><br />
<br />
example[3] == 10;<br />
<br />
example[4] == 20;<br />
<br />
<u>Zuweisung eines Wertes für eine Arraystelle:</u><br />
<br />
example[1] = 4;<br />
<br />
Die abgeänderte Reihung besitzt nun folgende Werte: {0, 4, 5, 10, 20, 25}<br />
<br />
<br /><br />
===Arithmetische Operatoren===<br />
=====Grundlagen=====<br />
In der Programmiersprache Java sind arithmetische Operatoren implementiert. Dabei müssen immer numerische Operanten (int, long, float, double) verwendet werden.<br />
=====Operatoren=====<br />
======Addition======<br />
Der Operator der Addition (a+b) addiert einen numerischen Operanden mit einem weiteren numerischen Operanden.<br />
<br />
public class Addition {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a + b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 10<br />
======Subtraktion======<br />
Der Operator der Subtraktion (a-b) subtrahiert einen numerischen Operanden von einem anderen numerischen Operator.<br />
<br />
public class Subtraktion {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a - b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 4 <br />
======Multiplikation======<br />
Der Operator der Multiplikation (a*b) multipliziert einen numerischen Operanden mit einem anderen numerischen Operanden.<br />
<br />
public class Multiplikation {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a * b;<br />
System.out.print(ergebnis);<br />
}<br />
} <br />
<br />
Ausgabe = 21<br />
======Division======<br />
Der Operator der Division (a/b) dividiert einen numerischen Operanden durch einen anderen numerischen Operanden. <br />
<u>Division zweier numerischer Operanden gleichen Typs:</u><br />
In diesem Fall sind die beiden numerischen Operanden ganzzahlig, daher ist auch das Ergebnis ganzzahlig:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 2<br />
<br />
<u> Division zweier numerischer Operanden unterschiedlichen Typs </u><br />
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:<br />
<br />
public class Division {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
float b = 3;<br />
<br />
errgebnis = a / b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe: 2.3333333<br />
<br />
======Division mit Rest======<br />
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:<br />
<br />
public class Modulodivision {<br />
public static void main(String[] args) {<br />
int a = 7;<br />
int b = 3;<br />
<br />
ergebnis = a % b;<br />
System.out.print(ergebnis);<br />
}<br />
}<br />
<br />
Ausgabe = 1<br />
===Verzweigungen===<br />
<br />
====Einführung====<br />
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.<br /><br />
<br />
====''if''-''Anweisung''====<br />
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:<br />
<br />
if (Bedingung){<br />
Anweisung;<br />
}<br />
<br /><br />
====''if-else''-Anweisung====<br />
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:<br />
<br />
if (Bedingung) {<br />
Anweisung1;<br />
} <br />
else {<br />
Anweisung2;<br />
}<br />
<br /><br />
<br />
==== ''else-if''-Anweisung ====<br />
Wenn man eine Verzweigung in drei verschiedene Programmbereiche braucht, kann man die ''else-if''-Anweisung verwenden. Bei der''else-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: <br />
<br />
if (Bedingung1) {<br />
Anweisung1;<br />
} else if (Bedingung2) {<br />
Anweisung2;<br />
} else {<br />
Anweisung3;<br />
}<br />
<br />
<br /><br />
===Schleifen===<br />
'''FOR-Schleife'''<br />
<br />
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<br />
<br />
<u>Syntax</u><br />
<br />
for(Startwert; Zielwert; Schrittweite)<br />
<br />
<u>Beispiel</u><br />
<br />
for(int i = 1; i < 3; i++) {<br />
gehe 10 Schritte;<br />
}<br />
<br />
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.<br />
<br />
'''WHILE-Schleife'''<br />
<br />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.<br />
<br />
<u>Syntax</u><br />
<br />
while(Bedingung) {<br />
Anweisung;<br />
}<br />
<u>Beispiel</u><br />
<br />
boolean correct = true;<br />
while(correct) {<br />
gehe 10 Schritte;<br />
correct = false;<br />
}<br />
Die Schleife wird einmal ausgeführt, da die Bedingung anfangs korrekt und danach nicht mehr korrekt ist.<br />
<br />
<br />
'''DO-WHILE-Schleife'''<br />
<br />
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.<br />
<br />
<u>Syntax</u><br />
<br />
do {<br />
Anweisung;<br />
} while(Bedingung);<br />
<u>Beispiel</u><br />
<br />
int o = 1;<br />
do {<br />
gehe 10 Schritte;<br />
} while(o == 2);<br />
Diese Schleife wird einmal ausgeführt, danach nicht mehr, da die Bedingung nicht erfüllt wird.<br />
<br />
===Reihungen (initialisieren)===</div>11jojohttps://projekte.zum.de/index.php?title=Benutzer:11jojo&diff=41351Benutzer:11jojo2021-01-15T11:13:00Z<p>11jojo: </p>
<hr />
<div>Projekte:[[Informatik am Johanneum]]<br />
<br />
Lehrerin: [[Benutzer:Info jojo]]<br />
<br />
Meine Seite:[[Informatik am Johanneum/eigene Verfahren/11jojo]] <br><br />
Java-Seite:[[Informatik am Johanneum/Java]]</div>11jojohttps://projekte.zum.de/index.php?title=Benutzer:11jojo&diff=41350Benutzer:11jojo2021-01-15T11:12:06Z<p>11jojo: Java-Link</p>
<hr />
<div>Projekte:[[Informatik am Johanneum]]<br />
<br />
Lehrerin: [[Benutzer:Info jojo]]<br />
<br />
Meine Seite:[[Informatik am Johanneum/eigene Verfahren/11jojo]]<br />
Java-Seite:[[Informatik am Johanneum/Java]]</div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/eigene_Verfahren/11jojo&diff=22855Informatik am Johanneum/eigene Verfahren/11jojo2020-05-29T15:23:19Z<p>11jojo: /* Zahlenverschlüsselung mit doppeltem Code */</p>
<hr />
<div>=Zahlenverschlüsselung mit doppeltem Code=<br />
Bei diesem Subtitutionsverfahren werden die Wörter mithilfe von Zahlen verschlüsselt. Für die Entschlüsselung werden zwei verschiedene Codes benötigt.<br />
<br />
======Verschlüsselung======<br />
Bei meinem Verfahren wird jedem Buchstaben aus dem Alphabet eine Zahl zugeordnet nach dem Prinzip A-Z 1-26. Dann werden die Zahlen in eine mathematischen Gleichung eingesetzt (dabei wird Punkt vor Strichrechnung ignoriert und nur von rechts nach links gerechnet) und das Ergebnis davon wird mit der Position im Satz multipliziert [z.B. Erster Buchstabe: *1] und hingeschrieben. Alle Zahlen werden direkt hintereinander geschrieben, ohne Leerzeichen oder sonstiges zu lassen. Damit klar ist, wie viele Zahlen zu einem Buchstaben gehören gibt es einen zweiten Code, der mittels Zahlen beschreibt, wie viele Zahlen aus der Zahlenreihe jeweils zu dem Buchstaben gehören, falls in der Zahlenreihe negative Zahlen oder Zahlen mit Kommastellen vorkommen, wird das in diesem Code hingeschrieben, nicht in der Zahlenreihe, um Auffälligkeiten in dieser zu vermeiden [Beispiel: In der Zahlenreihe müsste eigentlich -5789,32 stehen, dann wird das Minus und die Kommastelle in der richtigen Zahlenreihe weggelassen, dafür aber im Code für die Buchstabenlänge -4,2 geschrieben-->- für das negative Vorzeichen, 4 für die 4 Zahlen vor dem Komma, 2 für die Zahlen nach dem Komma]. <br />
<br />
======Entschlüsselung======<br />
Um die Zahlenreihe wieder zu entschlüsseln, braucht man erstmal den Code, um die Zahlenreihe in einzelne Buchstaben aufzuteilen. Um die einzelnen Buchstaben wieder zu entschlüsseln, muss die Gleichung einfach in umgekehrter Reihenfolge gerechnet werden.<br />
<br />
==Beispiel==<br />
<br />
======Verschlüsselung======<br />
Der Satz: DASISTEINBEISPIEL würde in meinem Verfahren folgendermaßen verschlüsselt werden:<br />
<br />
Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)<br />
<br />
Der Satz in den Zahlen von 1-26: 4 1 19 9 19 20 5 9 14 2 5 9 19 16 9 5 12 <br />
<br />
Umwandlung durch die Gleichung:<br />
<br />
Beispiel für die erste Zahl 4:<br />
<br />
1) 4+7=11<br />
<br />
2)11*23=253<br />
<br />
3)253-4=249<br />
<br />
4)249*12=2988<br />
<br />
5) 2988*1=2988<br />
<br />
Für alle Zahlen ergibt sich folgende Zahl: 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332=<br />
<br />
29884320213841747235640444242284834944517322436035904524169266488200655205222488332<br />
<br />
Daraus ergibt sich folgender Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5<br />
<br />
======Entschlüsselung======<br />
Um die Zahlenreihe wieder zu entschlüsseln werden folgende Codes benötigt:<br />
<br />
-Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)<br />
<br />
-Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5<br />
<br />
Damit wird die Zahlenreihe erstmal wieder in einzelne Buchstaben geteilt:<br />
<br />
29884320213841747235640444242284834944517322436035904524169266488200655205222488332= 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332<br />
<br />
Dann wird für jede Zahl die Gleichung rückwärts zurückgerechnet:<br />
<br />
Beispiel für den ersten Buchstaben:<br />
<br />
1)2988/1=2988<br />
<br />
2)2988/12=249<br />
<br />
3)249+4=253<br />
<br />
4)253/23=11<br />
<br />
5)11-7 =4<br />
<br />
Das wird für jeden Buchstaben gemacht und die Ergebnisse werden wieder zu Buchstaben im Alphabet umgewandelt.<br />
<br />
==Sicherheitsbewertung==<br />
Die Vorteile dieser Verschlüsselungstechnik sind, dass es nicht sehr einfach ist die einzelnen Buchstaben in der Zahlenkette zu erkennen, dadurch ergibt sich, dass Unklar ist, wie lang der Satz oder das Wort ist. Ein weiterer Vorteil ist, das eine Häufigkeitsanalyse wahrscheinlich nicht funktioniert, da selbst gleiche Buchstaben unterschiedliche Zahlen zugewiesen bekommen. Der dritte Vorteil ist, dass es zwei Codes gibt, einen denen man dauerhaft festlegen kann (Gleichung) und einen individuellen für jede Nachricht (Code für die Buchstabenlänge). Ein Code alleine kann die Nachricht nicht sofort entschlüsseln. Zudem kann durch komplexere Gleichungen (Dividieren, quadrieren, negative Ergebnisse, etc. die Zahlenreihe noch komplexer bzw. komplizierter werden.<br />
<br />
Der Nachteil ist, dass bei jeder Nachricht ein neuer Code für die Buchstabenlänge mitgeschickt werden muss, welcher abgefangen werden kann, allerdings bringt einem dieser Code recht wenig, wenn man nicht auch die Gleichung kennt, um die Zahlen der Buchstaben auszurechnen, vorallem wenn die Gleichung komplex ist.</div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/eigene_Verfahren/11jojo&diff=22854Informatik am Johanneum/eigene Verfahren/11jojo2020-05-29T15:23:03Z<p>11jojo: </p>
<hr />
<div>=Zahlenverschlüsselung mit doppeltem Code=<br />
Bei diesem Subtitutionsverfahren werden die Wörter mithilfe von Zahlen verschlüsselt. Für die Entschlüsselung werden zwei verschiedene Codes benötigt<br />
<br />
======Verschlüsselung======<br />
Bei meinem Verfahren wird jedem Buchstaben aus dem Alphabet eine Zahl zugeordnet nach dem Prinzip A-Z 1-26. Dann werden die Zahlen in eine mathematischen Gleichung eingesetzt (dabei wird Punkt vor Strichrechnung ignoriert und nur von rechts nach links gerechnet) und das Ergebnis davon wird mit der Position im Satz multipliziert [z.B. Erster Buchstabe: *1] und hingeschrieben. Alle Zahlen werden direkt hintereinander geschrieben, ohne Leerzeichen oder sonstiges zu lassen. Damit klar ist, wie viele Zahlen zu einem Buchstaben gehören gibt es einen zweiten Code, der mittels Zahlen beschreibt, wie viele Zahlen aus der Zahlenreihe jeweils zu dem Buchstaben gehören, falls in der Zahlenreihe negative Zahlen oder Zahlen mit Kommastellen vorkommen, wird das in diesem Code hingeschrieben, nicht in der Zahlenreihe, um Auffälligkeiten in dieser zu vermeiden [Beispiel: In der Zahlenreihe müsste eigentlich -5789,32 stehen, dann wird das Minus und die Kommastelle in der richtigen Zahlenreihe weggelassen, dafür aber im Code für die Buchstabenlänge -4,2 geschrieben-->- für das negative Vorzeichen, 4 für die 4 Zahlen vor dem Komma, 2 für die Zahlen nach dem Komma]. <br />
<br />
======Entschlüsselung======<br />
Um die Zahlenreihe wieder zu entschlüsseln, braucht man erstmal den Code, um die Zahlenreihe in einzelne Buchstaben aufzuteilen. Um die einzelnen Buchstaben wieder zu entschlüsseln, muss die Gleichung einfach in umgekehrter Reihenfolge gerechnet werden.<br />
<br />
==Beispiel==<br />
<br />
======Verschlüsselung======<br />
Der Satz: DASISTEINBEISPIEL würde in meinem Verfahren folgendermaßen verschlüsselt werden:<br />
<br />
Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)<br />
<br />
Der Satz in den Zahlen von 1-26: 4 1 19 9 19 20 5 9 14 2 5 9 19 16 9 5 12 <br />
<br />
Umwandlung durch die Gleichung:<br />
<br />
Beispiel für die erste Zahl 4:<br />
<br />
1) 4+7=11<br />
<br />
2)11*23=253<br />
<br />
3)253-4=249<br />
<br />
4)249*12=2988<br />
<br />
5) 2988*1=2988<br />
<br />
Für alle Zahlen ergibt sich folgende Zahl: 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332=<br />
<br />
29884320213841747235640444242284834944517322436035904524169266488200655205222488332<br />
<br />
Daraus ergibt sich folgender Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5<br />
<br />
======Entschlüsselung======<br />
Um die Zahlenreihe wieder zu entschlüsseln werden folgende Codes benötigt:<br />
<br />
-Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)<br />
<br />
-Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5<br />
<br />
Damit wird die Zahlenreihe erstmal wieder in einzelne Buchstaben geteilt:<br />
<br />
29884320213841747235640444242284834944517322436035904524169266488200655205222488332= 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332<br />
<br />
Dann wird für jede Zahl die Gleichung rückwärts zurückgerechnet:<br />
<br />
Beispiel für den ersten Buchstaben:<br />
<br />
1)2988/1=2988<br />
<br />
2)2988/12=249<br />
<br />
3)249+4=253<br />
<br />
4)253/23=11<br />
<br />
5)11-7 =4<br />
<br />
Das wird für jeden Buchstaben gemacht und die Ergebnisse werden wieder zu Buchstaben im Alphabet umgewandelt.<br />
<br />
==Sicherheitsbewertung==<br />
Die Vorteile dieser Verschlüsselungstechnik sind, dass es nicht sehr einfach ist die einzelnen Buchstaben in der Zahlenkette zu erkennen, dadurch ergibt sich, dass Unklar ist, wie lang der Satz oder das Wort ist. Ein weiterer Vorteil ist, das eine Häufigkeitsanalyse wahrscheinlich nicht funktioniert, da selbst gleiche Buchstaben unterschiedliche Zahlen zugewiesen bekommen. Der dritte Vorteil ist, dass es zwei Codes gibt, einen denen man dauerhaft festlegen kann (Gleichung) und einen individuellen für jede Nachricht (Code für die Buchstabenlänge). Ein Code alleine kann die Nachricht nicht sofort entschlüsseln. Zudem kann durch komplexere Gleichungen (Dividieren, quadrieren, negative Ergebnisse, etc. die Zahlenreihe noch komplexer bzw. komplizierter werden.<br />
<br />
Der Nachteil ist, dass bei jeder Nachricht ein neuer Code für die Buchstabenlänge mitgeschickt werden muss, welcher abgefangen werden kann, allerdings bringt einem dieser Code recht wenig, wenn man nicht auch die Gleichung kennt, um die Zahlen der Buchstaben auszurechnen, vorallem wenn die Gleichung komplex ist.</div>11jojohttps://projekte.zum.de/index.php?title=Benutzer:11jojo&diff=22850Benutzer:11jojo2020-05-29T14:31:27Z<p>11jojo: Link zu meiner Seite</p>
<hr />
<div>Projekte:[[Informatik am Johanneum]]<br />
<br />
Lehrerin: [[Benutzer:Info jojo]]<br />
<br />
Meine Seite:[[Informatik am Johanneum/eigene Verfahren/11jojo]]</div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/eigene_Verfahren/11jojo&diff=22849Informatik am Johanneum/eigene Verfahren/11jojo2020-05-29T14:26:02Z<p>11jojo: Verschlüsselung wurde hinzugefügt.</p>
<hr />
<div>=Zahlenverschlüsselung mit doppeltem Code=<br />
Bei diesem Verfahren werden die Wörter mithilfe von Zahlen verschlüsselt. Für die Entschlüsselung werden zwei verschiedene Codes benötigt<br />
<br />
====== Verschlüsselung ======<br />
Bei meinem Verfahren wird jedem Buchstaben aus dem Alphabet eine Zahl zugeordnet nach dem Prinzip A-Z 1-26. Dann werden die Zahlen in eine mathematischen Gleichung eingesetzt (dabei wird Punkt vor Strichrechnung ignoriert und nur von rechts nach links gerechnet) und das Ergebnis davon wird mit der Position im Satz multipliziert [z.B. Erster Buchstabe: *1] und hingeschrieben. Alle Zahlen werden direkt hintereinander geschrieben, ohne Leerzeichen oder sonstiges zu lassen. Damit klar ist, wie viele Zahlen zu einem Buchstaben gehören gibt es einen zweiten Code, der mittels Zahlen beschreibt, wie viele Zahlen aus der Zahlenreihe jeweils zu dem Buchstaben gehören, falls in der Zahlenreihe negative Zahlen oder Zahlen mit Kommastellen vorkommen, wird das in diesem Code hingeschrieben, nicht in der Zahlenreihe, um Auffälligkeiten in dieser zu vermeiden [Beispiel: In der Zahlenreihe müsste eigentlich -5789,32 stehen, dann wird das Minus und die Kommastelle in der richtigen Zahlenreihe weggelassen, dafür aber im Code für die Buchstabenlänge -4,2 geschrieben-->- für das negative Vorzeichen, 4 für die 4 Zahlen vor dem Komma, 2 für die Zahlen nach dem Komma]. <br />
<br />
====== Entschlüsselung ======<br />
Um die Zahlenreihe wieder zu entschlüsseln, braucht man erstmal den Code, um die Zahlenreihe in einzelne Buchstaben aufzuteilen. Um die einzelnen Buchstaben wieder zu entschlüsseln, muss die Gleichung einfach in umgekehrter Reihenfolge gerechnet werden.<br />
<br />
== Beispiel ==<br />
<br />
====== Verschlüsselung ======<br />
Der Satz: DASISTEINBEISPIEL würde in meinem Verfahren folgendermaßen verschlüsselt werden:<br />
<br />
Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)<br />
<br />
Der Satz in den Zahlen von 1-26: 4 1 19 9 19 20 5 9 14 2 5 9 19 16 9 5 12 <br />
<br />
Umwandlung durch die Gleichung:<br />
<br />
Beispiel für die erste Zahl 4:<br />
<br />
1) 4+7=11<br />
<br />
2)11*23=253<br />
<br />
3)253-4=249<br />
<br />
4)249*12=2988<br />
<br />
5) 2988*1=2988<br />
<br />
Für alle Zahlen ergibt sich folgende Zahl: 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332=<br />
<br />
29884320213841747235640444242284834944517322436035904524169266488200655205222488332<br />
<br />
Daraus ergibt sich folgender Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5<br />
<br />
====== Entschlüsselung ======<br />
Um die Zahlenreihe wieder zu entschlüsseln werden folgende Codes benötigt:<br />
<br />
-Gleichung: (+7)(*23)(-4)(*12)(*Die Stellung im Text)<br />
<br />
-Code für die Buchstabenlänge: 4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5<br />
<br />
Damit wird die Zahlenreihe erstmal wieder in einzelne Buchstaben geteilt:<br />
<br />
29884320213841747235640444242284834944517322436035904524169266488200655205222488332= 2988x4320x21384x17472x35640x44424x22848x34944x51732x24360x35904x52416x92664x88200x65520x52224x88332<br />
<br />
Dann wird für jede Zahl die Gleichung rückwärts zurückgerechnet:<br />
<br />
Beispiel für den ersten Buchstaben:<br />
<br />
1)2988/1=2988<br />
<br />
2)2988/12=249<br />
<br />
3)249+4=253<br />
<br />
4)253/23=11<br />
<br />
5)11-7 =4<br />
<br />
Das wird für jeden Buchstaben gemacht und die Ergebnisse werden wieder zu Buchstaben im Alphabet umgewandelt.<br />
<br />
== Sicherheitsbewertung ==<br />
Die Vorteile dieser Verschlüsselungstechnik sind, dass es nicht sehr einfach ist die einzelnen Buchstaben in der Zahlenkette zu erkennen, dadurch ergibt sich, dass Unklar ist, wie lang der Satz oder das Wort ist. Ein weiterer Vorteil ist, das eine Häufigkeitsanalyse wahrscheinlich nicht funktioniert, da selbst gleiche Buchstaben unterschiedliche Zahlen zugewiesen bekommen. Der dritte Vorteil ist, dass es zwei Codes gibt, einen denen man dauerhaft festlegen kann (Gleichung) und einen individuellen für jede Nachricht (Code für die Buchstabenlänge). Ein Code alleine kann die Nachricht nicht sofort entschlüsseln. Zudem kann durch komplexere Gleichungen (Dividieren, quadrieren, negative Ergebnisse, etc. die Zahlenreihe noch komplexer bzw. komplizierter werden.<br />
<br />
Der Nachteil ist, dass bei jeder Nachricht ein neuer Code für die Buchstabenlänge mitgeschickt werden muss, welcher abgefangen werden kann, allerdings bringt einem dieser Code recht wenig, wenn man nicht auch die Gleichung kennt, um die Zahlen der Buchstaben auszurechnen, vorallem wenn die Gleichung komplex ist.</div>11jojohttps://projekte.zum.de/index.php?title=Informatik_am_Johanneum/eigene_Verfahren/11jojo&diff=22835Informatik am Johanneum/eigene Verfahren/11jojo2020-05-29T12:51:35Z<p>11jojo: Titel hinzugefügt</p>
<hr />
<div>=Zahlenverschlüsselung mit doppeltem Code=</div>11jojohttps://projekte.zum.de/index.php?title=Benutzer:11jojo&diff=22830Benutzer:11jojo2020-05-29T12:43:18Z<p>11jojo: neue Benutzerseite</p>
<hr />
<div>Projekte:[[Informatik am Johanneum]]<br />
<br />
Lehrerin: [[Benutzer:Info jojo]]<br />
<br />
Meine Seite:</div>11jojo