Teil III Begriffe der Informatik, Zahlensysteme, Datentypen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 1/50 Inhalt Inhalt ● Begriffe der Informatik ● Zahlensysteme - Stellenwertsysteme ● Datentypen ● Hamster-Simulator – Eigene Funktionen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 2/50 Begriffe Begriffe in in der der Informatik Informatik Begriffe in der Informatik Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 3/50 Begriffe Begriffe in in der der Informatik Informatik Dieser Teil der Vorlesung macht Sie mit den folgenden Begriffen vertraut: ● Zeichensatz ● Token ● Schlüsselwörter ● Bezeichner ● Anweisungen ● Programme ● Kommentare ● Codekonventionen ● Programmentwicklung Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 4/50 Begriffe Begriffe in in der der Informatik Informatik - Zeichensatz Zeichensatz Allgemein wird als Zeichensatz die Menge an Zeichen verstanden, die der entsprechende Compiler verarbeiten kann: – Der verwendbare Zeichensatz ist abhängig von der Programmiersprache bzw. dem Compiler – Sie können prinzipiell immer die ersten 128 Zeichen des ASCII-Zeichensatzes verwenden – Nehmen Sie beim Schreiben Ihrer Programme (Variablen, Funktions-/Prozedurnamen, Dateinamen,...) Abstand von länderspezifischen Zeichen wie Umlaute Alle Zeichen, die im Zeichensatz des Compilers enthalten sind, werden als „gültige“ Zeichen bezeichnet Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 5/50 Begriffe Begriffe in in der der Informatik Informatik - Zeichensatz Zeichensatz Allgemein wird als Zeichensatz die Menge an Zeichen verstanden, die der entsprechende Compiler verarbeiten kann: – Der verwendbare Zeichensatz ist abhängig von der Programmiersprache bzw. dem Compiler – Sie können prinzipiell immer die ersten 128 Zeichen des ASCII-Zeichensatzes verwenden – Nehmen Sie beim Schreiben Ihrer Programme (Variablen, Funktions-/Prozedurnamen, Dateinamen,...) Abstand von länderspezifischen Zeichen wie Umlaute Alle Zeichen, die im Zeichensatz des Compilers enthalten sind, werden als „gültige“ Zeichen bezeichnet Wichtig: In den meisten Programmiersprachen wird Großund Kleinschreibung unterschieden! Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 6/50 Begriffe Begriffe in in der der Informatik Informatik - Token Token Ein Token ist eine Einheit, die aus gültigen Zeichen besteht. Der Begriff Token bildet die Obermenge für: ● ● ● ● Symbole: <; =; <=; +; ... Schlüsselwörter: while, if, else, try, int, ... Bezeichner: Prozedurnamen, Variablennamen, ... Literale (Konstanten): true, 47, 8.15, "Hallo, Welt!" Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 7/50 Begriffe Begriffe in in der der Informatik Informatik - Token Token Unterschiedliche Token werden in der Regel von einander durch sogenannte Trennzeichen oder Zwischenraumzeichen getrennt: – Leerzeichen („Blank“) – Tabulator – Zeilenende – Zeilenvorschub – Seitenvorschub Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 8/50 Begriffe Begriffe in in der der Informatik Informatik - Token Token Unterschiedliche Token werden in der Regel von einander durch sogenannte Trennzeichen oder Zwischenraumzeichen getrennt: ● – Leerzeichen („Blank“) – Tabulator – Zeilenende – Zeilenvorschub – Seitenvorschub Allerdings können Token auch durch die Syntax bedingt getrennt werden „zaehler=zaehler-3“ wird i.d.R. in „zaehler“ „=“ „-“ und „3“ getrennt Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 9/50 Begriffe Begriffe in in der der Informatik Informatik - Schlüsselwörter ● ● ● Mit Schlüsselwörtern werden bestimmte Tokens bezeichnet, die in der jeweiligen Programmiersprache bereits mit einer Funktion belegt sind Ein Schlüsselwort kann daher nicht als Bezeichner verwendet werden! Beispiele für Schlüsselwörter: abstract boolean byte case class const continue default double enum extends false final float for goto if int long new public static super switch this throw throws true try void while Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 10/50 Begriffe Begriffe in in der der Informatik Informatik - Bezeichner Bezeichner Als Bezeichner werden die Benennungen selbst angelegter Einheiten verstanden: ● Variablennamen ● Prozedurnamen ● ... Bezeichner müssen folgenden Regeln genügen (in Java): ● ● ● Beginnt mit Buchstabe, Unterstrich oder $-Zeichen Anschließend: Buchstaben, Ziffern, Unterstriche und $-Zeichen Keine Umlaute und kein ß! Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 11/50 Begriffe Begriffe in in der der Informatik Informatik - Anweisungen Anweisungen Syntax: Anweisung Grundbefehl Anweisungsequenz Anweisung Anweisungen müssen abgeschlossen (terminiert) werden, damit der Compiler sie als solche erkennt. In der Regel wird durch ein Semikolon (;) terminiert. Semantik: Anweisungen einer Anweisungssequenz werden in Reihenfolge nacheinander ausgeführt Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 12/50 Begriffe Begriffe in in der der Informatik Informatik – Code Code Block Block Syntax: CodeBlock { Anweisungsequenz } Ein Code-Block wird durch „{“ und „}“ umschlossen. Er fasst Anweisungssequenzen zusammen. Semantik: Ein Code-Block dient zur Strukturierung / Zusammenfassung einer oder mehrerer Anweisungen. Dies dient zur Übersichtlichkeit und bei if-Anweisungen / Schleifen um Anweisungssequenzen zusammenzufassen. Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 13/50 Begriffe Begriffe in in der der Informatik Informatik - Programm Ein Programm ist gekennzeichnet durch eine oder mehrere Anweisungssequenzen und einen Einsprungpunkt. Der Einsprungpunkt definiert an welcher Stelle das Programm begonnen werden soll, wenn es gestartet wird. In Java (bzw. dem Hamster-Simulator) ist dies eine Funktion mit dem Namen main. 1 void main() // Hamster-Simulator 2{ 3 … 4} 1 public static void main (String[] args) //Java 2{ 3… 4} Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 14/50 Begriffe Begriffe in in der der Informatik Informatik - Kommentar Kommentar Syntax: Kommentar Zeilenkommentar Bereichskommentar Zeilenkommentar // Zeichen /* Zeichen Zeilenendezeichen Bereichskommentar Alexander Syndikus (h_da) Informatik für CuB */ WS 2016/17 - 15/50 Begriffe Begriffe in in der der Informatik Informatik - Kommentar Kommentar Semantik: Kommentare sind ein elementarer Bestandteil der Dokumentation: ● ● Sie können in Kommentaren beschreiben, welches (Teil)problem ein Codeblock löst Der Programmcode kann in einzelne Aufgabenblöcke unterteilt werden ● Sie steigern die Lesbarkeit Ihrer Programme ● Ihr Code kann leichter wieder verwendet werden ● Probleme und/oder Fehler im Programm können festgehalten werden Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 16/50 Stellenwertsysteme Stellenwertsysteme Stellenwertsysteme Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 17/50 Stellenwertsysteme Stellenwertsysteme - Historie Historie 3100 BC Erstes Stellenwertsystem (Basis 60) in Mesopotamien 1800 BC “Plimpton 322“ Tafel (Babylon), Auflistung pythagoreischer Tripel (a2 + b2 = c2) 1650 BC Papyrus Rhind (Ägypten), umfangreiche Sammlung von Rechenaufgaben 300 BC Formulierung des euklidischen Algorithmus zur Berechnung des größten gemeinsamen Teilers zweier natürlichen Zahlen 300 BC Brahmi-Zahlschrift in Indien mit Symbolen für die Zahlen 1 bis 9 (Stellenwertsystem zur Basis 10) 630 AD Erste Verwendung der Ziffer 0 im heutigen Sinn 660 AD Arabische Mathematiker übernehmen das indische Zahlensystem (Hindu-arabisches Zahlensystem) Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 18/50 Stellenwertsysteme Stellenwertsysteme - Historie Historie 825 Abu Dscha’far Muhammad ibn Musa al-Chwarizmi أبو جعفر محمد بن موسى الخوارزمي veröffentlicht sein Buch Über das Rechnen mit indischen Ziffern in Persien. Das Buch gilt als Grundlage aller modernen Zahlensysteme. 1202 Leonardo von Pisa, genannt Fibonacci, italienischer Mathematiker, verfasst sein Buch Liber Abaci. Dies ist die erste systematische Einführung in das hindu-arabische Zahlensystem (Basis 10) in Europa. 1524 Adam Ries veröffentlicht sein Buch über die Rechengesetze des Dezimalsystems, welches sich in Europa durchsetzt. Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 19/50 Stellenwertsysteme Stellenwertsysteme Stellenwertsysteme oder polyadische Zahlensysteme bilden die Grundlage heutiger Zahlensysteme In einem polyadischen Zahlensystem mit der Basis B wird eine Zahl Z nachPotenzen von B zerlegt: mit: B = Basis des Zahlensystems a = Wert des Symbols an der Stelle i (einzelne Ziffer einer Zahl) n = Anzahl der ganzen Stellen m = Anzahl der Nachkommastellen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 20/50 Stellenwertsysteme Stellenwertsysteme : Zeichenvorrat Zeichenvorrat ● Für die Darstellung einer Zahl in einem Stellwertsystem werden einzelne Zeichen für die Stellen benötigt ● Für das dezimale System werden die normalen Ziffern verwendet ● Ist die Basis < 10 werden nur entsprechend viele Ziffern verwendet ● Ist die Basis > 10 so werden (meist) Buchstaben verwendet Dezimal (10) 0 1 Binär (2) 0 1 Oktal (8) 0 Duodezimal (12) Hexadezimal (16) Alexander Syndikus (h_da) 2 3 4 5 6 7 1 2 3 4 5 6 7 0 1 2 3 4 5 6 0 1 2 3 4 5 6 Informatik für CuB 8 9 7 8 9 X E 7 8 9 A B C D E F WS 2016/17 - 21/50 Stellenwertsysteme Stellenwertsysteme - Beispiele Beispiele Betrachten wir die „Umrechnung“ der Zahl 208410 in das 10er-System : 4 x 100 (1) = 4 8 x 101 (10) = 80 0 x 102 (100) = 0 2 x 103 (1000) = 2000 2084 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 22/50 Stellenwertsysteme Stellenwertsysteme - Beispiele Beispiele Betrachten wir die „Umrechnung“ der Zahl 10110112 in das 10er-System : 1 x 20 (1) = 1 1 x 21 (2) = 2 0 x 22 (4) = 0 1 x 23 (8) = 8 1 x 24 (16) = 16 0 x 25 (32) = 0 1 x 26 (64) = Alexander Syndikus (h_da) 64 _____ 91 Informatik für CuB WS 2016/17 - 23/50 Binärsystem Binärsystem ● Mit Zahlen im Binärsystem lassen sich arithmetische Operationen ausführen, genau wie mit Zahlen im Dezimalsystem auch – ● ● ● (Es sieht nur ungewohnt aus. . . ) Das bedeutet, dass binäre Zahlen gleichwertig zu Zahlen im Dezimalsystem sind Aufgrund des sehr begrenzten Zeichenvorrats lassen sich binäre Zahlen sehr einfach elektronisch darstellen – 0 entspricht beispielsweise ungeladen oder keine Spannung angelegt – 1 könnte durch geladen oder Spannung liegt an dargestellt werden Rechnen mit binären Zahlen lässt sich ebenfalls einfach in elektronischen Schaltungen realisieren Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 24/50 Binärsystem Binärsystem -- Arithmetik Arithmetik Addition: Subtraktion: Beispiel: Beispiel: 0 0 1 1 + + + + 0 1 0 1 = 0 = 1 = 1 = 10 10112 + 112 11102 Multiplikation: 0 0 1 1 x x x x 0 1 0 1 = = = = Beispiel: 0 0 0 1 10102 x 112 111102 Alexander Syndikus (h_da) 0 0 1 1 - 0 1 0 1 = 0 = -1 = 1 = 0 10112 - 1112 1002 Division: 0 0 1 1 / / / / 0 1 0 1 = = = = Beispiel: Informatik für CuB nicht def. 0 nicht def. 1 10102 / 102 1012 WS 2016/17 - 25/50 Datentypen Datentypen Datentypen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 26/50 Datentypen Datentypen Umgangssprache Häufig werden hier Information und Daten synonym verwand. In der Informatik bezeichnen beide allerdings unterschiedliche Sachlagen. Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 27/50 Datentypen Datentypen Umgangssprache Häufig werden hier Information und Daten synonym verwand. In der Informatik bezeichnen beide allerdings unterschiedliche Sachlagen. Information ...bezeichnet Wissen und Erkenntnisse auf Seite des Menschen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 28/50 Datentypen Datentypen Umgangssprache Häufig werden hier Information und Daten synonym verwand. In der Informatik bezeichnen beide allerdings unterschiedliche Sachlagen. Information ...bezeichnet Wissen und Erkenntnisse auf Seite des Menschen Daten ...bezeichnet die Repräsentation dieser Informationen in einem datenverarbeitendem System. Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 29/50 Datentypen Datentypen :: Bits Bits & & Bytes Bytes Rückblick: Speichermedien und Binärzahlen Eine Stelle einer binären Zahl kann die Zustände 1 oder 0 annehmen. Ebenfalls speichern digitale Medien (in der Regel) diese Zustände entsprechend als geladen oder nicht geladen bzw. magnetisiert oder nicht magnetisiert, etc. Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 30/50 Datentypen Datentypen :: Bits Bits & & Bytes Bytes Rückblick: Speichermedien und Binärzahlen Eine Stelle einer binären Zahl kann die Zustände 1 oder 0 annehmen. Ebenfalls speichern digitale Medien (in der Regel) diese Zustände entsprechend als geladen oder nicht geladen bzw. magnetisiert oder nicht magnetisiert, etc. Ein Bit Üblicherweise verwendet man „eine binäre Stelle“ als Einheit, wenn es um Größen von digitalen Speichern geht. Das Wort „Bit“ ist hierbei die Abkürzung von „binary digit“ Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 31/50 Datentypen Datentypen :: Bits Bits & & Bytes Bytes Rückblick: Speichermedien und Binärzahlen Eine Stelle einer binären Zahl kann die Zustände 1 oder 0 annehmen. Ebenfalls speichern digitale Medien (in der Regel) diese Zustände entsprechend als geladen oder nicht geladen bzw. magnetisiert oder nicht magnetisiert, etc. Ein Bit Üblicherweise verwendet man „eine binäre Stelle“ als Einheit, wenn es um Größen von digitalen Speichern geht. Das Wort „Bit“ ist hierbei die Abkürzung von „binary digit“ Ein Byte Weiterhin ist es üblich, 8 bit zu einem „Byte“ zusammenzufassen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 32/50 Datentypen Datentypen :: Übersicht Übersicht Grundsätzlich lassen primitive Datentypen grob einteilen in: ● Logische Datentypen (boolean) – Können nur den Zustand wahr/falsch (true/false) speichern Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 33/50 Datentypen Datentypen :: Übersicht Übersicht Grundsätzlich lassen primitive Datentypen grob einteilen in: ● Logische Datentypen (boolean) – ● Können nur den Zustand wahr/falsch (true/false) speichern Ganzzahlige Datentypen (byte, short, integer, long integer) – Perfekte Genauigkeit – Eingeschränkter Wertebereich Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 34/50 Datentypen Datentypen :: Übersicht Übersicht Grundsätzlich lassen primitive Datentypen grob einteilen in: ● Logische Datentypen (boolean) – ● ● Können nur den Zustand wahr/falsch (true/false) speichern Ganzzahlige Datentypen (byte, short, integer, long integer) – Perfekte Genauigkeit – Eingeschränkter Wertebereich Reelle Zahlen (real/float, double) – Wesentlich größerer Wertebereich – Teilweise sehr eingeschränkte Genauigkeit Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 35/50 Datentypen Datentypen :: Übersicht Übersicht Grundsätzlich lassen primitive Datentypen grob einteilen in: ● Logische Datentypen (boolean) – ● ● ● Können nur den Zustand wahr/falsch (true/false) speichern Ganzzahlige Datentypen (byte, short, integer, long integer) – Perfekte Genauigkeit – Eingeschränkter Wertebereich Reelle Zahlen (real/float, double) – Wesentlich größerer Wertebereich – Teilweise sehr eingeschränkte Genauigkeit Zeichen (character) – 1 Zeichen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 36/50 Datentypen Datentypen :: Übersicht Übersicht Viele Sprachen bieten jedoch weitere Datentypen: ● Zeichenketten (string) – Beliebige Länge – Auch wenn eine Zeichenkette nur Zahlen enthält, sind arithmetisch Operationen (meist) nicht möglich Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 37/50 Datentypen Datentypen :: Übersicht Übersicht Viele Sprachen bieten jedoch weitere Datentypen: ● ● Zeichenketten (string) – Beliebige Länge – Auch wenn eine Zeichenkette nur Zahlen enthält, sind arithmetisch Operationen (meist) nicht möglich Komplexe Zahlen (complex) – z.B. Fortran Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 38/50 Datentypen Datentypen :: Übersicht Übersicht Viele Sprachen bieten jedoch weitere Datentypen: ● ● Zeichenketten (string) – Beliebige Länge – Auch wenn eine Zeichenkette nur Zahlen enthält, sind arithmetisch Operationen (meist) nicht möglich Komplexe Zahlen (complex) – ● z.B. Fortran Klassenobjekte – Eigenschaften hängen von der jeweiligen Klasse ab Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 39/50 Datentypen Datentypen :: Wertebereiche Wertebereiche Typ short int long float1 Größe 16 bit 32 bit 64 bit 32 bit float2 Von Bis -32.768 32.767 -2.147.483.648 2.147.483.647 -9.223.372.036.854.775.808 9.223.372.036.854.775.807 2−126 ≈ ± 1,175·10−38 (1−2−24) × 2128 ≈ 3,403·1038 32 bit 2−149 ≈ ± 1,4·10−45 ≈ 3,403·1038 double1 64 bit 2−1022 ≈ ± 2,2251·10−308 (1−2−53) × 21024 ≈ 1,798·10308 double2 64 bit 2−52×2−1022=2−1074≈ ±4,94·10−324 ≈ 1,798·10308 1 normalisiert 2 denormalisiert Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 40/50 Datentypen Datentypen :: integer integer Integertypen (short, int, long) speichern Zahlenwerte direkt als ihre binäre Entsprechung. Dadurch: ● Die Werte werden 100% genau gespeichert ● Der Wertebereich ist linear aufgeteilt und sehr begrenzt ● Integer eignen sich vor allem zum Zählen ● Nachkommastellen sind nicht darstellbar Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 41/50 Datentypen Datentypen :: float float Die Floattypen (float und double) speichern eine Basis und einen Exponenten ● Wert = x * 10y ● Die Werte x und y sind normale Integer ohne Nachkommastellen ● Durch Kommaverschiebung werden Nachkommastellen im Wert erreicht Beispiele: 47,11 = 4711 * 10-2 583.025 = 583.025 * 100 23.567.345.567.842.698.427 ≈ 23.567.345.567.842 * 106 23.567.345.567.842.698.443 ≈ 23.567.345.567.842 * 106 Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 42/50 Datentypen Datentypen :: float float Die Floattypen (float und double) speichern eine Basis und einen Exponenten ● Wert = x * 10y ● Die Werte x und y sind normale Integer ohne Nachkommastellen ● Durch Kommaverschiebung werden Nachkommastellen im Wert erreicht Beispiele: ● 47,11 = 4711 * 10-2 583.025 = 583.025 * 100 23.567.345.567.842.698.427 ≈ 23.567.345.567.842 * 106 23.567.345.567.842.698.443 ≈ 23.567.345.567.842 * 106 Ein Computer kann keine reelle Zahl mit unendlicher Genauigkeit speichern! + Beispiel aus Tabellenkalkulation zeigen Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 43/50 Datentypen Datentypen :: Char Char Ein Char(acter) speichert ein einzelnes Zeichen der ASCII Tabelle ● Dort ist jedem Zeichen (druckbar wie nicht druckbar) eine bestimmte Zahl zugeordnet ● Technisch gehört Char zu den Integerdatentypen ● Beispiele: 65 A 48 0 107 k 38 & Komplette Tabelle: https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange# ASCII-Tabelle Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 44/50 Datentypen Datentypen :: String String Ein String ist eine Zeichenkette, also eine Aneinanderreihung beliebig vieler „char“s. ● ● Der String ist kein primitiver Datentyp Er hat (teilweise historisch bedingt) Ähnlichkeiten mit Arrays ● Ein String kann theoretisch unendlich lang sein ● ...oder auch leer Beispiele: ● "Hallo, Welt 1" ● "Ein ziemlich langer Text..." ● "" Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 45/50 Hamster-Simulator Hamster-Simulator Hamster-Simulator Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 46/50 Grundlagen Grundlagen der Programmierung Programmierung :: Funktionen Funktionen Bei komplexeren Aufgaben entsteht die Notwendigkeit diese in einzelne Unteraufgaben zu zerlegen Bsp.: ● ● Briefe versenden: – Brief drucken – Brief senden „Brief senden“ : – Brief in den Umschlag stecken; melde, wenn keine Umschläge mehr vorhanden sind – Wenn Brief in Umschlag steckt dann: Ausreichend frankieren; melde, wenn dies nicht möglich war – Wenn Brief frankiert werden konnte: senden Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 47/50 Hamster-Simulator Hamster-Simulator : (eigene) Funktionen Bei komplexeren Programmen entsteht die Notwendigkeit diese in einzelne – wiederverwendbare – Teile zu zerlegen ● ● Bsp.: „drehe 1 mal nach rechts entspricht 3 mal 'linksUm()'“ Anstelle jedes mal zu schreiben: linksUm(); linksUm(); linksUm(); ● kann man eine Funktion schreiben: void rechtsUm() { linksUm(); linksUm(); linksUm(); } Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 48/50 Hamster-Simulator Hamster-Simulator : (eigene) Funktionen Bei komplexeren Programmen entsteht die Notwendigkeit diese in einzelne – wiederverwendbare – Teile zu zerlegen ● Bsp.: „gehe nur 1 Schritt nach vorne, wenn es möglich ist“ ● Anstelle jedes mal zu schreiben: if (vornFrei()) { vor(); } ● kann man eine Funktion schreiben: boolean vorWennFrei(){ boolean vorne_pruefung = vornFrei(); if (vorne_pruefung) { vor(); } return vorne_pruefung; } Alexander Syndikus (h_da) Informatik für CuB WS 2016/17 - 49/50 Fragen ?