Algorithmik und Programmieren

Ähnliche Dokumente
Brückenkurs Informatik Algorithmik und Programmieren. Justus Piater

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

WS2018/ Oktober 2018

Algorithmik und Programmieren

WS2017/ Oktober 2017

Quick-Start Informatik Programmieren in Python Teil 1

Programmierkurs Python I

Einführung in die Programmiertechnik

Programmierkurs Python I

Angewandte Mathematik und Programmierung

Übungszettel 2a - Python

Einstieg in die Informatik mit Java

Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13

Programming 101. Carl Herrmann IPMB & DKFZ

Python Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Einführung in die Programmierung mit VBA

WS2017/ Oktober 2017

WS2018/ Oktober 2018

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Informatik I: Einführung in die Programmierung

Python als praktischer Helfer

Einstieg in die Informatik mit Java

Python zur Lösung von AvA Übung 1 VON MORITZ FEY

Einführung in die Computerlinguistik

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Grundlagen von C# - 1

Ausnahmen-Behandlung

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

Programmieren in Python

Algorithmen und Programmieren II Einführung in Python

RO-Tutorien 3 / 6 / 12

Quick-Start Informatik Programmieren in Python Teil 2

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Informatik I: Einführung in die Programmierung

Python Workshop i. Python Workshop

2 Programmieren in Java I noch ohne Nachbearbeitung

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

RO-Tutorien 15 und 16

Einstieg in die Informatik mit Java

Vorlesung Programmieren

Arithmetik in der tcsh

Welche Informatik-Kenntnisse bringen Sie mit?

Teil II. Datentypen. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2017/

Python für Linguisten

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Crashkurs Python und Sage U23 Krypto-Mission

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

JAVA-Datentypen und deren Wertebereich

Java Anweisungen und Ablaufsteuerung

Informatik I Übung, Woche 40

Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014

Programmieren in Python

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Vorlesung Programmieren

Algorithmik und Programmieren

Praktische Informatik 1

Anweisungen in Python

Skriptsprachen: Python

2. Programmierung in C

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Algorithmen zur Datenanalyse in C++

Programmieren in Python

Einstieg in die Informatik mit Java

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Programmieren Vorkurs

C++ - Einführung in die Programmiersprache Schleifen

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Fragenkatalog ESOP WS 16/17

Einführung in die Programmierung Debugging

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

Elementare Konzepte von

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Programmieren in Python 3. Variablen, Funktionen und Bedingungen

2. Programmierung in C

Programmieren in Python

Unterlagen. CPP-Uebungen-08/

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Java I Vorlesung Imperatives Programmieren

Bru ckenkurs Programmieren

Programmieren in Python

Syntax der Sprache PASCAL

Grundlagen der Modellierung und Programmierung, Übung

Informatik I Übung, Woche 40

Girls Day 2017 Programmierung

Zahlen raten. Al Sweigart, Eigene Spiele programmieren Python lernen, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI

Transkript:

Institut für Informatik Forschungsgruppe Datenbanken und Informationssysteme (DBIS) Universität Innsbruck Algorithmik und Programmieren Martin Pichl Datenbanken und Informationssysteme (DBIS) dbis.uibk.ac.at martin.pichl@uibk.ac.at 25. September 2017

Inhalt 1 Organisation Theoretischer Input 0: Was ist Python? Theoretischer Input I: Datentypen & Variablen Theoretischer Input II: Kontrollfluss Theoretischer Input III: Funktionen & Module

Organisation Zielgruppe 2 Einsteiger in die Informatik Studierende ohne Programmierkenntnisse

Organisation Teilnahme 3 Die Teilnahme am Kurs ist freiwillig Gruppenarbeit ist ausdrücklich erwünscht Helfen Sie anderen Studierenden, das hilft auch Ihnen Erst wenn Sie die Lösungen erklären können, habe Sie das Problem wirklich verstanden! Stellen Sie Fragen! Melden Sie sich, wenn es zu schnell oder zu langsam geht

Organisation Ablauf 4 Theorieblock vor jeder Einheit Praktische Übungen Sie lernen am meisten, wenn Sie selbst programmieren Auch in Gruppen sollte jeder selbst programmieren

Organisation Ziele 5 Python kennen lernen Grundlagen der Programmierung Probleme zu abstrahieren und zu Lösen

