Algorithmen und Programmieren II Konzepte imperativer und objektorientierter Programmierung

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Programmieren II Konzepte imperativer und objektorientierter Programmierung"

Transkript

1 Algorithmen und Programmieren II Konzepte imperativer und objektorientierter Programmierung SS 2010 Prof. Dr. Margarita Esponda Prof. Dr. Margarita Esponda 1

2 Inhalt (Teil I) Konzepte imperativer Programmierung (Python) Syntax und operationelle Semantik imperativer Programmiersprachen Formale Verfahren zur Spezifikation und Verifikation imperativer Programme: Bedingungen im Zustandsraum (assertions), Hoare-Kalkül, partielle Korrektheit, Termination Konzepte objektorientierter Programmierung (Java): Primitive und Zusammengesetzte Datentypen, Methoden (Prozeduren und Funktionen), Parameterübergabe, Überladung Module, Klassen, Objekte Klassenhierarchien, Vererbung, abstrakte Klassen, Schnittstellen, Polymorphie Ausnahmebehandlung (Exceptions) Prof. Dr. Margarita Esponda 2

3 Inhalt (Teil II) Programmiermethodik: Umwandlung von Rekursion in Iteration Teile und herrsche Rücksetzverfahren (Backtracking) Dynamische Programmierung Analyse von Laufzeit und Speicherbedarf: O-Notation Analyse von Such- und Sortieralgorithmen Algorithmen und Datenstrukturen Berechenbarkeitsbegriff: Universelle Registermaschinen Prof. Dr. Margarita Esponda 3

4 Unsere Lernziele sind: Programmieren im Kleinen Algorithmen entwerfen und implementieren Grundkonzepte von imperativen Programmiersprachen im allgemeinen beherrschen Datentypen, Anweisungen, Kontrollstrukturen Unterprogramme, Parameterübergabe und Zeigertypen Korrektheit von Programmen analysieren Tests entwerfen und ausführen Konzepte Objektorientierter Programmierung beherrschen Klassen, Objekte, Kapselung, Vererbung, Polymorphie und Datenabstraktion Theoretische Grundlagen kennen Registermaschinen als Berechenbarkeitsmodell Hoare-Kalkül zur Spezifikation / Verifikation Prof. Dr. Margarita Esponda 4

5 Literatur Algorithmen und Datenstrukturen Mark Allen Weiss: Data Structures & Problem Solving Using Java, Addison Wesley, 3. Auflage, Algorithmen in Java. Robert Sedgewick. Teil Auflage. Introduction to Algorithms. Third Edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein Java-Programmierung Sun The Java Tutorial (online). B. Eckel: Thinking in Java, Prentice Hall 2006 (Online-Version). C. Ullenboom: Java ist auch eine Insel, Galileo Computing, 5. Auflage (Online-Version) Prof. Dr. Margarita Esponda 5

6 Kriterien für den Leistungsnachweis: Eine regelmäßige Teilnahme an den Laborterminen ist unerlässlich. Die Abgabe der Übungsblätter erfolgt donnerstags um 8 Uhr. Nach diesem Termin abgegebene Übungsblätter werden nicht berücksichtigt. Jeder Student muss an mindestens n-2 Übungsterminen anwesend sein. Jeder Student muss n-2 Übungsblätter bestehen. Ein Übungsblatt gilt als bestanden, wenn man mind. 40% der zu erreichenden Punkte erreicht hat. Jeder Student muss 60% der maximal erreichbaren Punktzahl aus allen Übungsblättern erreichen. Jeder Student muss mindestens zwei Mal seine Lösungen vorrechnen. Wer jeweils vorrechnen muss, wird per Zufall am Anfang des jeweiligen Tutoriums entschieden. Zwischenklausur und Klausur (notwendig für Note und Schein). Die Gesamtnote ergibt sich zu 50% aus der Note der Zwischenklausur und zu 50% aus der Note der abschließenden Klausur. Prof. Dr. Margarita Esponda 6

