Algorithmen und Programmieren II Einführung in Python

Ähnliche Dokumente
Algorithmen und Programmieren II Konzepte imperativer und objektorientierter Programmierung

Programmiersprachen und Programmierkonzepte

Algorithmen mit Python

Einführung in die Programmiersprache Python

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

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

Kontrollstrukturen - Universität Köln

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

Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren?

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

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

Programmieren was ist das genau?

Präsentation Von Laura Baake und Janina Schwemer

Was ist Logische Programmierung?

Python ist leicht zu erlernen, unterstützt mehrere Programmierparadigmen und ist klar strukturiert.

Übersicht Programmablaufsteuerung

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

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Innere Klassen in Java

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

Algorithmen und Datenstrukturen

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

Programmierung für Mathematik (HS13)

Skriptsprachen am Beispiel Python

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Objektorientierte Programmierung

Luis Kornblueh. May 22, 2014

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

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

AbaWeb Treuhand. Hüsser Gmür + Partner AG 30. Oktober 2008

Scala kann auch faul sein

Informatik 1 Tutorial

Abschlussbericht. Einführung in Python. Gruppe: 1 Autoren: Thomas Merkel (19868) David Höss (19182) Stefan Bisinger (19227)

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Funktionale Programmierung (in Clojure)

Dr. Monika Meiler. Inhalt

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Grundlagen von Python

Abschnitt: Algorithmendesign und Laufzeitanalyse

Programmieren in Haskell Einführung

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Tutorium Rechnerorganisation

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

Formale Sprachen und Grammatiken

Einführung in die Programmierung

Professionelle Seminare im Bereich MS-Office

Summenbildung in Bauteiltabellen mit If Then Abfrage

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

Grundbegriffe der Informatik

Python Zahlen, Strings Logik Kontrollstrukturen. Scriptsprachen. Python Basics. Sascha Winter

Programmierkurs Python I

Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen

Worum geht es in diesem Projekt?

Programmieren in Python

Java Script für die Nutzung unseres Online-Bestellsystems

Java Kurs für Anfänger Einheit 5 Methoden

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Ruby - Objektorientiertes Scripting, aber richtig!

Theoretische Grundlagen des Software Engineering

Klausur Software-Engineering SS 2005 Iwanowski

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung

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

Objektorientiertes Programmieren mit Suse Linux

Taylorentwicklung der k ten Dimension

Wir machen neue Politik für Baden-Württemberg

Landes-Arbeits-Gemeinschaft Gemeinsam Leben Gemeinsam Lernen Rheinland-Pfalz e.v.

Erster Bug: eine Motte

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Codes und Informationsgehalt

Methodische Grundlagen des Software Engineering - Übung 9

Algorithmen & Datenstrukturen 1. Klausur

Einführung Internettechnologien. - Clientseitige Programmierung -

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme.

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Kontrollstrukturen, Strukturierte Programmierung

ALP I. Funktionale Programmierung

Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik.

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Existierende Systeme I Bibliotheken & Frameworks

Funktionale Programmierung

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

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

Einführung in PHP. (mit Aufgaben)

Lua Grundlagen Einführung in die Lua Programmiersprache

Dokumentation für das Spiel Pong

Online-Publishing mit HTML und CSS für Einsteigerinnen

Erfolg beginnt im Kopf

Transkript:

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 von Amsterdam Unterstützung des strukturierten Programmierens aus der ABC-Sprache übernommen. ALGOL ABC Python Philosophie: Simplizität, Lesbarkeit und Orthogonalität Schnelle Programmentwicklung ist wichtiger als schnelle Programme 2

Skriptsprachen vs. konventionelle Sprachen Perl Tcl Rexx JavaScript ActionScript Python Ruby PHP - Web-Anwendungen - Benutzerschnittstellen - Prototyp-Entwicklung Durch die rapide Internet-Entwicklung haben Skript-Sprachen eine rasante Entwicklung erlebt. - interpretiert - dynamische Typ-Kontrolle - Kopplung-Sprachen/"glue"-Sprachen C C++ Java C# - kompiliert - statische Typ-Kontrolle - Komponentensprachen 3

Skriptsprachen vs. konventionelle Sprachen Vorteile Schnell erlernbar schnelles Prototyping Kleiner Fehlersuche-Zyklus Kleinere Programme und schnellere Entwicklung Nachteile Speicherverbrauch ist größer langsamer Keine statische Typkontrolle Für bestimmte Anwendungen nicht geeignet Unterstützen viele moderne Paradigmen Breite Verwendbarkeit in der Software-Industrie Jedoch: große Unterschiede zwischen den einzelnen Skript-Sprachen! 4

Die ABC Programmiersprache Speziell für die Lehre entwickelt als Ersatz für Basic und Pascal konzipiert die Programme sind sehr kompakt von Anfang an strukturiertes Programmieren sehr interaktiv wird interpretiert 5

GOTOs und Spaghetti code 100 GOTO 500 110 PRINT I ; 120 GOTO 400 150 PRINT I * 12 ; 160 GOTO 450 200 PRINT " = " ; 210 GOTO 150 300 PRINT " 12 " ; 310 GOTO 200 400 PRINT " * " ; 410 GOTO 300 450 I = I + 1 460 IF I > 12 THEN STOP 470 GOTO 110 500 PRINT "Result"; 510 I = 1 520 GOTO 110 Result 1 * 12 = 12 2 * 12 = 24 3 * 12 = 36... Aus Object-Oriented Programming in Java Mitchell Waite und Robert Lafore

GOTOs in Fortran 10 IF (X.GT. 0.00001) GO TO 30 20 X = -X IF (X.LT. 0.00001) GO TO 50 30 IF (X*Y.LT. 0.001) GO TO 40 X = X-Y-Y 40 X = X+Y... 50 CONTINUE X = A Y = B-A GO TO 20 7

Die GOTO-Anweisung - 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 oder unbedingte 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. 8

Python-Philosophie Lesbarkeit Pseudocode 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 Python 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 9

Python-Philosophie 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') 10

Python-Philosophie Python unterstützt mehrere Paradigmen - flexibel in der Handhabung verschiedener Programmier- Paradigmen Imperative Programmierkonzepte Objektorientierte Programmierung Funktionale Programmierung Aspektorientierte Programmierung - einfaches Einsetzen verschiedener Programmiertechniken Strukturierte Programmierung Entwurf gemäß Vertrag (DBC) 11

Python-Interpreter Linux und Mac OS Windows und Mac OS Der Python-Interpreter ist Teil der Standard- Installation. IDLE Integrierte DeveLopment Environment www.python.org/idle python python 2.x python 3.x Wir werden python 3.x verwenden. 12