Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
|
|
- Jan Pfeiffer
- vor 5 Jahren
- Abrufe
Transkript
1 4. Algorithmen
2 Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um das Jahr 800 wirkte Wir haben bereits einige Algorithmen kennengelernt z.b.: Umwandlung in b-adische Darstellung Berechnen von Zweierpotenzen Quelle: en.wikipedia.org 2
3 Motivation Zwar könnten wir alle Algorithmen als RAM-Programme beschreiben, diese würde jedoch sehr umfangreich wie das folgende Beispiel illustriert Beispiel: Bestimmen des Maximums von drei Zahlen x, y und z in s[0], s[1] und s[2]. Das Ergebnis soll in der Speicherstelle s[3] abgelegt werden. 3
4 Motivation INPUT 0..2 OUTPUT 3 0: a <- s[0] 1: a <- a - s[1] 2: if a > 0 then jump 10 // s[0] > s[1]? 3: a <- s[1] 4: a <- a - s[2] 5: if a > 0 then jump 8 // s[1] > s[2]? 6: a <- s[2] 7: jump 15 8: a <- s[1] 9: jump 15 10: a <- s[0] 4
5 Motivation 11: a <- a - s[2] 12: if a > 0 then jump 14 // s[0] > s[2]? 13: jump 6 14: a <- s[0] 15: s[3] <- a 16: HALT Selbst einfache Probleme können zu langen und schwer verständlichen RAM-Programmen führen Wir beschreiben Algorithmen daher im Folgenden mittels einer höheren Programmiersprache 5
6 Inhalt 4.1 Code 4.2 Suchen 4.3 Sortieren 6
7 4.1 Code Algorithmen lassen sich mittels sogenannten Pseudocode beschreiben, der an höhere Programmiersprachen (z.b. C/C++, Java) angelehnt ist Es gibt verschiedene Varianten von Pseudocode, die jedoch in den verwendeten Konzepten übereinstimmen Wir verwenden einen Pseudocode, der an Java angelehnt ist, aber nur eine Teilmenge der Sprachbestandteile verwendet und z.b. auf Objektorientierung verzichtet 7
8 4.1.1 Elementare Datentypen RAM-Programme waren auf ganze Zahlen beschränkt Unser Pseudocode kennt die elementaren Datentypen boolean für Boolesche Werte (d.h. true und false) int für ganze Zahlen (z.b. 41) float für Kommazahlen (z.b. 3.14) char für Zeichen (z.b. a und z ) Diese vier elementaren Datentypen genügen uns, da wir bei der Beschreibung von Algorithmen auf Details (z.b. 32 Bit oder 64 Bit) verzichten 8
9 4.1.2 Variablen Bei RAM-Programmen mussten wir uns merken, wo welche Information im Speicher abgelegt ist Unser Pseudocode kennt benannte typisierte Variablen, deren Namen sich aus Klein- und Großbuchstaben sowie dem Unterstrich (_) zusammensetzen Variablen werden durch Angabe ihres Datentyps und ihres Namens im Code deklariert z.b. 1 int n; 9
10 <latexit sha1_base64="8oej4gwvxe055swackhvuxkiup8=">aaacv3icdzbla1nbfmdprlrj9zwqozcxs6ir+0glporcwi0boultfpplodm9scfmi5ljabjki/lnunor+b10thqri4dz/b8zb+bhrbq+lovtk7l3/8how/aj9pgtp8+ed3zfnhqzcjxg3ejjzhl6kkltkigg6dw6qsuknbh5+9/92tu5l4w+cutltckzflpbmcro0jkzm5oj3xzga1ylzbhjqdowhwvtlj4gqdah09ee9abpvbommytup68obim/qpfxapdwb5cosv9u9kw63tlvhfbl/cpsrqjycj3d4styz/gk82n8afhckq5covcxvwld3aalgktapeofj4t8jjo6wnkijvc3mzkkgltu11fqvotrzg1nq2xqeb9u7e6omfxth5hepcdz/ywp037dcg0xgtsp3vo2xchhxmwckythfb+xxctgip7jfxid3rqkutm+j3kvrjx/gwt/f6e9vir6u6877g84qrtewxt4cxw8gyf8ggmyaycv8bw+wffwbetnspo0n1et1p83l2frkt1fgag0xg==</latexit> <latexit sha1_base64="8oej4gwvxe055swackhvuxkiup8=">aaacv3icdzbla1nbfmdprlrj9zwqozcxs6ir+0glporcwi0boultfpplodm9scfmi5ljabjki/lnunor+b10thqri4dz/b8zb+bhrbq+lovtk7l3/8how/aj9pgtp8+ed3zfnhqzcjxg3ejjzhl6kkltkigg6dw6qsuknbh5+9/92tu5l4w+cutltckzflpbmcro0jkzm5oj3xzga1ylzbhjqdowhwvtlj4gqdah09ee9abpvbommytup68obim/qpfxapdwb5cosv9u9kw63tlvhfbl/cpsrqjycj3d4styz/gk82n8afhckq5covcxvwld3aalgktapeofj4t8jjo6wnkijvc3mzkkgltu11fqvotrzg1nq2xqeb9u7e6omfxth5hepcdz/ywp037dcg0xgtsp3vo2xchhxmwckythfb+xxctgip7jfxid3rqkutm+j3kvrjx/gwt/f6e9vir6u6877g84qrtewxt4cxw8gyf8ggmyaycv8bw+wffwbetnspo0n1et1p83l2frkt1fgag0xg==</latexit> <latexit sha1_base64="8oej4gwvxe055swackhvuxkiup8=">aaacv3icdzbla1nbfmdprlrj9zwqozcxs6ir+0glporcwi0boultfpplodm9scfmi5ljabjki/lnunor+b10thqri4dz/b8zb+bhrbq+lovtk7l3/8how/aj9pgtp8+ed3zfnhqzcjxg3ejjzhl6kkltkigg6dw6qsuknbh5+9/92tu5l4w+cutltckzflpbmcro0jkzm5oj3xzga1ylzbhjqdowhwvtlj4gqdah09ee9abpvbommytup68obim/qpfxapdwb5cosv9u9kw63tlvhfbl/cpsrqjycj3d4styz/gk82n8afhckq5covcxvwld3aalgktapeofj4t8jjo6wnkijvc3mzkkgltu11fqvotrzg1nq2xqeb9u7e6omfxth5hepcdz/ywp037dcg0xgtsp3vo2xchhxmwckythfb+xxctgip7jfxid3rqkutm+j3kvrjx/gwt/f6e9vir6u6877g84qrtewxt4cxw8gyf8ggmyaycv8bw+wffwbetnspo0n1et1p83l2frkt1fgag0xg==</latexit> <latexit sha1_base64="zbxrdjqgoih4fdwwev2umk60kv8=">aaacv3icdzbls1tbfmcn10fjtdzol24uzmfx95eirkjbcnnnwyjrwvzcmfektjmvzibscmkx6zdx51bpd2inms6iejjf/zfzyh7uco58nt/xopxvtfup9y148+pwp+3gzu6f0xplsme00pakgkpbffy89wkvjewqvoalhz/+7y/v0dqu1bmfgiwljbqfcgy+ripgez/iikvqj9zblkzacwsv0orrmgthsbtz5rmv7ggrgw+fbp/y4nppcdin2s3yhav7aafdui/q5nnponhm09zxj28fj29fkebzazlfna0af/o3mk0kks8eohdd5maxfvjpmcbz3j84nmdgmmjrya0ytgu1qi3r2+lyhaqcia6s5ncwygqkc1nj34qs/o1ygeimpvd3arkfdsqkkzpxqfjo5rlkei4gzsyubtg8+z7nbiye4u8ue+dxvyabwe3sigdxwppcihlfxltsiugfrezjzwgqtvbipvlccnjetsg3ckz6hjhf5ie8kqfafe1vtb7vn69gtcwbz2rpop1/bv20cg==</latexit> Wertzuweisung Bei der Deklaration kann einer Variable ein Wert mittels = zugewiesen werden Ebenso kann der Wert einer bereits deklarierten Variablen mittels = geändert werden 1 b = true; 2 n = 21; 3 r = 2.78; 4 c = z ; 10
11 4.1.3 Arrays Arrays (Felder) speichern mehrere Werte des gleichen elementaren Datentyps (in einem zusammenhängenden Bereich des Speichers) Bei der Deklaration wird die Länge des Arrays angegeben 1 int[] a = new int[10]; Die Länge eines Arrays können wir wie folgt ermitteln 1 int n = a.length; und z.b. in einer anderen Variable n ablegen 11
12 Arrays Den Werten eines Arrays der Länge n sind die Indizes 0 bis (n-1) zugewiesen und wir können auf einen einzelnen Wert wie folgt zugreifen 1 int first = a[0]; 2 int second = a[1]; 3 int last = a[a.length - 1]; 12
13 4.1.4 Operationen Auf Variablen unserer elementaren Datentypen stehen uns die folgenden Operationen zur Verfügung Addition (+), Subtraktion (-), Multiplikation (*) und Division (/) auf int und real Ganzzahliger Rest (%), Inkrement (++) und Dekrement (--) auf int Logisches Und (&&), Oder ( ) und Nicht (!) auf boolean Es gelten die bekannten Vorrangregeln und es dürfen Klammern gesetzt werden 13
14 4.1.5 Verzweigungen RAM-Programme kannten (bedingte) Sprungbefehle, wir mussten das Ziel des Sprungs genau festlegen und es waren nur Vergleiche gegen Null möglich Unser Pseudocode kennt eine komfortablere Verzweigung 1 if (Bedingung) { 2 A 3 } else { 4 B 5 } Gilt die Bedingung werden die Befehle in A ausgeführt, andernfalls die Befehle in B 14
15 Verzweigungen Die Bedingung wird als logischer Ausdruck angegeben und darf die folgenden Operatoren enthalten Vergleiche (==,!=, >=, <=, < und >) Boolesche Operatoren (&&, und!) Klammern Die geschweiften Klammern ({}) markieren einen Gültigkeitsbereich (scope) und enthalten eine Folge von Befehlen Variablen, die innerhalb eines Gültigkeitsbereichs deklariert werden, sind nur darin sichtbar 15
16 Verzweigungen Verzweigungen können geschachtelt werden, zudem kann der else-teil einer Verzweigung entfallen Den Rückgabewert eines Programms legen wir in unserem Pseudocode mittels return fest 16
17 Verzweigungen Beispiel: Nehmen wir an, dass bereits drei ganzzahlige Variablen x, y und z deklariert sind, so können wir deren Maximum (vgl. letztes RAM-Programm) bestimmen als 17
18 Verzweigungen 18
19 4.1.6 Schleifen RAM-Programme mussten Schleifen mit Hilfe von Sprungbefehlen realisieren Unser Pseudocode kennt zwei Arten von Schleifen while-schleife 1 while (Bedingung) { 2 A 3 } führt die Befehle in A aus, solange die Bedingung gilt 19
20 Schleifen Beispiel: Summieren der Zahlen von 1 bis int n = 100; 2 int sum = 0; 3 while (n > 0) { 4 sum = sum + n; 5 n--; 6 } 7 return sum; 20
21 Schleifen for-schleife 1 for(initialisierung; Bedingung; Änderung) { 2 A 3 } führt die Befehle in A aus, solange die Bedingung gilt. Die Initialisierung wird vor dem ersten Schleifendurchlauf und die Änderung nach jedem Durchlauf ausgeführt 21
22 Schleifen Beispiel: Summieren der Zahlen von 1 bis int n = 100; 2 int sum = 0; 3 for( int i=1; i <= n; i++) { 4 sum = sum + i; 5 } 22
23 4.1.7 Funktionen Funktionen (Methoden in Java) erlauben uns, häufig verwendete Folgen von Befehlen zu kapseln und werden durch Angabe einer Signatur wie folgt deklariert Datentyp des Rückgabewerts (void, falls es keinen solchen gibt) Name der Funktion (Buchstaben und Unterstrich) Argumente mit Namen und Datentyp Den Rückgabewert einer Funktion legen wir in unserem Pseudocode mittels return fest 23
24 Funktionen Beispiel: Summieren der Zahlen von 1 bis n als Funktion 1 int sum_one_to_n(int n) { 2 int sum = 0; 3 for( int i=1; i <= n; i++) { 4 sum = sum + i; 5 } 6 return sum; 7 } 24
25 4.1.9 Kommentare Zur Erklärung von Programmen kennt unser Pseudocode zwei Arten von Kommentaren Einzeilige Kommentare werden durch // angezeigt 1 // Einzeiliger Kommentar zur Erklä rung Mehrzeilige Kommentare beginnen mit /* und enden mit */ 1 /* 2 * Mehrzeiliger Kommentar zur Erklärung 3 */ 25
26 Berechnung von Zweierpotenzen Beispiel: Wir implementieren nun die einfache Berechnung von Zweierpotenzen in Pseudocode; als Argument soll eine Variable int n zur Verfügung stehen 26
27 Berechnung von Zweierpotenzen 27
28 4.1.8 Mächtigkeit von RAM und Pseudocode Wir hatten gesagt, dass man mit der RAM alles, was berechenbar ist, auch berechnen kann Pseudocode und RAM sind gleich mächtig, d.h. man kann mit beiden die gleichen Probleme lösen Um diese Aussage zu beweisen, müssten wir zeigen, dass wir (i) die RAM in Pseudocode und (ii) unseren Pseudocode auf der RAM simulieren können 28
29 4.2 Suche Häufig muss man feststellen, ob ein bestimmter Wert k in einer gegebenen Menge von Werten enthalten ist (z.b. Nachschlagen einer Telefonnummer) Dieses Problem nennt man Suche und wir lernen nun zwei Algorithmen zu dessen Lösung kennen Wir nehmen an, dass die gegebene Menge von Werten aus ganzen Zahlen besteht; die Algorithmen sind jedoch auch für andere Datentypen anwendbar, sofern eine Ordnungsrelation definiert ist 29
30 Ordnungsrelation Definition: Eine Ordnungsrelation auf einer Menge X muss folgende Eigenschaften haben reflexiv, d.h. x œ X : x x transitiv, d.h. x, y, z œ X :(x y) (y z) (x z) antisymmetrisch, d.h. x, y œ X :(x y) (y x) x = y 30
31 Ordnungsrelation Für ganzen Zahlen und Kommazahlen dient uns als Ordnungsrelation Für Zeichen betrachten wir den zugehörigen Code (z.b. ASCII) und verwenden wiederum als Ordnungsrelation 31
32 4.2.1 Lineare Suche Die gegebene Menge von Werten soll uns als Array ganzer Zahlen a bereit stehen und wir möchten einen Index bestimmen, an dem der gesuchte Wert k steht Ist der gesuchte Wert k nicht im Array enthalten, soll -1 zurückgegeben werden Wir schreiben eine Funktion mit folgender Signatur 1 int linearsearch(int[] a, int k) { } 32
33 Lineare Suche Idee: Durchlaufe das Array vom Anfang zum Ende und gib den ersten Index zurück, an dem k vorkommt; wird das Ende erreicht, gib -1 zurück 1 int linearsearch(int[] a, int k) { 2 for( int i = 0; i < a.length; i++) { 3 if (a[i] == k) { // k gefunden 4 return i; 5 } 6 } 7 return -1; // Ende erreicht 8 } 33
34 Lineare Suche Beispiel: Betrachte folgendes Array ganzer Zahlen a Suche nach k = a 2 Suche nach k = a -1 34
35 Laufzeit der lineare Suche Wir messen die Laufzeit eines Programms in Pseudocode als die Anzahl der abgearbeiteten einfachen Befehle (Wertzuweisungen, Operationen, Vergleiche, Rückgabe) Die Laufzeit der linearen Suche hängt offensichtlich von der Anzahl n der Werte im Array a sowie dem konkreten Wert von k ab Im schlechtesten Fall (worst case) wird das Array vollständig durchlaufen und jeder Wert darin mit dem gesuchten Wert verglichen 35
36 Laufzeit der lineare Suche Zur Initialisierung der Schleife wird ein Befehl ausgeführt Für jeden im Array betrachten Wert werden ausgeführt die Überprüfung der Schleifenbedingung (Zeile 2) der Vergleich des Werts mit dem gesuchten Wert (Zeile 3) das Inkrement der Schleifenvariable (Zeile 2) Zudem wird genau ein Wert zurückgegeben Bei Abbruch der Schleife die Überprüfung (Zeile 2) Im schlechtesten Fall werden 3n + 3 Befehle abgearbeitet Die Zeitkomplexität der linearen Suche liegt damit in O(n) 36
37 Zusammenfassung Algorithmen als systematische Vorgehensweise zur Lösung eines formal definierten Problems Pseudocode gibt uns eine Möglichkeit, Algorithmen kompakter und verständlicher zu beschreiben, als dies mit RAM-Programmen möglich ist Lineare Suche findet einen bestimmten Wert in einer gegebenen Menge von Werten und hat lineare Laufzeit 37
38 Literatur [1] H.-P. Gumm und M. Sommer: Einführung in die Informatik, Oldenbourg Verlag, 2012 (Kapitel 4.1) [2] T. H. Cormen, C. E. Leiserson, R. Rivest und C. Stein: Algorithmen Eine Einführung, Oldenbourg Verlag, 2009 (Kapitel 2) 38
3.3 Laufzeit von Programmen
3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,
Mehr3. RAM als Rechnermodell
3. RAM als Rechnermodell Motivation Wir möchten Berechnungsvorschriften (Algorithmen) formal beschreiben und deren Eigenschaften wie Korrektheit und Laufzeit analysieren Rechnermodell abstrahiert vom verwendeten
MehrQuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert
4.3.6 QuickSort QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert QuickSort teilt das gegebene Array anhand
MehrDatenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
MehrPROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrEinführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann
Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 64 1 Einführung Java Geschichte 2 Programmieren in Java Einführung
Mehr1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.
Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten
MehrVorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
MehrProgrammiervorkurs Einführung in Java Tag 1
Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,
MehrInhalt. 2.1 Darstellung von Zahlen. 2.2 Darstellung von Zeichen. 2.3 Boolesche Algebra. 2.4 Aussagenlogik. 2.5 Logische Funktionen
2. Grundlagen Inhalt 2.1 Darstellung von Zahlen 2.2 Darstellung von Zeichen 2.3 Boolesche Algebra 2.4 Aussagenlogik 2.5 Logische Funktionen 2 2.1 Darstellung von Zahlen Im Alltag rechnen wir gewöhnlich
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
Mehrfloat: Fließkommazahl nach IEEE 754 Standard mit 32 bit
Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen
MehrKapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
MehrJava - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue
Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem
MehrJava Anweisungen und Ablaufsteuerung
Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht
MehrHello World! Eine Einführung in das Programmieren Variablen
Hello World! Eine Einführung in das Programmieren Variablen Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Wie werden Daten in Programmen gespeichert und manipuliert?
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrOperatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen
MehrBrückenkurs Programmieren
Brückenkurs Programmieren Verzweigungen, Operatoren, Schleifen, Arrays Christopher Schölzel Technische Hochschule Mittelhessen 01.10.2013 Christopher Schölzel (THM) Brückenkurs Programmieren 01.10.2013
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrSprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen
MehrEinfache Rechenstrukturen und Kontrollfluss
Einfache Rechenstrukturen und Kontrollfluss Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw 2 Ziele Verstehen der Grunddatentypen von
MehrJava Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.
Java Übung Übung 2 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 19. April 2006 (UniDUE) 19. April 2006 1 / 13 Java Programme Java Programme bestehen aus (meist mehreren) Klassen. In den Klassen
MehrC-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi
1. Datentypen C-Grundlagen zur Programmierung des MicroControllersystems MiCoWi Die Grafiken und Beispiele wurden dem Buch C von A bis z von Jürgen Wolf entnommen. Es werden hier die ANSI-Festlegungen
MehrAnweisungen zur Ablaufsteuerung
Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden
MehrInhalt. 2.1 Darstellung von Zahlen. 2.2 Darstellung von Zeichen. 2.3 Boolesche Algebra. 2.4 Aussagenlogik. Informatik 1 / Kapitel 2: Grundlagen
2. Grundlagen Inhalt 2.1 Darstellung von Zahlen 2.2 Darstellung von Zeichen 2.3 Boolesche Algebra 2.4 Aussagenlogik 2 2.1 Darstellung von Zahlen Im Alltag rechnen wir gewöhnlich im Dezimalsystem, d.h.
MehrInformatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5
Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
Mehr5.5 Prioritätswarteschlangen
5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte
Mehr4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrEinfache Rechenstrukturen und Kontrollfluß
2 Ziele Einfache Rechenstrukturen und Kontrollfluß Verstehen der Grunddatentypen von Java Verstehen von Typkonversion in Java Lernen lokale Variablen und Konstanten zu initialisieren Verstehen der Speicherorganisation
MehrArrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3
Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 3 Algorithmen mit Gedächtnis Besonderheit Beispiele Typische Algorithmen Realisierungsvarianten Institut für Pervasive Computing Johannes
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrModul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016
MehrRückblick: Längste gemeinsame Zeichenkette
aaadg3icdvjdb9mwfhuwbin8bcablxytanngm5rjbjogkvhcc9kq6dapjirhvu3donfmoxvbyn/gff4z/wyngrib48pjjs/98m25tgrbtqndx96kf2f17r21+8gdh48ep1nfehqizakyjjguup0lvipgoywmnwlocgu0swscjsspjf/0aptmmv9iqglijky5n3fgjammg55pforwywsw0xxqcvwkvtoomgxe20edkiyaucqsygsiy1m9pcehpn4148nfvi2pmbewm8qgjigu57bnry0bwnje0ulh+65zhyt4neyupstkagavokg6fneb3zfbs5imgpwyv4lithi4x2a8adg5vrhna1tx3228g6p/fju6qhqqcl/zdrkqxdo56u3wn8pe4ga/fhua/wvrl2xtc/gctxbszevjvliyg9wwqbuer2fhylfwccbafs41fjqtaqpjgha0abxbfgqgrlxx3q7mnamd23aanx7lmcmesewe3ocw/tvd0kzrkktczkoivulryft9izrlqxn97xxr+pjbxzri8errvtucyut9o1mz248tz4vsqm66rmelwebi5mrhkvfajkgcoexxjwvmc6oom+4cbqrntp2rdrv+mghlfu9/qvqtwhfott0x1mdxfuaype45wadunh/0x/8hj4nefpaiz3ubw/1urmgnvuav0rak0ds0rb/rmroh5i28794p76e/6u/4a3+vc13xrnkeowvmh/0gfb8bjw==
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
MehrJava: Eine kurze Einführung an Beispielen
Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse
MehrTag 3 Repetitorium Informatik (Java)
Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrIntensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
MehrInformatikgrundlagen (WS 2016/2017)
Informatikgrundlagen (WS 2016/2017) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile
MehrOperatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Operatoren für elementare Datentypen 2 Bedingte Anweisungen 3 Schleifen Zuweisungsoperator Die Zuweisung von Werten an
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrPrimitive Datentypen und Felder (Arrays)
Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 20 (9.7.2018) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 20 (13.7.2016) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
MehrInformatik Vorkurs - Vorlesung 2
Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrPraktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Was bisher geschah... Konzepte: Klassen und ihre...... Instanzen, die
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
Mehrif ( Logischer Operator ) { } else { Anweisungen false
if ( Logischer Operator ) { Anweisungen true else { Anweisungen false Bedingte Anweisungen Operatoren verknüpfen Variable zu neuen Ausdrücken, wir unterscheiden Arithmetische Operatoren Berechnung von
Mehr3.2 Datentypen und Methoden
Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte
MehrKontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht
Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrDie for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben
18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrJavaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
MehrTag 3 Repetitorium Informatik (Java)
Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!
MehrWenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement
Wenn... dann... if (condition) statement condition false true statement if (kontostand < 0) System.out.println("Oops..."); 31 ... sonst... if (condition) statement1 else statement2 condition false true
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrEinführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
MehrÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
MehrGrundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de
MehrPIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
MehrC++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
MehrInstitut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke
Java 3 Markus Reschke 08.10.2014 Kommentare Kommentare nützlich zum späteren Verständnis Zwei Arten Einzeiliger Kommentar bis zum Zeilenende mit // Mehrzeiliger Kommentar mit /*Text*/ 1 double x = 5; //
Mehr9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion
Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen
Mehr5.3 Doppelt verkettete Listen
5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt
MehrEffiziente Algorithmen 2
Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrWie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrKleines Java-Glossar zum Praktikum Einführung in das Programmieren
Kleines Java-Glossar zum Praktikum Einführung in das Programmieren Elmar Zander, Philipp Kuhn 15. Mai 2017 Die Erläuterungen in diesem Glossar sind extra einfach gehalten und sollen nur einen schnellen
MehrJava Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */)
Good code is its own best documentation. (Steve McConnell) Java Cheatsheet Java Grundlagen Aufbau einer Klasse Name der Klasse public class MeineKlasse { Textdatei MeineKlasse.java (muss dem Namen der
Mehr