7 Kriterien für den Leistungsnachweis: Zusätzlich ist es den Teilnehmern möglich durch besonders aktive mündliche Teilnahme an den Tutorien die Gesamtnote um maximal 0,7 zu verbessern. Diese Bewertung wird von den Tutoren individuell vorgenommen. Durch diese Verbesserung kann ein Bestehen der Klausur nicht erreicht werden. Die beste zu erreichende Note ist 1,0. Prof. Dr. Margarita Esponda 7

8 TUTORIEN Mo 08:00-10:00 Stefan Meißner SR055 Mo 10:00-12:00 Florian Brinkmeyer SR053 Mo 12:00-14:00 Florian Brinkmeyer SR051 Di 10:00-12:00 Christoph Beuck SR055 Di 12:00-14:00 Christoph Beuck SR051 Di 14:00-16:00 Naja von Schmude SR055 Mi 08:00-10:00 Rico Jonschkowski SR055 Mi 12:00-14:00 Naja von Schmude SR055 Mi 12:00-14:00 Carl Witt SR006 Mi 14:00-16:00 Rico Jonschkowski SR055 Beginn: Prof. Dr. Margarita Esponda 8

9 Hörsaal der Zukunft? Prof. Dr. Margarita Esponda 9

10 Webseite Vorlesungsfolien Übungsblätter Literaturliste Zusätzliches Material Sprechstunde: Fr. 10:00 12:00 Uhr Raum 162 Prof. Dr. Margarita Esponda 10

11 Vorlesungen + Übungen Grundlegende Regeln zum Erfolg sind: - regelmäßige und aktive Teilnahme in der Vorlesung - Fragen! - regelmäßige und aktive Teilnahme an den Übungen - selbständige Lösung der Übungsblätter! Prof. Dr. Margarita Esponda 11

12 Fragen Inhaltliche Fragen sind immer willkommen während und nach jeder Vorlesung in der Sprechstunde (Freitags) Keine s mit organisatorischen Fragen! Prof. Dr. Margarita Esponda 12

13 Konzepte imperativer Programmierung Die eigentliche Geschichte der Programmiersprachen begann mit: dem Konzept der von Neumann-Maschine, die 1945 die Notwendigkeit eines gespeicherten Programms postulierte. und mit dem Konzept des "conditional control transfer" If-then-Anweisung looped-anweisungen Subroutines (Funktionen) Prof. Dr. Margarita Esponda 13

14 Imperatives Programmieren Ältestes und Populärstes Programmierparadigma Fortran, Cobol, Algol, C, Basic, Java, usw. Widerspiegelt die dahinter stehende Hardware- Architektur von Neumann Maschine gespeichertes Programm + Daten Prof. Dr. Margarita Esponda 14

15 Die ersten höheren Programmiersprachen waren rein imperativ John Backus FORmula TRANslator Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. Grace Hopper Cobol COmmon Business Oriented Language Prof. Dr. Margarita Esponda 15

16 Höhere Programmiersprachen Deklarative Sprachen Was? Imperative Sprachen Wie? Prozedurale Funktionale Sprachen Logische Sprachen Objektorientierte Programmiersprachen Aspektorientierte Programmiersprachen Prof. Dr. Margarita Esponda 16

17 deklarativ vs. imperativ - Sprachen basieren auf einem mathematischen Formalismus - Wissen über ein Problem rein deklarativ darstellbar - Intelligentes System, das Fragen an das Programm beantworten kann kompakter robuster einfacher - Sprachen sind von der - dahinterstehenden Hardware geprägt - Befehlssequenz (Zustände) - zeitlicher Ablauf im Programm sichtbar effizienter Prof. Dr. Margarita Esponda 17