Organisation Termine 6 Montag, von 14.15 16.00 Uhr Dienstag, von 14.15 17.00 Uhr Mittwoch, von 11.15 13.00 Uhr und 14.15 16.00 Uhr Mittwoch, von 12.15 13.00 Uhr und 14.15 17.00 Uhr Donnerstag, von 11.15 13.00 Uhr Freitag, von 12.15 13.00 Uhr und 14.15 16.00 Uhr

Organisation Kontakt 7 Feedback und Fragen bitte an martin.pichl@uibk.ac.at Danke an Benedikt Hupfauf für das zur Zurverfügungstellen der Unterlagen

Theoretischer Input 0: Was ist Python?

Theoretischer Input 0 Was ist Python? 8 Python ist eine junge Skriptsprache es wird ein ein Interpreter benötigt Zwei Versionen sind verbreitet Python 2: weit verbreitet, Zukunft? Python 3: neue Features, semantisch korrekter Wir verwenden Python 3 in diesem Kurs

Theoretischer Input 0 Was ist Python? 9 Open Source Plattformunabhängige Skriptsprache Einfach, verständlich und schnell zu erlernen Unterstützt verscheiden Paradigmen Umfassende Standardbibliothek Viele weitere nützliche Bibliotheken (!) Nachfrage nach Python Programmierern steigt :)

Theoretischer Input 0 Was ist Python? 10 Source: kdnuggets.com

Theoretischer Input 0 Hilfreiche Ressourcen 11 Die Python Dokumentation docs.python.org Stack Overflow Community stackoverflow.com Stack Quora quora.com Online Bücher, Tutorials und Kurse: A Byte of Python The Python Tutorial...

Theoretischer Input I: Datentypen & Variablen

Theoretischer Input I Datentypen 12 Python liefert Datentypen für die gängigsten Anwendungen ( Built-in Types ): Strings (Zeichenketten, Text): This is text! Integer (Ganzzahlen): 1, 0xFF, 0b100 Float (Gleitkommazahlen): 1.35, 1.56e-5 (entspricht 1.56 10 5) Complex (Komplexe Zahlen): 2+3j Bool (Wahr/Falsch): True, False

Theoretischer Input I Hello World 13 Python bietet zwei Möglichkeiten ein Programm auszuführen Interaktiv (Command Prompt / Shell) Python Skript Schreiben Sie ihr erstes Hello World Programm

Theoretischer Input I Variablen 14 Konstanten (wie eben benutzt) sind nicht immer ausreichend Variablen können beliebige Werte zugewiesen werden In Python muss der Typ nicht vorher bekannt gegeben werden und kann sich zur Laufzeit ändern Der dynamischen Typ bestimmt welche Operationen für diese Variable zulässig sind

Theoretischer Input I Variablennamen 15 Gültige Variablennamen sind eine beliebige Kombination aus folgenden Zeichen: a-z, A-Z, 0-9 und _. Beachten Sie folgende Ausnahmen: Variablennamen dürfen nicht mit einer Ziffer beginnen Reservierte Schlüsselwörter: and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield Variablen sollten einen selbsterklärenden Namen haben

Theoretischer Input I Ausdrücke 16 Sie können mit Ausdrücken Variablen Werte zuweisen. Hierfür stellt Python bereits viele Operatoren bereit, beispielsweise +, *, <, =, == uvm.. Beachten Sie, dass = einer Variable einen Wert zuweist, während == zwei Werte vergleicht ohne sie zu verändern. 1 >>> x = 2 + 1 2 >>> x = 2 * x 3 >>> print (x) 4 6 5 >>> x == 5 6 False 7 >>> print (x) 8 6

Theoretischer Input I Operatoren Präzedenz 17 Die Operatoren Präzedenz bestimmt, in welcher Reihenfolge die Operatoren angewandt werden Damit wird bestimmt wie Ausdrücke evaluiert werden Logische vs. Bitweise Operatoren The Python Language Reference 6.16. Operator precedence

Übung Input I Variablen 18 Unterlagen: http://bit.ly/2ybba4h

Theoretischer Input II: Kontrollfluss

Theoretischer Input II Kontrollfluss if-statement 19 Anweisungen werden sequentiell ausgeführt Ist das nicht genug, kann der Kontrollfluss gesteuert werden Das if-statement Führt einen Code Block nur aus, wenn die Bedingung <condition> erfüllt ist: Kann optimal mit einem else-block ergänzt werden,der ausgeführt wird, wenn die Bedingung nicht erfüllt ist. 1 if <condition >: 2 <executed when condition true > 3 else : 4 <executed when condition false >

Theoretischer Input II Kontrollfluss if-statement Beispiel I 20 1 >>> if a < 0: 2... print ( a is negative ) 3... print ( this line belongs to the same codeblock ) 4 >>> print ( this is a new code block and always executed ) Im Gegensatz zu den meisten Programmiersprachen ist die Einrückung in Python nicht optional, sondern definiert einen Codeblock Sie können Code mit <tab> oder mit 2-4 Leerzeichen einrücken, sollten aber bei einer dieser Optionen bleiben.

Theoretischer Input II Kontrollfluss if-statement Beispiel II 21 1 >>> if a < 0: 2... print ( a is negative ) 3 >>> elif a > 0: 4... print ( a is positive ) 5 >>> else : 6... print ( a must be zero then ) Das Schlüsselwort elif <other condition>: ist eine Kurzschreibweise für das häufig gebrauchte else: if <other condition>:

Theoretischer Input II Kontrollfluss while-statement 22 Mit dem while-statement wird ein Programmblock wiederholt solange die Bedingung <condition> erfüllt ist. Optional kann ein else Block angegeben werden, der einmal ausgeführt wird, sobald die Bedingung nicht mehr erfüllt ist. 1 wile <condition >: 2 <executed as long as condition is true > 3 else : 4 <executed once after the condition is false >

Theoretischer Input II Kontrollfluss while-statement Beispiel 23 1 >>> i = 0 2 >>> while i < 3: 3... print ( i is:, str (i)) 4... i = i + 1 5 >>> else : 6... print ( end ) 7... 8 i is: 0 9 i is: 1 10 i is: 2 11 end Achten Sie darauf, dass die Bedingung nicht für immer TRUE sein darf, da die Schleife sonst endlos ist. Der Code Block des else-statements wird immer genau einmal ausgeführt. Was passiert, wenn das while-statement print( i is: + str(i)) aufruft?

Theoretischer Input II Kontrollfluss Break and Continue 24 Eine Schleife muss nicht immer bis zum Ende ausgeführt werden. Mit dem Schlüsselwort continue wird der aktuelle Schleifendurchlauf abgebrochen. Mit dem Schlüsselwort break wir die Schleife sofort beendet; auch das else-statement wird übersprungen 1 >>> i = 0 2 >>> while i < 1000: 3... i = i + 1 4... if i == 4: break 5... if i == 1: continue 6... print ( i is:, str (i)) 7... else : 8... print ( end ) 9... 10 i is: 2 11 i is: 3

Theoretischer Input III: Funktionen & Module

Theoretischer Input III Funktionen 25 Häufig verwendete Codeteile können in Funktionen ausgelagert werden Eine Funktion sollte immer genau einen Zweck erfüllen! Funktionen können, müssen aber keinen Rückgabewert haben (Schlüsselwort return). Die Parameterliste <parameters> kann beliebig lang, also auch leer, sein. 1 def <function name >( < parameters >): 2 <function code >

Theoretischer Input III Funktionen Beispiel 26 Die folgenden Minimalbeispiele sollen nur zeigen wie Funktionen definiert werden können. Eine Funktion umfasst typischerweise mehr als nur eine Zeile Code. 1 >>> def mul (x, y): 2... return x * y 3... 4 >>> mul (2,3) 5 6 1 >>> def printabc (): 2... print ( abcdefghijklmnopqrstuvxyz ) 3... 4 >>> printabc () 5 abcdefghijklmnopqrstuvxyz

Theoretischer Input III Funktionen Beispiele 27 Python bietet eine große Auswahl an Funktionen, die bereits vorimplementiert sind Funktionen die zusammen gehören werden in Module ausgelagert, etwa das Modul math, in dem Sie zahlreiche Funktionen aus der Mathematik finden. Werden Funktionen aus einem Modul benötigt, muss dieses explizit geladen werden. 1 >>> import math 2 >>> math. sin (45) 3 0.8509035245341184 4 >>> from math import sin 5 >>> sin (45) 6 0.8509035245341184

Bis zum nächsten Mal :)