Softwareentwicklung 1

Größe: px
Ab Seite anzeigen:

Download "Softwareentwicklung 1"

Transkript

1 Softwareentwicklung 1 Dr. Herbert Prähofer Institut für Systemwissenschaften Johannes Kepler Universität Linz Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 1 Vortragender Dr. Herbert Praehofer Systems Science Institute Johannes Kepler University Altenbergerstrasse 69 A-4040 Linz / Austria Tel.: ++43 (732) Fax.: ++43 (732) hp@cast.uni-linz.ac.at http: Raum: T0758 (TNF Turm 7. Stock) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 2

2 Ziel und Inhalt Ziel Einführung des Programmieren in Java Inhalte Grundlagen der Programmierung Programmieren in Java Einfache Algorithmen Grundlagen der Objektorientierung Programmentwurf Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 3 Motivation programmieren zu lernen Software erstellen können Grundlagen der Programmierung verstehen Java kennen komplexe Software entwerfen sich neue Gebiete der Softwaretechnik erarbeiten können Software verstehen wie arbeitet Software was kann Software leisten wie sind Programme aufgebaut wie wird Software erstellt Kreativität erleben Programmieren kann viel Spaß machen Programmieren ist eine Herausforderung Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 4

3 Organisation der LVA Softwareentwicklung 1 Vorlesung Stoff wird theoretisch vorgetragen Mit eingebauten Programmierbeispielen ca mal im Semester jeweils ca. 3 4 LVA-Stunden Übung Stoff wird geübt Programmieraufgaben sind wöchentlich zu programmieren 2 Unterrichtsstunden für Wiederholung Praktische Beispiele Besprechung der Programmieraufgaben Übungsleiter: Hr. DI Peter Hamader Programmieren ist eine Fähigkeit, die nur mit viel Übung erlernt werden kann!! Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 5 Webpage der LVA Alle wichtigen Infos wie Termine Unterlagen Studienmaterial findet man auf dieser Seite Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 6

4 Literatur P. Mössenböck, Sprechen Sie Java?, 2. Auflage, dpunkt.verlag, 2005 (Lehrbuch zur VL!) G. Krüger, GoTo Java 2, Addison-Wesley, 2000 On-Line Buch für Java Online Version hier Download ( M. Campione, K.Walrath: The Java Tutorial Online Edition ( Java-Einführungskurs ( Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 7 Einheit 1: Grundlagen der Programmierung Programmierung und Ausführung von Programmen Algorithmen und Algorithmendarstellung Programmiersprachen und Java Das Java-Entwicklungssystem Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 8

5 Worum geht es? Programmieren Problem so exakt beschreiben, dass es ein Computer lösen kann kreative Tätigkeit Ingenieurtätigkeit Nur wenige Leute können gut programmieren Programm = Daten + Befehle Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 9 Von-Neumann Architektur eines Computers aus: A. Ferscha, Skriptum Softwareentwicklung 1, JKU Linz Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 10

6 Wiederholung von der VL: RISC-Programm aus: A. Ferscha, Skriptum Softwareentwicklung 1, JKU Linz Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 11 Verarbeitungseinheit Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 12 aus: A. Ferscha, Skriptum Softwareentwicklung 1, JKU Linz

7 Typische Befehle load: Laden von Daten aus Hauptspeicher store: Schreiben von Daten in Hauptspeicher move: Speicheroperationen add, sub, mult, : Arithmetsiche Operationen cmp: Vergleichsoperationen: Vergleich auf 0 jmp, jeq; Sprünge und bedingte Sprünge im Ablauf Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 13 Daten und Befehle Daten Menge adressierbarer Speicherzellen x y z Name Wert Daten sind binär gespeichert (z.b. 17 = 10001) Binärspeicherung ist universell (Zahlen, Texte, Bilder, Ton,...) 1 Byte = 8 Bit 1 Wort = 2 Byte (oder 4 Byte) 1 Doppelwort = 2 Worte Befehle Operationen mit den Speicherzellen Maschinensprache ACC x ACC ACC + y z ACC // Lade Zelle x // Addiere Zelle y // Speichere Ergebnis in Zelle z Hochsprache z = x + y; Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 14

8 Variablen Programme arbeiten mit Variablen. Sind benannte Behälter für Werte. x y 99 3 Variablen können ihren Wert ändern x x + 1 x 100 Beispiel: byte x = 10 Charakterisiert durch Name oder Bezeichner Wert Adresse (im Hauptspeicher) Adresse x Wert (byte) Datentyp int, char, byte, float,... Name Datentyp Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 15 Datentypen Variablen haben einen Datentyp == Menge erlaubter Werte Variablentyp Zahl Zeichen Werte 'a' 'x'... Typ Form - in eine Zahlenvariable passen nur Zahlen - in eine Zeichenvariable passen nur Zeichen Beispiele von Datentypen: char (2 Byte) [ a-z][a-z][0-9][sonderzeichen] int (4 Byte) ~-2,147 Mrd. ~+2,147 Mrd. boolean true, false float Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 16

9 Algorithmus Ein Algorithmus ist ein endliches, schrittweises Verfahren zur Berechnung gesuchter aus gegebenen Größen, in dem jeder Schritt aus einer Anzahl eindeutig ausführbarer Operationen und einer Angabe über den nächsten Schritt besteht. Berechnungsvorschrift schrittweise endlich ausführbare Operationen Angabe der Reihenfolge der Schritte (Der Name Algorithmus ist abgeleitet von Al Chwarizmi, arabischer Mathematiker, ca. 800 n.chr.) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 17 Beispiel: Algorithmus Sum Algorithmus Sum zum Berechnen der Summe einer Zahlenfolge Aufgabenstellung: Gegeben: Eine Zahl n größer 0 Gesucht: Die Summe dieser Zahlen von 1 bis n Algorithmus: 1. Addiere alle Zahlen von 1 bis n 2. Gib das Ergebnis aus Diese Formulierung ist für einen Computer noch zu wenig genau! Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 18

10 Algorithmus Sum als Verfahren in mehreren Schritten Name Parameter Ergebnis Sum ( n, sum) 1. sum 0 2. zahl 1 3. Wiederhole, solange zahl n 3.1 sum sum + zahl 3.2 zahl zahl + 1 Folge von Schritten Diese Formulierung ist einem Computerprogramm schon sehr nahe. Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 19 Anweisungen: Wertzuweisung und Sequenz Wertzuweisung Variable x x + 1 Ausdruck 1. werte Ausdruck aus 2. weise seinen Wert der Variablen zu Anweisungsfolge (auch Sequenz) "Ablaufdiagramm" x 3 y 4 z x + y x == 3, y == 4, z == 7 Assertion Assertion (Zusicherung) Aussage über den Zustand des Algorithmus an einer bestimmten Stelle Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 20

11 Anweisungen: Verzweigung Auswahl (auch Verzweigung, Abfrage, Selektion) j x < y? n x y min x min y min == Minimum von x und y Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 21 Anweisungen: Wiederholung Wiederholung (auch Schleife, Iteration) Alternative Darstellung d 1 n > 9? j n d 1 n > 9 n n / 10 d d + 1 n < 10 d == Anzahl der Ziffer von n n n / 10 d d + 1 n < 10 d == Anzahl der Ziffer von n Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 22

12 Anweisungen: Wiederholung Wiederholung (auch Schleife, Iteration) n 0 x > 1? j n x x / 2 n n + 1 x 1 n = log2 x n 0 x > 1 x x / 2 n n + 1 Alternative Darstellung x 1 n = log2 x Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 23 Beispiel: Vertauschen zweier Variableninhalte Swap ( x, y) h = x x = y y = h Schreibtischtest x y h Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 24

13 Beispiel: Maximum dreier Zahlen bestimmen Max ( a, b, c, max) j a > b? n a b j n j n a > c? b > c? c a > b a b c max a max c max b max c Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 25 Beispiel: Maximum dreier Zahlen bestimmen Max ( a, b, c, max) j a > b? n a b j n j n a > c? b > c? c a > b a b c max a max c max b max c Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 26

14 Beispiel: Anzahl der Ziffern einer Dezimalzahl Zahl solange durch 10 dividieren, bis Zahl < 10 Anzahl der Divisionen + 1 = Anzahl der Ziffern Digits( n, d) d 1 n > 9 n n / 10 d d + 1 n < 10 d == Anzahl der Ziffer von n Schreibtischtest n d Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 27 Beispiel: Quadratwurzel von x berechnen 1. Näherung: -root (a x / + 2root) / 2 -a a x // root a 2 root 2 0 a x 1 root 1 x SquareRoot ( x, root) root x / 2 a x / root a * root == x a root a * root == x root (root + a) / 2 a x / root Schreibtischtest x root a a * root == x & a == root root * root == x Kommazahlen sind meist nicht exakt gleich, daher besser a - root > Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 28

15 Beispiel: Euklidscher Algorithmus Berechnet den größten gemeinsamen Teiler zweier Zahlen x und y GGT ( x, y, ggt) rest Rest von x / y Beobachtung: (ggt teilt x) & (ggt teilt y) ggt teilt (x - y) ggt teilt (x - q*y) ggt teilt Rest von x/y (rest) GGT(x, y) = GGT(y, rest) rest 0 x y y rest rest Rest von x / y ggt y rest = 0 Schreibtischtest x y rest Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 29 Algorithmenschreibweisen Ablaufdiagramm (schon bekannt) Struktogramm GGT ( x, y, ggt) ja x y x < y? rest Rest von x / y while rest 0 ggt y x y y rest rest Rest von x / y nein + erzwingen strukturiertes Programmieren (ohne beliebige Sprünge) - aufwendig zu zeichnen schwer zu ändern Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 30

16 Algorithmenschreibweisen: Stilisierte Prosa Stilisierte Prosa GGT ( x, y, ggt) S1 Mache x y. Wenn x < y ist, vertausche x und y S2 Bilde Rest. Dividiere x durch y und nenne den Rest rest S3 Ende? Wenn rest null ist, gehe zu S5 S4 Ersetze. Ersetze x durch y und y durch rest Gehe nach S2 S5 Fertig. Das Ergebnis ggt ist y + größtmögliche Freiheit in der Formulierung - schreibaufwendig - unpräzise - Ablaufstrukturen (Schleifen, Verzweigungen) nicht sichtbar Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 31 Algorithmenschreibweisen: Java Java-Programm public class GGTProgram { + vom Computer lesbar und verarbeitbar + eindeutig und präzise + von Menschen lesbar - exakt, ohne Freiheitsgrade - aufwendig zu schreiben public static void main(string[] args) { int x; int y; int ggt; static int GGTEuklid(int x, int y) { int rest; int ggt; Out.print("Bitte x eingeben: "); x = In.readInt(); Out.print("Bitte y eingeben: "); y = In.readInt(); ggt = GGTEuklid(x, y); Out.print("Der GGT von x und y ist: "); Out.println(ggt); // %-Operator bildet den Rest rest = x % y; while (rest!= 0) { x = y; y = rest; rest = x % y; // rest == 0 ggt = y; return ggt; // end GGTProgram Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 32

17 Algorithmenschreibweisen: Java + Prosa Prosa + Java int GGTEuklid(x, y) { Java-Kontrollstrukturen mit Anweisungen in Prosa rest = Rest von x/y while (rest nicht 0 ist) x = y y = rest rest = Rest von x/y ggt = y return ggt + nahe einem Java-Programm + beliebige Freiheit bei der Formulierung von Anweisungen + muss nicht syntaktisch korrekt sondern nur verständlich sein + daraus kann schrittweise ein Java- Programm entwickelt werden Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 33 Algorithmen und Programmierung Programm Ein für die Lösung einer bestimmten Aufgabe mit einer Datenverarbeitungsanlage geeigneter Algorithmus d.h. Elementare Operationen sind die durch den Computer ausführbaren Befehle Programm muss in einer für den Computer lesbaren Form definiert sein (==> Programmiersprache) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 34

18 Höhere Programmiersprachen Höhere Programmiersprachen dienen der Formulierung von Programmen Sind für den Computer lesbar und verarbeitbar können vom Computer gelesen werden können vom Computer in ein ausführbares Programm übersetzt werden (Compiler) für den Menschen wesentlich einfacher lesbar und schreibbar als Maschinensprache Programmieren wird wesentlich erleichtert Programme können vom Experten gelesen und verstanden werden Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 35 Programmerstellung Idee Mensch Spezifikation Algorithmus Aufgabenstellung Lösungsverfahren Programm Codiertes Lösungsverfahren Compiler Maschinenprogramm Lader Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 36

19 Geschichte der Programmiersprachen Jahr Sprache Fortran Algol-60 Cobol Basic APL Lisp PL/I Algol-68 Pascal Prolog C Modula-2 Ada Smalltalk C++ Oberon Java C# Bemerkung technische Anwendungen Algol-Familie kaufmännische Anwendungen Anfänger-Sprache Vektoren und Matrizen funktionale Sprache Allzwecksprache Nachfolger von Algol-60 Einfluß auf spätere Sprachen Wissen und Schlußregeln Unix-Sprache Nachfolger von Pascal Allzwecksprache; DoD objektorientierte Sprache objektorientierte Erweiterung von C Weiterentwicklung von Modula-2 Weiterentwicklung von C++; WWW Weiterentwicklung von Java durch Microsoft Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 37 Programmiersprache Java Java ist eine höhere, problemorientierte Programmiersprache, die laut Sun durch folgende Eigenschaften charakterisiert ist: Simple: einfacher als C++ Architecture-neutral: läuft auf Windows-Rechner als auch auf Unix/Linux, Mac Object-oriented Portable Distributed High-performance Interpreted Multithreaded Robust Secure Dynamic Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 38

20 Java Virtual Machine Java-Programme werden nicht direkt auf dem Computer ausgeführt sondern von einen speziellen Programm, nämlich der Java Virtual Machine (JVM) Vorteile: Java-Programme laufen kontrolliert in der JVM ab Erhöhte Sicherheit und Zuverlässigkeit Kann auf jede Plattformen portiert werden. Vom Super Computer bis zu Handys Von Unix bis Windows-CE Selbes Programm läuft (mit Einschränkungen) auf alle diesen Plattformen ohne nochmals übersetzt oder portiert zu werden, da sich die VM auf jeder Plattform gleich verhält Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 39 Unterschied normale Prgrammausführung Virtuelle Machine (VM) normale Prgrammausführung Virtuelle Machine Application Application Systemlibraries Operating-System Hardware JNI-Bereich Systemlibraries Operating-System Hardware Virtual Machine Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 40

21 Java Runtime Environment (JRE) Eine Plattform ist die Hard- und Softwareumgebung auf der ein Programm läuft. Die meisten Plattformen bestehen aus Hardware und Betriebssystem. Die Java-Plattform unterscheidet sich von den meisten anderen Plattformen dadurch, das sie eine reine Software-Plattform ist, die für verschiedenste Hardware und Betreibssysteme verfügbar ist. Die Java Runtime Environment besteht aus zwei Teilen: Die Java Virtual Machine (Java VM) Das Java Application Programming Interface (Java API) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 41 Java Development Tookit (JDK) == Programmwerkzeuge zum Erstellen, Übersetzen und Testen von Java-Programmen Java Compiler javac Übersetzt den Quellcode in Java Byte-Code Java Debugger jdb Tool zur Fehlersuche Java Disassembler javap Erzeugt aus Byte-Code lesbaren Quellcode Weitere Tools jar, javah, javadoc, javakey, serialver,... Java Dokumentation (separates Download) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 42

22 Erstellen und Ausführen von Java-Programmen Beispielprogramm HelloWorld Erstellen von Java-Programm mit Editor Quellcode (Sourcecode) in Java Erstellen von Programm HelloWorld mit Editor Datei HelloWorld.java mit Java-Source Java Compiler (javac) javac HelloWorld.java Java Zwischencode (Byte Code) Datei HelloWorld.class mit Byte-Code Java Runtime (java) java HelloWorld Programmausführung Ausführung von Programm HelloWorld Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 43 Programm schreiben (Wordpad) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 44

23 Programm kompilieren (javac) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 45 Programm starten (java) Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 46

24 Java: Deklaration von Variablen In Java müssen alle Variablen vor der Verwendung deklariert werden Deklaration von Variablen Angabe des Datentyps Angabe des Namens (eindeutig) [Angabe eine Anfangswertes (optional)] int i; int j = 0, k; boolean positive = false; float x; char ch = ' '; Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 47 Java: Zuweisungsoperation x = 1 + 2; x = a + b; x = x + b; x = x + 1; Weist einer Variable einen Wert zu. Wichtig! Zuweisung ungleich Gleichheitsoperator (==) Der Wert der Variablen auf der rechten Seite geht dabei nicht verloren. Der Zuweisungsoperator ist nicht mit der Gleichheitsrelation der Mathematik zu verwechseln. Die Hauptanwendung des Zuweisungsoperators liegt in der Zuweisung eines Ergebnisses eines Ausdruckes an eine Variable. Verschiedene Schreibweisen in unterschiedlichen PrgmSprachen m = n C/C++, Java, FORTRAN, Basic,... m < n APL m := n Pascal, Algol, Modula-2 Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 48

25 Java: Sequenz int number; number = readint(); number = number + 1; writeint(number);... Folge von Anweisungen werden nacheinander (sequentiell) ausgeführt Ist nichts anderes spezifiziert, werden Anweisungen immer nacheinander - man sagt sequentiell - ausgeführt Während der Ausführung werden Werte von Variablen verändert Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 49 Java: Verzweigungen Eine Verzweigung führt Anweisungen in Abhängigkeit einer Bedingung aus. Bedingung Einseitig: wenn x < 0 ist, dann x = -x Anweisungen Zweiseitig: wenn x < y ist, dann min = x, max = y sonst /* x >= y */ min = y, max = x Java if (x < 0) { x = -x if (x < y) { min = x; max = y; else { /* x >= y */ min = y; max = x; Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 50

26 Java: Schleifen Schleifen führen Anweisungen in Abhängigkeit einer Bedingung kein- oder mehrmals aus. Beispiel: Berechnung der Fakultät Abweiseschleife Bedingung Java x = 3, i = 1, f = 1 solange i < x ist, wiederhole i = i + 1, f = f * Anweisungen i Durchlaufschleife x = 3, i = 1, f = 1; wiederhole f = f * i, i = i + 1 solange i <= x x = 3; i = 1; f = 1; while (i < x) { i = i + 1; f = f * i; x = 3; i = 1; f = 1; do { f = f * i; i = i + 1; while (i <= x); Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 51 Grundstruktur von Java-Programmen class ProgramName { public static void main (String[] arg) {... // Deklarationen... // Anweisungen Text muß in einer Datei namens ProgramName.java stehen main-methode stellt den Anfang des Programms dar Beispiel: class Sample { public static void main (String[] arg) { Out.print("Geben Sie 2 Zahlen ein:"); int a = In.readInt(); int b = In.readInt(); Out.println("Summe = " + (a + b)); Text steht in Datei Sample.java Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 52

27 Beispiel Java-Programm public class GGTProgram { public static void main(string[] args) { int x; int y; int ggt; Out.print("Bitte x eingeben: "); x = In.readInt(); Out.print("Bitte y eingeben: "); y = In.readInt(); ggt = GGTEuklid(x, y); Out.print("Der GGT von x und y ist: "); Out.println(ggt); static int GGTEuklid(int x, int y) { int rest; int ggt; // %-Operator bildet den Rest rest = x % y; while (rest!= 0) { x = y; y = rest; rest = x % y; // rest == 0 ggt = y; return ggt; // end GGTProgram Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 53 Java-Programm "Sum" (Sum.java) public class Sum { public static void main(string[] args) { int sum = 0; int number; Out.print("Bitte Zahlen eingeben: "); number = In.readInt(); while (number > 0) { sum = sum + number; number = In.readInt(); Out.print("Die Summe ist:"); Out.printLn(sum); Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 54

28 Schritte des Algorithmenentwurfs und der Programmierung Problem erfassen und beschreiben Lösungsidee erarbeiten und niederschreiben Lösungsidee in einen schrittweisen Ablauf überführen (= Algorithmus) Algorithmus so weit verfeinern und konkretisieren, dass Umsetzung in Java direkt möglich ist Programmierung in Java Überlegen von Testfällen (dabei alle möglichen Sonderfälle, Grenzfälle betrachten) Testen und Verbessern Dokumentieren der Ergebnisse Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 55 Einige Hinweise Es ist wichtig, klar und einfach zu denken Hat man das Problem einmal richtig erfasst (niederschreiben), so ist meist auch die Lösung klar. Die besten Lösungen sind (fast immer) die einfachsten und kürzesten. Sonderfälle und Grenzfälle betrachten (z.b. Division durch 0) Fehler treten meist bei den Sonderfällen und Grenzfällen auf; an diese denken und im Algorithmus vorsehen. Der Mensch berücksichtigt Sonderfälle meist intuitiv; Intuition fehlt dem Computer aber völlig. Java-Programme müssen absolut exakt, verständlich und übersichtlich sein Keine Syntaxfehler Klare Namensgebung Genaue Konventionen für das Format und die Zeichensetzung (Einrückungen, Leerzeichen etc.) Kommentare für Verständnis wichtig Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 56

Softwareentwicklung 1

Softwareentwicklung 1 Softwareentwicklung 1 Dr. Herbert Prähofer Institut für Systemsoftware Johannes Kepler Universität Linz Research and teaching network Softwareentwicklung 1 (UZR) Systemsoftware, JKU Linz 1 Vortragender

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

Softwareentwicklung 1

Softwareentwicklung 1 Softwareentwicklung 1 Dr. Herbert Prähofer Institut für Systemsoftware Johannes Kepler Universität Linz Research and teaching network Softwareentwicklung 1 (UZR) Systemsoftware, JKU Linz 1 Vortragender

Mehr

Allgemeines zu Programmieren I

Allgemeines zu Programmieren I Allgemeines zu Programmieren I Webseite zur Vorlesung http://informatik.unibas.ch/ -> lehre -> grundlagen-der-programmierung hier gibt es alle Folien zur Vorlesung alle Übungsblätter aber auch sonstige

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dr. Thomas Scheidl Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz scheidl@pervasive.jku.at Java Einführung Java

Mehr

I) Grundlagen der Programmierung. II) Erweiterte Grundlagen der Programmierung

I) Grundlagen der Programmierung. II) Erweiterte Grundlagen der Programmierung Allgemeines zu: I) Grundlagen der Programmierung VV-Nr.: 10890-01 II) Erweiterte Grundlagen der Programmierung VV-Nr.: 45398-01 Webseiten zur Vorlesung http://informatik.unibas.ch/hs2016/ ->Grundlagen

Mehr

Allgemeines zu Programmieren I

Allgemeines zu Programmieren I Allgemeines zu Programmieren I Webseite zur Vorlesung http://informatik.unibas.ch/lehre/hs11/cs101/ hier gibt es alle Folien zur Vorlesung alle Übungsblätter aber auch sonstige aktuelle Informationen Page

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einfü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)

Mehr

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut 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

Mehr

Einführung in die Programmierung mit VBA

Einfü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

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Empfehlenswerte Literatur

Empfehlenswerte Literatur Empfehlenswerte Literatur 1 Flanagan, David: Java in a Nutshell, O Reilly, UK, 2002 (50 ) Online Referenzen unter http://www.wi3.uni-erlangen.de/lehre/ http://java.sun.com http://www.javaworld.com/ Online

Mehr

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren Hanspeter Mössenböck Sprechen Sie Java? Eine Einführung in das systematische Programmieren 3., überarbeitete und erweiterte Auflage Tm\ dpunkt.verlag 1 Grundlagen 1 1.1 Daten und Befehle 2 1.2 Algorithmen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einführung in Java. Ausgewählte Quellen zu Java

Einführung in Java. Ausgewählte Quellen zu Java Einführung in Java Wesentliche Eigenschaften und Merkmale der Programmiersprache Java Prof. Dr. Stefan Böttcher Universität Paderborn im Rahmen der Vorlesung: Webbasierte Informationssysteme SS 2004 Einführung

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Ü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

Simulation und Testen von Algorithmen

Simulation und Testen von Algorithmen Simulation und Testen von Algorithmen Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 1 Handsimulation von Algorithmen Man versteht einen Algorithmus, wenn man genau weiß, wie er arbeitet.

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Einführung in JAVA. Viele Höhen und Tiefen Java war schon einmal nahezu tot. Heute extrem weit verbreitet vom Supercomputer bis hin zum Handy.

Einführung in JAVA. Viele Höhen und Tiefen Java war schon einmal nahezu tot. Heute extrem weit verbreitet vom Supercomputer bis hin zum Handy. Small History Machine Virtual Machine (VM) Komponenten der VM Entwicklungswerkzeuge JDK Woher bekommt man JDK Wie installiert man JDK Wie benutzt man JDK Entwicklungsumgebungen Java 23. May 1995: John

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen 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

Mehr

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax Einführung in die Programmierung für NF Algorithmen, Datentypen und Syntax Ziele Begriffsbildungen: InformaCk, Algorithmus, Programm, Compiler und andere Einordnung von Java Ein einfaches Java- Programm

Mehr

3. Grundanweisungen in Java

3. Grundanweisungen in Java 3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 2 Java: Java-Einführung 2 Java: Java-Einführung 2.1 Java-Entwicklungsgeschichte 2.2 Java Eigenschaften 2.3 Java-Entwicklungsumgebung 2.4 Application vs. Applet 2.5 Ein erstes Programm 2.1 2.1 Java - Entwicklungsgeschichte

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und

Mehr

Informatik I - Einstiegskurs

Informatik I - Einstiegskurs Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Vorkurs: Java-Einführung

Vorkurs: Java-Einführung 1 Vorkurs: Java-Einführung Dr. Hui Shi 11. Oktober 2017 Überblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegriff 3 Grundlegende Konzepte der Programmiersprache Java Syntax

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

7. 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 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

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme Grundlagen der Programmierung Prof. H. Mössenböck 2. Einfache Programme Grundsymbole Namen bezeichnen Variablen, Typen,... in einem Programm - bestehen aus Buchstaben, Ziffern und "_" - beginnen mit Buchstaben

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung

Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung Informatik, Informationselektronik, Wirtschaftsinformatik, Lehramt Informatik, Chemie, etc. Dipl.-Ing. Institute for Pervasive Computing Johannes

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Für eine

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

Programmierkurs. Manfred Jackel

Programmierkurs. Manfred Jackel Java für Anfänger Teil 1: Intro Programmierkurs 12.-16.10.2009 10 2009 Manfred Jackel 1 1. Handwerkszeug Notwendige Software Java Runtime Environment JRE 6 von http://java.sun.com/javase/downloads/index.js

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  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

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Java: Eine kurze Einführung an Beispielen

Java: 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

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) Schwerpunkte While-: "abweisende" Schleife 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java Do-while-: "nichtabweisende" Schleife For-: zählergesteuerte Schleife Klassifikation

Mehr

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate COMA Eine Einführung Quellcode: Anweisung(en)1 Wiederhole: T.Bosse Anweisung(en) 2 Einfache Schleifen (z.b. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Verzweigungen

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Java Programmierung auf der Konsole / unter Eclipse

Java Programmierung auf der Konsole / unter Eclipse Fakultät Informatik, HFU Brückenkurs Programmieren 1 Java Programmierung auf der Konsole / unter Eclipse Allgemeine Begriffe Programmiersprache: künstliche Sprache zur Notation von Programmen Programm:

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivü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

Mehr

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Kapitel 3. Mein erstes C-Programm

Kapitel 3. Mein erstes C-Programm Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL

Mehr

RO-Tutorien 3 / 6 / 12

RO-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

Mehr

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h> Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include int main() { printf( hello world\n ); return 0; } Peter Sobe 1 Verschiedene Sprachkonzepte

Mehr

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Java für Anfänger Teil 1: Intro. Programmierkurs 11.-15.10.2010 Manfred Jackel

Java für Anfänger Teil 1: Intro. Programmierkurs 11.-15.10.2010 Manfred Jackel Java für Anfänger Teil 1: Intro Programmierkurs 11.-15.10.2010 Manfred Jackel 1 1. Handwerkszeug Eclipse Workbench mit Java-Compiler Java Runtime Environment Notwendige Software Java Runtime Environment

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.

Mehr

JAVA als erste Programmiersprache Semesterkurs

JAVA als erste Programmiersprache Semesterkurs JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik

Mehr

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

Erster Kontakt mit Java und Pseudocode

Erster Kontakt mit Java und Pseudocode Erster Kontakt mit Java und Pseudocode CoMa-Übung II TU Berlin 23.10.2013 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 1 / 27 Themen der Übung 1 Java auf meinem Rechner 2

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi Grundlagen der Programmierung 1 WS 2012/2013 Prof. Dr. Stefan Böttcher Aufgabenblatt 1: - Präsenzübung für die Übungen Do. 11.10.- Mi. 17.10.2012 Ausgabe Mi. 10.10.2012 1.1. Zahlen vertauschen mit wenigen

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1 Programmiertechnik Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150 Oliver Haase Hochschule Konstanz 1 Organisatorisches Vorlesung: montags, 8:00 9:30h, Raum C-109 freitags, 8:00

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 02 Java was, wann, warum, wieso Java, eine objektorientierte Programmiersprache Java ist eine objektorientierte Programmiersprache und als solche ein eingetragenes Warenzeichen der Firma Sun Microsystems.

Mehr

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm. Übung 04: Methoden Abgabetermin: 11. 11. 2008 Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 4.1 12

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner

Mehr

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java.  Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Programmiersprachen, Übersicht 2 Quelle: heise.de W. Geiger, W. Süß, T. Schlachter, C.

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

Grundlagen von C# - 1

Grundlagen von C# - 1 Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen

Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen Grundlagen der Programmierung Prof. H. Mössenböck 4. Schleifen While-Schleife Führt eine Anweisungsfolge aus, solange eine bestimmte Bedingung gilt i 1 sum 0 i n sum sum + i i i + 1 i = 1; sum = 0; while

Mehr