18 Erste deklarative Programmiersprache John McCarthy Lisp LISt Processor Common Lisp Scheme Ein Lisp-Programm ist eine Liste, die einen abstrakten Syntaxbaum darstellt. ( + (+ a (* b c) d ) 1958 McCarthy schrieb ein Paper mit einem einfachen Lisp- Interpreter, der wiederum in Lisp geschrieben war. Es gibt keinen grundsätzlichen Unterschied zwischen Daten und Programmanweisungen. Dies ermöglicht unter anderem, Programme zur Laufzeit beliebig zu manipulieren. Prof. Dr. Margarita Esponda 18

19 Deklarative Programmiersprachen parents( edward, victoria, albert ). parents( harry, victoria, albert ). parents( alice, victoria, albert ). Beispiel in Prolog female( alice ). loves( harry, wine ). loves( alice, wine ). sisterof( X, Y ) :- parents( X, M, F ), female( X ), parents( Y, M, F ).? sisterof ( alice, Z ), loves ( Z, wine ) Prof. Dr. Margarita Esponda 19

20 Imperatives Programmieren Grundlegende Operation: die Zuweisung Operation mit Nebeneffekten Speicherinhalte werden verändert und damit der Zustand der gesamten Maschine. Kontrollfluss-Anweisungen unbedingte Sprünge: GOTO, break, return-anweisung usw. bedingte Sprünge: if-then-else-anweisung und Loop-Anweisungen (Schleifen). Prof. Dr. Margarita Esponda 20

21 Grundlegende Elemente von imperativen Programmen Definitionen von Datentypen Deklarationen von Variablen unter Verwendung vordefinierter Datentypen Zuweisungen Ausdrücke Anweisung für den Kontrollfluss innerhalb des Programms Gültigkeitsbereich von Variablen (locality of reference) Definition von Prozeduren und Funktionsdefinitionen Prof. Dr. Margarita Esponda 21

22 Wir werden grundlegende Konzepte der Imperativen Programmierung mit Beispielen in Python behandeln und als Vergleich manchmal C-Beispiele diskutieren. Konzepte der Objektorientierten Programmierung werden wir anhand der Programmiersprache Java diskutieren. Die ALP-II Vorlesung ist kein Programmierkurs! Prof. Dr. Margarita Esponda 22

23 Warum Python? Einfache Syntax und Semantik Einfache Programmierumgebung Hybride Programmiersprache (Multi-Paradigma) Ermöglicht zuerst nur das rein imperative Programmieren Höhere Datenstrukturen sind in der Sprache integriert Plattformunabhängig In der realen Welt verwendete Sprache Umfangreiche Standardbibliothek Prof. Dr. Margarita Esponda 23

24 Warum Python? Prof. Dr. Margarita Esponda 24

25 Warum Python? Prof. Dr. Margarita Esponda 25

26 Konventionelle Programmiersprachen Prof. Dr. Margarita Esponda 26

27 Skriptsprachen Prof. Dr. Margarita Esponda 27

28 Programmiererfahrung Prof. Dr. Margarita Esponda 28

29 Betriebssysteme Prof. Dr. Margarita Esponda 29

30 Warum Python? Prof. Dr. Margarita Esponda 30

31 Warum Python? Einfache Syntax und Semantik Python is an experiment in how much freedom programmers need. Erfinder: Guido van Rossum Too much freedom and nobody can read another's code; too little and expressiveness is endangered. - Guido van Rossum Prof. Dr. Margarita Esponda 31

32 Eigenschaften von C Gute Der Programmierer kann machen, was er will. Schlechte Der Programmierer kann machen, was er will. Der C-Compiler geht davon aus, dass der Programmierer genau weiß, was er will und meldet fast keine Warnungen beim Übersetzen des Programms. Die meisten Fehler bei C- Programmen treten erst zur Laufzeit auf. Prof. Dr. Margarita Esponda 32

33 C ist eine formatfreie Sprache! m(f,a,s)char*s; {char c;return f&1?a!=*s++?m(f,a,s):s[11]:f&2?a!=*s++?1+m(f,a,s):1:f&4?a--? putchar(*s),m(f,a,s):a:f&8?*s?m(8,32,(c=m(1,*s++,"arjan Kenter. \no$../.\""), m(4,m(2,*s++,"pocnwauvbvxrsoqatkjurgxyydqbzhlwknjdmtgeischfmplizef"),&c),s)): 65:(m(8,34,"rgeQjPruaOnDaPeWrAaPnPrCnOrPaPnPjPrCaPrPnPrPaOrvaPndeOrAnOrPnOrP\ noapnpjpaorpnprpnprptpnpraapnbrnnsrnnbapeorcnproncapnoapnpjptpnaapnprpnprcapn\ BrAnxrAnVePrCnBjPrOnvrCnxrAnxrAnsrOnvjPrOnUrOnornnsrnnorOtCnCjPrCtPnCrnnirWtP\ ncjprcapnotprcneranojpronvtpnnrcnnrnnrepjprptnrunnrntpnbtpraapncrnnorpjprrtpn\ CaPrWtCnKtPnOtPrBnCjPronCaPrVtPnOtOnAtnrxaPnCjPrqnnaPrtaOrsaPnCtPjPratPnnaPrA\ apnaaptpnnaprvapnnjprktpnwaorwtonnapnwaprcapnntojprrtonwanrotpncapnbtcjpryton\ UaOrPnVjPrwtnnxjPrMnBjPrTnUjP"),0);} main(){return m(0,75,"miwltouqjgsbnikyvtxodafbucfzspmwnchegrdlapkyvrjxeqzh");} smile.c The International Obfuscated C Code Contest Prof. Dr. Margarita Esponda 33

34 C Python-Philosophie Einfachheit C++ #include <stdio.h> int main(void) { printf("hello,world!\n" ); return 0; } Java public class HelloWorld { #include <iostream> using namespace std; void main() { cout << "Hello, world!" << endl; } Python } public static void main( String[] args ) { System.out.println("Hello,world!"); } print('hello,world!') Prof. Dr. Margarita Esponda 34

35 Einrücken anstatt Klammern keine begin end wie in Pascal oder { } wie in C Die Anweisungen innerhalb eines Blocks beginnen immer an der gleichen Zeilenspalte Beispiel: x = int ( input() ) if x <= 0: x = 0 print ( 'zero' ) else: x = 1 print ( 'one' ) - Die Lesbarkeit der Programme ist von Anfang an garantiert Prof. Dr. Margarita Esponda 35

36 Pseudocode Python-Philosophie Lesbarkeit Python quicksort( A, p, r ) if p < r then q partition( A, p, r ) quicksort( A, p, q-1 ) quicksort( A, q+1, r ) partition( A, p, r ) x A[r] i p-1 for j p to r-1 do if A[j] x then i i+1 exchange A[i] A[j] exchange A[i+1] A[r] return i+1 def quicksort( A, p, r ): if p < r: q = partition( A, p, r ) quicksort( A, p, q-1 ) quicksort( A, q+1, r ) def partition( A, p, r ): x = A[r] i = p-1 for j in range( p, r ): if A[j] <= x: i = i+1 exchange( A, i, j ) exchange( A, i+1, r ) return i+1 Prof. Dr. Margarita Esponda 36

37 GOTOs und Spaghetti code 100 GOTO PRINT I ; 120 GOTO PRINT I * 12 ; 160 GOTO PRINT " = " ; 210 GOTO PRINT " 12 " ; 310 GOTO PRINT " * " ; 410 GOTO I = I IF I > 12 THEN STOP 470 GOTO PRINT "Result" 510 I = GOTO 110 Result 1 * 12 = 12 2 * 12 = 24 3 * 12 = Aus Object-Oriented Programming in Java Mitchell Waite and Robert Lafore Prof. Dr. Margarita Esponda 37

38 GOTOs in Fortran 10 IF (X.GT ) GO TO X = -X IF (X.LT ) GO TO IF (X*Y.LT ) GO TO 40 X = X-Y-Y 40 X = X+Y CONTINUE X = A Y = B-A GO TO 20 Prof. Dr. Margarita Esponda 38

39 GOTOs und Python - die GOTO-Anweisung ist die meist umstrittene Kontroll-Anweisung in der Welt der höheren Programmiersprachen. - theoretisch kann jeder GOTO nach vorne mit einer if-else- Anweisung und jeder GOTO nach hinten mit einer while-schleife ersetzt werden. - Assembler-Befehle haben keine if-else- oder while-anweisungen sondern nur bedingte GOTOs. - Die Äquivalenz ist klar, sonst gäbe es keine Übersetzer. - C hat GOTOs, und Java hat beschränkte GOTOs. - Python hat keine GOTO-Anweisung. Prof. Dr. Margarita Esponda 39

40 Eine Turing-vollständige minimale Sprache braucht nur: LOAD STORE INC GOTO Die Programme müssen sich aber selbst modifizieren können! Prof. Dr. Margarita Esponda 40

41 Python unterstützt mehrere Paradigmen ist sehr flexibel in der Handhabung verschiedener Programmier-Paradigmen Imperative Programmierkonzepte Objektorientierte Programmierung Funktionale Programmierung Einfaches Einsetzen verschiedener Programmiertechniken Strukturierte Programmierung Entwurf gemäß Vertrag (DBC) Prof. Dr. Margarita Esponda 41

42 Funktionale Programmierung Eingebaute Funktionen wie map, filter, zip und reduce >>> filter ( f, range(0, 20) ) >>> [1, 5, 7, 11, 13, 17, 19 ] Mit dem lambda-schlüsselwort können kleine anonyme Funktionen erzeugt und verwendet werden List comprehension >>> map ( lambda x: x*x, range(1,6) ) >>> [1, 4, 9, 16, 25 ] S = {x² : x in {0... 9}} V = {1, 2, 4, 8,..., 2¹²} M = {x x in S and x even} S = [x**2 for x in range(10)] V = [2**i for i in range(13)] M = [x for x in S if x % 2 == 0] Prof. Dr. Margarita Esponda 42

43 Skriptsprachen vs. konventionelle Sprachen Durch die rapide Internet-Entwicklung haben Skriptsprachen eine rasante Entwicklung erlebt. Perl Tcl Rexx JavaScript Python Ruby PHP - Website-Entwicklung - Benutzerschnittstellenentwicklung - Prototyp-Entwicklung - interpretiert - dynamische Typkontrolle - Kopplungssprachen/"glue"-Sprachen C C++ Java C# - kompiliert - statische Typkontrolle - Komponentensprachen Prof. Dr. Margarita Esponda 43

44 Skriptsprachen Vorteile Schnell erlernbar schnelles Prototyping Kleiner Fehlersuche-Zyklus Kleinere Programme und schnellere Entwicklung Nachteile Speicherverbrauch ist größer langsamer Keine statische Typkontrolle Nur für bestimmte Anwendungen geeignet Unterstützen viele moderne Paradigmen Breite Verwendbarkeit in der Software-Industrie Jedoch: große Unterschiede zwischen den einzelnen Skriptsprachen! Prof. Dr. Margarita Esponda 44

45 Dynamisches Typsystem Python hat dynamische Datentypen, ist aber streng typisiert. Der Datentyp einer Variable wird erst zur Laufzeit festgelegt. Im Gegensatz zur statischen Typisierung, indem der Datentyp einer Variable explizit deklariert werden muss, wird der Typ einer Variablen aus dem Typ des Werts zur Laufzeit abgeleitet. Quelle einiger schwierig zu findenden Fehler. Streng typisiert. Prof. Dr. Margarita Esponda 45

46 In der realen Welt verwendete Sprachen Popularität der Programmiersprachen Normalisierte Ergebnisse aus der Popularität in: - Open-Source-Projekte - Powell`s Books - Job-Angebot - Popularität in der Software-Industrie - Google Code Search - usw. Quelle: (DedaSys. Open Source Consulting) Prof. Dr. Margarita Esponda 46

47 Popularität der Programmiersprachen Quelle: TIOBE Programming Community Index for April 2010 Prof. Dr. Margarita Esponda 47

48 Python-Interpreter Linux und Mac OS Windows und Mac OS Der Python-Interpreter ist Teil der Standard- Installation. python IDLE Integrierte DeveLopment Environment python 3.1 Prof. Dr. Margarita Esponda 48

Algorithmen und Programmieren II Einführung in Python

Algorithmen und Programmieren II Einführung in Python Algorithmen und Programmieren II Einführung in Python SS 2012 Prof. Dr. Margarita Esponda 1 Was ist Python? eine Skript-Sprache Anfang der 90er Jahre entwickelt. Erfinder: Guido van Rossum an der Universität

Mehr

Algorithmen und Programmieren II Konzepte imperativer und objektorientierter Programmierung

Algorithmen und Programmieren II Konzepte imperativer und objektorientierter Programmierung Algorithmen und Programmieren II Konzepte imperativer und objektorientierter Programmierung SS 2012 Prof. Dr. Margarita Esponda 1 Inhalt Inhalt 1. Konzepte imperativer Programmierung (Python) 2. Formale

Mehr

Algorithmen mit Python

Algorithmen mit Python Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World

Mehr

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

ALP I Geschichtliche Einführung in die Programmiersprachen

ALP I Geschichtliche Einführung in die Programmiersprachen ALP I Geschichtliche Einführung in die Programmiersprachen Sammet, J. Programming Languages. History and Fundamentals. Prentice Hall, 1969. SS 2011 1 Wie viele Programmiersprachen? Es gibt mehr als 2000

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL Programmieren Administratives / Java nstallation Thomas Vetter, Brian Amberg, Andreas Forster UNVERSTÄT BASEL 21. September 2010 Teil Administratives Allgemein Personen Dozent: Prof. Thomas Vetter Assistenten:

Mehr

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia Kenntnisse im Programmieren für das World Wide Web mit der Programmiersprache JAVA werden vermittelt, ebenso das Erstellen von

Mehr

Liste Programmieren - Java

Liste Programmieren - Java Liste Programmieren - Java Fachhochschule Wiesbaden, FB Informatik Studiengang Allgemeine Informatik Vorlesung im WS 2004/2005 Kapitel 1-9 1 Ziele Ausbau der bisherigen Fertigkeiten und Techniken des objektorientierten

Mehr

Informatikgrundlagen (WS 2015/2016)

Informatikgrundlagen (WS 2015/2016) Informatikgrundlagen (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

Historischer Abriss. 1956 Fortran Backus (IBM) Formula Translator. 1960 Algol 60 Naur et al. Algorithmic Language

Historischer Abriss. 1956 Fortran Backus (IBM) Formula Translator. 1960 Algol 60 Naur et al. Algorithmic Language Vorbemerkungen Dozent Veranstaltung Inhalt Spann (Rechenzentrum des Mathematischen Instituts) Systemadministration der Linux-Netze der Mathematik wissenschaftl. Arbeitsgebiet: Numerische Mathematik 1.

Mehr

Einführung in die Programmiersprache Python

Einführung in die Programmiersprache Python Einführung in die Programmiersprache Python Dipl.-Inf. Frank Hofmann 10. April 2007 Zielsetzung Fragen, die sich jeder stellt Kann ich damit Programmieren lernen? Hilfe! Noch eine Programmiersprache?!

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Funktionale Programmierung (in Clojure)

Funktionale Programmierung (in Clojure) Funktionale Programmierung (in Clojure) Einführung Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Wintersemester 2014/15 Übersicht Paradigmen von Programmiersprachen Paradigmen von Programmiersprachen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Kontrollstrukturen - Universität Köln

Kontrollstrukturen - Universität Köln Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

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

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

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung

Mehr

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1 2D22 1 Inhalte der Lehrveranstaltung Einführung in die Programmierung mit PHP Literatur: Theis, Thomas (2010): Einstieg in PHP 5.3 und MySQL 5.4. [für Programmieranfänger geeignet]. 6., aktualisierte Aufl.

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 1 Ziele der Veranstaltung Imperative Programmierung... Konzepte

Mehr

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012 Programmieren Lernen mit BYOB Informatiktag 2012 Gerald Futschek 5. November 2012 Erste Programmier Schritte in der Schule Sehr viele verschiedene Dinge zu lernen: Syntax und Semantik der Befehle, Algorithmen,

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Einleitung Organisatorisches, Motivation, Herangehensweise Wolfram Burgard Cyrill Stachniss 0.1 Vorlesung Zeit und Ort: Mo 16.00 18.00 Uhr Gebäude 101, HS 00-026 Informationen

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Algorithmen und Berechnungskomplexität I

Algorithmen und Berechnungskomplexität I Institut für Informatik I Wintersemester 2010/11 Organisatorisches Vorlesung Montags 11:15-12:45 Uhr (AVZ III / HS 1) Mittwochs 11:15-12:45 Uhr (AVZ III / HS 1) Dozent Professor für theoretische Informatik

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Was ist Logische Programmierung?

Was ist Logische Programmierung? Was ist Logische Programmierung? Die Bedeutung eines Computer-Programms kann durch Logik erklärt werden. Die Idee der logischen Programmierung besteht darin, die Logik eines Programms selber als Programm

Mehr

Programmierung 2. Organisatorisches. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Organisatorisches. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Organisatorisches Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Wer sind wir? Dozent Assistent Sebastian Hack Gebäude E1 3 Raum

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Kontakt. Programmierkurs. Webseite. Ziel des Kurses

Kontakt. Programmierkurs. Webseite. Ziel des Kurses Kontakt Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln WS 07/08 Vorlesung: Mittwochs 14:00-16:00 Uhr Hörsaal I der Physik Sprechstunde: nach Vereinbarung Weyertal 80 Dachgeschoss

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Programmieren Formulierung eines Algorithmus in einer Programmiersprache Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet Beispiel:

Mehr

Einführung und Motivation

Einführung und Motivation Einführung und Motivation Programmiermethodik Eva Zangerle Universität Innsbruck Ziele der Vorlesung Grundlagen der Programmierung vertiefen Anknüpfen an Wissen aus Einführung in die Programmierung Grundkonzepte

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 main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen

Mehr

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler Joliot-Curie-Gymnasium GR 2010 Nico Steinbach 0. Organisatorisches Warum habt Ihr euch für den Kurs eingeschrieben?

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Einleitung Organisatorisches, Motivation, Herangehensweise Wolfram Burgard 1.1 Vorlesung Zeit und Ort: Dienstags 10:00-12:00 Uhr Donnerstags 10:00-12:00 Uhr Gebäude 101 HS

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Programmieren I. Überblick. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Überblick. www.kit.edu. Institut für Angewandte Informatik Programmieren I Überblick KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Programmieren Programmieren I (1. Semester)

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung PD Dr. Peer Kröger, Dr. Andreas Züfle, Daniel Kaltenthaler, Klaus Schmid Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Wintersemester

Mehr

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Programmieren für Ingenieure Sommer 2015. Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Programmieren für Ingenieure Sommer 2015. Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Ein Rechner Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Rechner sind überall Ihr Rechner

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

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

SWE1 / Übung 2 (19.10.2011)

SWE1 / Übung 2 (19.10.2011) SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn

Mehr

Programmieren in Haskell Einführung

Programmieren in Haskell Einführung Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:

Mehr

Fragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))?

Fragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Fragen f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Wozu evaluiert [f [ ], f [ ]]? Weiteres Beispiel: f [ ] y = [

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

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

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

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München Informatik 1 Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München 1 0 Allgemeines Zielgruppen Siehe Modulbeschreibung Studierende anderer (nicht Informatik)

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Vorlesung Sommersemester 2013 Prof. Dr. Nikolaus Wulff Ziele der Vorlesung Sie vertiefen die Kenntnisse aus Informatik I und runden diese in weiteren Anwendungsgebieten

Mehr

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup Universität Dortmund Lehrstuhl Informatik VI Grundzüge der Informatik * WS 28/29 Prof. Dr. Joachim Biskup Leitung der Übungen: Arno Pasternak Lösungs-Ideen Übungsblatt 6 A: Grammatiken, Syntaxdiagramme

Mehr

Programmieren 3. Programmieren in C und Python. Prof. Dr. Peter Barth. Hochschule RheinMain. Fachbereich Design Informatik Medien.

Programmieren 3. Programmieren in C und Python. Prof. Dr. Peter Barth. Hochschule RheinMain. Fachbereich Design Informatik Medien. Programmieren 3 Programmieren in C und Python Prof. Dr. Peter Barth Hochschule RheinMain Fachbereich Design Informatik Medien Medieninformatik 10. Dezember 2015 Prof. Dr. Peter Barth (HS-RheinMain) Programmieren

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

Mehr

Scala kann auch faul sein

Scala kann auch faul sein Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

E-PRIME TUTORIUM Die Programmiersprache BASIC

E-PRIME TUTORIUM Die Programmiersprache BASIC E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete

Mehr

Algorithmen und Programmierung I Funktionale Programmierung

Algorithmen und Programmierung I Funktionale Programmierung Algorithmen und Programmierung I Funktionale Programmierung WS 2012/2013 Prof. Dr. Margarita Esponda 1 Inhalt Inhalt 1. Einführung in die Funktionale Programmierung (Haskell): 2. Grundlagen der Berechenbarkeit:

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr