Computergestützte Datenauswertung

Größe: px
Ab Seite anzeigen:

Download "Computergestützte Datenauswertung"

Transkript

1 Vorlesung: Computergestützte Datenauswertung Programmierung mit Python Günter Quast Fakultät für Physik Institut für Experimentelle Kernphysik KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft SS16

2 PYTHON & friends Literatur: python für Anfänger: (= numpy, scipy, matplotlib) kurs.eu offizielles python Tutorial: numpy tutorial: numpy reference manual matplotlib tutorial: advanced for future python programmers: ipython shell, an advanced interactive shell

3 python appetizer

4 Die Python-Shell: ein interaktiver Taschenrechner Aufruf durch Befehl python auf der Kommando-Zeile: Beispiel multiple Zuweisung Kontrollstrukturen

5 Python interaktiv: weitere Beispiele Definition einer Funktion Achtung: Einrückungen zwingend vorgeschrieben verschiedene Datenformate Typumwandlung nach float geht nicht, weil Unsinn! ( abs(a) würde gehen - ausprobieren!)

6 noch mehr Beispiele Funktion für Fibonacci-Zahlen Parameter mit Default und Name for-schleife klassische Schleife über Index Iteration über Liste

7 und noch ein Beispiel mehr zu Listen Erzeugen und Ausgabe einer Liste eine von vielen Funktionen komfortable Initialisierung Bereich aus Liste Filtern mit logischer Funktion Funktion auf alle Listenelemente Anm.: geht mit numpy-arrays auch einfacher

8 letztes Beispiel dictionaries dictionary = key-value-paare

9 Python Scripte Alles, was wir bisher gesehen haben, lässt sich auch in Form einer Text-Datei als Python Script ausführen: > python Fibonacci.py Datei Fibonacci.py #! /usr/bin/env python #-- Fibonacci numbers as python script def Fibo(min=1, max=1000): a,b=0,1 while b<max: if b>=min: print b, a,b=b,a+b print '*==* Demo Script: Fibonacci numbers' print '\n calling Fibo(max=10000)' Fibo(max=10000) print '\n calling Fibo(10000, )' Fibo(10000, ) erlaubt Ausführung direkt aus der Linux-Shell Achtung: Datei muss ausführbar sein: > chmod a+x Fibonacci.py Ausführung: >./Fibonacci.py Python-Script (= Python-Programm) erlaubt: - Dokumentation - Weiterentwicklung/Modifikation - Wiederverwendung - Weitergabe von Code

10 NumPy für Vektoren und Matrizen siehe NumPy's NumPy'smain mainobject objectisisthe thehomogeneous homogeneousmultidimensional multidimensionalarray. array. ItItisisaatable of elements (usually numbers), all of the same type, table of elements (usually numbers), all of the same type, indexed indexed by byaatuple tupleof ofpositive positiveintegers. integers.in InNumpy Numpydimensions dimensionsare are called axes. The number of axes is rank. called axes. The number of axes is rank.

11 NumPy NumPy ist ein fundamentales Paket zum wissenschaftlichen Rechnen in python zentrales Datenobjekt ist array zur Handhabung von Vektoren und Matrizen aus homogenen Datentypen (im Gegensatz zu Listen!) viele trigonometrische, hyperbolische und andere spezielle Funktionen sind implementiert Rechenoperationen wirken auf ganze arrays, hohe Verarbeitungsgeschwindigkeit durch compilierten Code Beispiel: >>> import numpy as np Einbinden von numpy als alias np >>> a=np.array([1,2,3,4],'f') >>> a array([ 1., 2., 3., 4.], dtype=float32) >>> b=np.array([0.5,1.,1.5,2.]) >>> b array([ 0.5, >>> b a 1., 1.5, 2. ]) element-weise Subtraktion array([ 0.5, 1., 1.5, 2. ]) >>> der in python bedeutet: np.array verwende Objekt array aus Paket numpy (alias np) ( auch um Methoden von Klassen anzusprechen)

12 Beispiele zu NumPy >>> import numpy as np >>> x = np.float32(1.0) >>> x 1.0 >>> y = np.array([1,2,4],'int') >>> y array([1, 2, 4]) >>> z = np.arange(3, 'uint8') >>> z array([0, 1, 2], dtype=uint8) numpy-arrays können mit verschiedenen Datentypen initialisiert werden allerdings enthält ein array immer Elemente vom gleichen Typ Datentypen: bool, int,int8,int16,int32 int64,uint8,uint16,uint32,uint64, float,float16,float32,float64, complex, complex64,complex128 >>> np.zeros(5) Initialisieren mit 0 array([ 0., 0., 0., 0., 0.]) >>> np.zeros((2,3)) 2-dim array array([[ 0., 0., 0.], [ 0., 0., 0.]]) Zahlen in Bereich mit Schrittweite >>> np.arange(2, 3, 0.1) array([ 2., 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9]) >>> np.linspace(1., 4., 6) Zahlen in Bereich mit Anzahl, array([ 1., 1.6, 2.2, 2.8, 3.4, 4. ]) obere Grenze enthalten

13 Zufall aus dem Computer numpy erlaubt es auch, Arrays (also Vektoren und Matrizen) mit Zufallszahlen zu füllen: gleichverteilte Zufallszahlen >>> np.random.rand() >>> np.random.rand() >>> np.random.rand() gleiche Funktion, aber jedes mal eine andere Zahl! >>> np.random.rand() >>> np.random.rand(3) array([ , , ]) normal-verteilte Zufallszahlen >>> np.random.randn() >>> np.random.randn() >>> np.random.randn(2) array([ , ])

14 matplotlib für's Auge siehe matplotlib user guide: making plots should be easy!

15 Einfaches Beispiel numpy & matplotlib >>> >>> >>> >>> >>> >>> >>> >>> import numpy as np import matplotlib.pyplot as plt x=np.linspace(-20.,20.,200) y=np.sin(x)/x plt.plot(x,y) plt.show()

16 matplotlib Grundlagen matplotlib einfügen import matplotlib.pyplot as plt Balkendiagramm h = [3., 5., 4., 2.] x = [1., 2., 3., 4.] plt.bar(x, y) Grafik anzeigen plt.show() Häufigkeitsverteilung Daten mit Fehlerbalken a = [1, 1, 2, 3, 3, 3, 4, 4] plt.hist(a, 4) x = [1., 2., 3., 4.] y = [3., 5., 4., 2.] e = 0.5 plt.errorbar(x, y, yerr=e, fmt='ro') Noch nicht sehr schön, aber das kriegen wir noch...

17 Falsche Daten # Messdaten = Model + Messfehler import numpy as np import matplotlib.pyplot as plt def model(x, a=1., b=0.5): return a*x+b numpy.random bietet Erzeugung von Zufallszahlen matplotlib (.pyplot.errorbar) erlaubt Darstellung von Datenpunkten mit Fehlerbalken # generate fake data according to model npoints, err =10, 1.3 xmin,xmax=1., 10. xm=np.linspace(xmin,xmax,npoints) Erzeugung normalverteilter dy=err*np.random.normal(size=npoints) Erzeugung von Zufallszahlen Zufallszahlen ym=model(xm)+dy (normalverteilt) # plot model dx=(xmax-xmin)/10. x=np.linspace(xmin-dx,xmax+dx,200) plt.plot(x,model(x),'r-') #plot fakde data Darstellung von Messplt.errorbar(xm,ym,yerr=err,fmt='bo') Darstellung von Datenpunkten plt.show() # display on screen punkten mit Fehlern mit Fehlerbalken

18 Häufigkeiten sichtbar: Histogramm import numpy as np import matplotlib.pyplot as plt # generate random normal-distributed numbers data=np.random.normal(size=100) # plot data as historgram plt.hist(data,50,normed=1) plt.show() # put on screen numpy.random bietet Erzeugung von Zufallszahlen matplotlib (.pyplot.hist) bietet Erzeugung und Darstellung von Häufigkeitsverteilungen Häufigkeitsverteilung in 50 Intervallen

19 noch schöneres Bild import numpy as np import matplotlib.pyplot as plt def fgauss(x,norm=1.,mu=0.,sigma=1.): # define Gauss-function return (norm*np.exp(-(x-mu)**2/2/sigma**2)/np.sqrt(2*np.pi)/sigma) data=np.random.normal(size=100) # generate Gaussian random data #plot function and data x = np.arange(-4., 4., 0.1) plt.plot(x, fgauss(x), 'r-') plt.hist(data,50,normed=1) # make plot nicer: plt.xlabel('x') # add labels plt.ylabel('probability density') plt.title('gauss distribution') plt.figtext(0.6, 0.8 \,r'$f(x) = N(\mu=0.,\sigma=1.)$'\,fontsize=14, color='r') # nice formula plt.grid(true) # show a grid plt.show() # on screen mit LaTeX beschriftete Grafik

20 höhere Mathematik: SciPy SciPy enthält viele weitere nützliche Pake für das wissenschaftliche Rechnen -- spezielle Funktionen der mathematischen Physik Statistik -- numerische Integration -- numerische Optimierung -- Interpolation -- Signalverarbeitung (incl. FFT) -- lineare Algebra...

21 Es gibt noch viel zu entdecken! Einfach ausprobieren... Beste Methode: Beispiele analysieren, für eigene Zwecke anpassen, weiterentwickeln.

Rechnernutzung in der Physik

Rechnernutzung in der Physik Vorlesung: Rechnernutzung in der Physik Python Günter Quast Fakultät für Physik Institut für Experimentelle Kernphysik KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Rechnernutzung in der Physik

Rechnernutzung in der Physik Vorlesung: Rechnernutzung in der Physik Python Günter Quast Fakultät für Physik Institut für ExperimentelleTeilchenphysik KIT die Forschungsuniversität in der Helmholtz-Gemeinschaft WS 2017/18 www.kit.edu

Mehr

Minimaleinführung in Python 3

Minimaleinführung in Python 3 Minimaleinführung in Python 3 Python ist eine einfach zu lernende, aber mächtige Programmiersprache mit effizienten abstrakten Datenstrukturen und einem einfachen, aber effektiven Ansatz zur objektorientierten

Mehr

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

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut Mathematisches Institut mselva@math.uni-koeln.de 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php

Mehr

Einführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen

Einführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen Einführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen Valentin Flunkert Institut für Theoretische Physik Technische Universität Berlin Fr. 28.5.2010 Nichtlineare Dynamik und Kontrolle

Mehr

Computerphysik II. Python Einführung. S. Gerlach. WiSe S. Gerlach Computerphysik II

Computerphysik II. Python Einführung. S. Gerlach. WiSe S. Gerlach Computerphysik II Computerphysik II Python Einführung S. Gerlach WiSe 2016 Programmiersprachen In der Wissenschaft: Programmiersprachen - Einteilung Eigenschaften: Skriptsprachen: Shell, Python, Perl,... Kompilierte Sprachen:

Mehr

2D - Plotten / Visualisierung

2D - Plotten / Visualisierung Fakultät Maschinenwesen Institut für Verarbeitungsmaschinen und mobile Arbeitsmaschinen 2D - Plotten / Visualisierung mit numpy und matplotlib 06.06.2011 Sebastian Voigt Wie was wo warum? Visualisierung

Mehr

1 6. Vorlesung. 1.1 Matplotlib: Graphische Darstellung, Methode der kleinsten Quadrate. Ein kleines Beispiel

1 6. Vorlesung. 1.1 Matplotlib: Graphische Darstellung, Methode der kleinsten Quadrate. Ein kleines Beispiel #!/usr/bin/env python3 # -*- coding: utf-8 -*- #Created on Tue Nov 14 14:22:01 2017 # #@author: christianehelzel 1 6. Vorlesung 1.1 Matplotlib: Graphische Darstellung, Methode der kleinsten Quadrate Ein

Mehr

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

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016 to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

Python. und statistische Methoden der Datenanalyse

Python. und statistische Methoden der Datenanalyse Python und statistische Methoden der Datenanalyse Python-Grundlagen moderne Hochsprache unterstützt Skripting (Prozeduren u. Funktionen) objektorientiet (Klassen) Funktionale Programmierung (z.b. List-Comprehension)

Mehr

Einführung in numerische Simulation mit Python

Einführung in numerische Simulation mit Python Einführung in numerische Simulation mit Python Alexander Schlemmer, Jan Schumann-Bischoff, Tariq Baig Max-Planck-Institut für Dynamik und Selbstorganisation, Biomedizinische Physik Nichtlineare Dynamik

Mehr

Computerphysik II. Python Einführung. S. Gerlach. WiSe S. Gerlach Computerphysik II

Computerphysik II. Python Einführung. S. Gerlach. WiSe S. Gerlach Computerphysik II Computerphysik II Python Einführung S. Gerlach WiSe 2017 Programmiersprachen In der Wissenschaft: Programmiersprachen - Einteilung Eigenschaften: Skriptsprachen: Shell, Python, Perl,... Kompilierte Sprachen:

Mehr

Vorlesung: Computergestützte Datenauswertung Einige (wichtige) Verteilungen

Vorlesung: Computergestützte Datenauswertung Einige (wichtige) Verteilungen Vorlesung: Computergestützte Datenauswertung Einige (wichtige) Verteilungen Günter Quast Fakultät für Physik Institut für Experimentelle Kernphysik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Mehr

Python - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure

Python - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure Python - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure Chemnitzer Linux-Tage 2012, 18. März 2012 Autor: E-Mail: Dr.-Ing. Mike Müller mmueller@python-academy.de Übersicht besondere Situation

Mehr

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

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2018 to to May 2018 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

lektion5 November 15, 2018

lektion5 November 15, 2018 lektion5 November 15, 2018 1 Computergestützte Mathematik Vorlesung vom 15.11.2018 R. Braun In [35]: #%matplotlib notebook # %matplotlib notebook muss vor dem Import von pyplot stattfinden import numpy

Mehr

Digitale Signalverarbeitung

Digitale Signalverarbeitung Vorlesung: Computergestützte Datenauswertung Digitale Signalverarbeitung Günter Quast Fakultät für Physik Institut für Experimentelle Kernphysik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Mehr

1 Motivation. Informatik I: Einführung in die Programmierung. 2 Installation. Motivation

1 Motivation. Informatik I: Einführung in die Programmierung. 2 Installation. Motivation 1 Informatik I: Einführung in die Programmierung 27. Wissenschaftliches Rechnen mit, scipy und matplotlib Albert-Ludwigs-Universität Freiburg Bernhard Nebel 06.02.2015 06.02.2015 B. Nebel Info I 3 / 33

Mehr

Informatik I. Informatik I Motivation Installation Das Modul numpy Funktionswerte zeich nen) 27.1 Motivation.

Informatik I. Informatik I Motivation Installation Das Modul numpy Funktionswerte zeich nen) 27.1 Motivation. Informatik I 06.02.2014 27. Wissenschaftliches Rechnen mit numpy, scipy und matplotlib Informatik I 27. Wissenschaftliches Rechnen mit numpy, scipy und matplotlib Bernhard Nebel Albert-Ludwigs-Universität

Mehr

Informatik I. 27. Wissenschaftliches Rechnen mit numpy, scipy und matplotlib Albert-Ludwigs-Universität Freiburg.

Informatik I. 27. Wissenschaftliches Rechnen mit numpy, scipy und matplotlib Albert-Ludwigs-Universität Freiburg. 27. Wissenschaftliches Rechnen mit, scipy und matplotlib Albert-Ludwigs-Universität Freiburg 06.02.2014 1 / 28 2 / 28 Python ist eine tolle Programmiersprache, bietet aber mehr... 3 / 28 Python ist eine

Mehr

1 Eine Einführung in die objektorientierte Programmierung

1 Eine Einführung in die objektorientierte Programmierung #!/usr/bin/env python3 # -*- coding: utf-8 -*- # """ # Created on Fri Jan 12 09:34:34 2018 # # @author: christianehelzel # """ import matplotlib.pyplot as plt 1 Eine Einführung in die objektorientierte

Mehr

Erzeugung von Zufallszahlen mit RANUNI()

Erzeugung von Zufallszahlen mit RANUNI() News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren Allgemeine Fragen zu SAS Erzeugung von Zufallszahlen mit RANUNI() 20 March, 2007-11:10 ido123 Sehr geehrte

Mehr

Einführung in Python/Matplotlib

Einführung in Python/Matplotlib Einführung in Python/Matplotlib AP/FP-Softwarekurse Markus Ühlein Fachschaft Physik TU Kaiserslautern 19. Februar 2019 Übersicht Grundlagen Plotten Fitten Weiteres 2 / 20 Python starten Konsole Konsole

Mehr

SFZPy Sj. 17/18. Python Jupyter / Spyder. SFZ 16/17 W.Seyboldt

SFZPy Sj. 17/18. Python Jupyter / Spyder. SFZ 16/17 W.Seyboldt SFZPy Sj. 17/18 Python Jupyter / Spyder 1 Python Python ist eine Skriptsprache, man muss den Pythoncode nicht zuerst kompilieren, sondern kann den Code sofort ausführen (falls er richtig ist!). Entweder

Mehr

image.png Die Dokumentation von Python, welche ich so sehr empfehle, findet ihr hier: https://py-tutorialde.readthedocs.io/de/python-3.

image.png Die Dokumentation von Python, welche ich so sehr empfehle, findet ihr hier: https://py-tutorialde.readthedocs.io/de/python-3. Einführung in Python Relevante Links Mit dem Paket "Anaconda" habt ihr sofort das wissenschaftliche Notebook "Jupyter" dabei. Hier der Downloadlink: https://www.continuum.io/downloads (https://www.continuum.io/downloads)

Mehr

Computergrafik 2: Übung 1. Eclipse, PyDev, NumPy, Matplotlib

Computergrafik 2: Übung 1. Eclipse, PyDev, NumPy, Matplotlib Computergrafik 2: Übung 1 Eclipse, PyDev, NumPy, Matplotlib Überblick 1. Einrichten der Entwicklungsumgebung 2. Python-Techniken 3. Bildverarbeitung Numpy und Matplotlib Übung Computergrafik 2 SS2012 2

Mehr

1 Autorennen ( = 11 Punkte)

1 Autorennen ( = 11 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 11.02.2016 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Autorennen (3 + 3.5 + 4.5 = 11 Punkte) Eine Physikerin beobachtet die Geschwindigkeit

Mehr

Mehrdimensionale Verteilungen und Korrelation

Mehrdimensionale Verteilungen und Korrelation Vorlesung: Computergestützte Datenauswertung Mehrdimensionale Verteilungen und Korrelation Günter Quast Fakultät für Physik Institut für Experimentelle Kernphysik SS '17 KIT Die Forschungsuniversität in

Mehr

Damit die von Matplotlib erzeugten Bilder gleich im Notebook erscheinen, braucht man das folgende "magic command":

Damit die von Matplotlib erzeugten Bilder gleich im Notebook erscheinen, braucht man das folgende magic command: Matplotlib In [1]: import numpy as np import matplotlib.pyplot as plt Damit die von Matplotlib erzeugten Bilder gleich im Notebook erscheinen, braucht man das folgende "magic command": In [2]: %matplotlib

Mehr

Inhaltsverzeichnis. Wilhelm Haager. Computeralgebra mit Maxima. Grundlagen der Anwendung und Programmierung. ISBN (Buch):

Inhaltsverzeichnis. Wilhelm Haager. Computeralgebra mit Maxima. Grundlagen der Anwendung und Programmierung. ISBN (Buch): Inhaltsverzeichnis Wilhelm Haager Computeralgebra mit Maxima Grundlagen der Anwendung und Programmierung ISBN (Buch): 978-3-446-44203-0 ISBN (E-Book): 978-3-446-43730-2 Weitere Informationen oder Bestellungen

Mehr

Programming 101. Carl Herrmann IPMB & DKFZ

Programming 101. Carl Herrmann IPMB & DKFZ Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen

Mehr

das ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse

das ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse das ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse Open-Source framework zur Datenanalyse (C++-Klassenbobliothek). Entwickelt hauptsätzlich am CERN, Standardwerkzeug in der Teilchenphysik.

Mehr

1 10. Vorlesung: Die QR Zerlegung

1 10. Vorlesung: Die QR Zerlegung #!/usr/bin/env python3 # -*- coding: utf-8 -*- # """ # Created on Mon Dec 11 17:44:18 2017 # # @author: christianehelzel # """ 1 10. Vorlesung: Die QR Zerlegung Ziel: Finde eine Zerlegung der Matrix A

Mehr

Funktionen. Theorie. Inhaltsverzeichnis. Programmieren mit Python Modul 4. 1 Modulübersicht 3

Funktionen. Theorie. Inhaltsverzeichnis. Programmieren mit Python Modul 4. 1 Modulübersicht 3 Programmieren mit Python Modul 4 Funktionen Theorie Inhaltsverzeichnis 1 Modulübersicht 3 2 Funktionen 3 2.1 Funktionen ohne Rückgabewert (Prozeduren)............... 3 2.2 Funktionen mit Parametern.........................

Mehr

1 Wiederholung: Definition von Arrays

1 Wiederholung: Definition von Arrays #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon Nov 6 13:31:07 2017 @author: christianehelzel """ # 5. Vorlesung Created on Mon Nov 6 13:31:07 2017 @author: christianehelzel 1 Wiederholung:

Mehr

Wilhelm Haager. Computeralgebra. mit Maxima. Grundlagen der Anwendung und Programmierung. Fachbuchverlag Leipzig. im Carl Hanser Verlag

Wilhelm Haager. Computeralgebra. mit Maxima. Grundlagen der Anwendung und Programmierung. Fachbuchverlag Leipzig. im Carl Hanser Verlag Wilhelm Haager Computeralgebra mit Maxima Grundlagen der Anwendung und Programmierung Fachbuchverlag Leipzig im Carl Hanser Verlag Inhalt Q Einführung 13 1.1 Grundlegendes 13 1.1.1 Motivation 14 1.1.2

Mehr

Simulierte Daten: die Monte Carlo - Methode

Simulierte Daten: die Monte Carlo - Methode Vorlesung: Computergestützte Datenauswertung Simulierte Daten: die Monte Carlo - Methode Günter Quast Fakultät für Physik Institut für Experimentelle Kernphysik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

Mehr

(I)Python in Labor & Lehre

(I)Python in Labor & Lehre Prof. Dr. Christian Münker (I)Python in Labor & Lehre Hochschule München, Oktober 2014 und wie sieht es aus? def fib(n): """ Berechne Fibonacci-Zahlen """ print('n =', n) # für Python 3.x if n > 1: return

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

1 12. Vorlesung: Singulärwertzerlegung,

1 12. Vorlesung: Singulärwertzerlegung, #!/usr/bin/env python3 # -*- coding: utf-8 -*- # """ # Created on Fri Jan 5 23:57:22 2018 # # @author: christianehelzel # """ 1 12. Vorlesung: Singulärwertzerlegung, 1.1 Teil 2 Datenkompression in der

Mehr

Informatik für Mathematiker und Physiker Woche 6. David Sommer

Informatik für Mathematiker und Physiker Woche 6. David Sommer Informatik für Mathematiker und Physiker Woche 6 David Sommer David Sommer October 31, 2017 1 Heute: 1. Rückblick Übungen Woche 5 2. Libraries 3. Referenzen 4. Step-Wise Refinement David Sommer October

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

D-MATH Numerische Methoden FS 2019 Dr. Vasile Gradinaru Marco Petrella. Serie 1

D-MATH Numerische Methoden FS 2019 Dr. Vasile Gradinaru Marco Petrella. Serie 1 D-MATH Numerische Methoden FS 2019 Dr. Vasile Gradinaru Marco Petrella Serie 1 Best before: Di. 26.2 / Mi. 27.2, in den Übungsgruppen Koordinatoren: Marco Petrella, HG J 45, marco.petrella@sam.math.ethz.ch

Mehr

das ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse

das ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse das ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse Open-Source framework zur Datenanalyse (C++-Klassenbobliothek). Entwickelt hauptsächlich am CERN, Standardwerkzeug in der Teilchenphysik.

Mehr

Toolbox Workshop. PeP et al. e.v. Nützliche Programme für Physikstudenten. Igor Babuschkin Kevin Dungs Christian Gerhorst.

Toolbox Workshop. PeP et al. e.v. Nützliche Programme für Physikstudenten. Igor Babuschkin Kevin Dungs Christian Gerhorst. Toolbox Workshop Nützliche Programme für Physikstudenten Igor Babuschkin Kevin Dungs Christian Gerhorst Peter Lorenz Ismo Toijala PeP et al. e.v. September 2012 PeP et al. www.pep-dortmund.org Der Verein

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

Multimedia Programmierung mit Python

Multimedia Programmierung mit Python Multimedia Programmierung mit Python Nils Werner Stefan Balke 12. August, 2015 Grundlagen Hallo Welt print("hallo Welt") $ python hallo.py 3 Einfache Variablen a = 1 b = 1.5 s = "Hallo" # Ganzzahl # Dezimalzahl

Mehr

D-MATH Numerische Methoden FS 2018 Dr. Vasile Gradinaru Kjetil Olsen Lye. Serie 1

D-MATH Numerische Methoden FS 2018 Dr. Vasile Gradinaru Kjetil Olsen Lye. Serie 1 D-MATH Numerische Methoden FS 2018 Dr. Vasile Gradinaru Kjetil Olsen Lye Serie 1 Best before: Di. 6.3 / Mi. 7.3, in den Übungsgruppen Koordinatoren: Kjetil Olsen Lye, HG G 56.1, kjetil.lye@sam.math.ethz.ch

Mehr

Physik auf dem Computer Wiederholung: Python, NumPy und C

Physik auf dem Computer Wiederholung: Python, NumPy und C Physik auf dem Computer Wiederholung: Python, NumPy und C Axel Arnold Olaf Lenz Institut für Computerphysik Universität Stuttgart Sommersemester 2012 Python Wiederholung der wichtigsten Eckpunkte interpretierte

Mehr

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

Crashkurs Python und Sage U23 Krypto-Mission

Crashkurs Python und Sage U23 Krypto-Mission Crashkurs Python und Sage -Mission florob Simon e.v. http://koeln.ccc.de 4. Oktober 2015 Anfang Übersicht Sage Computer-Algebra-System, wie MatLab oder Mathematica sagemath.org Python interpretierte Programmiersprache

Mehr

C++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

C++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16 C++ Teil 5 Sven Groß 16. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 16. Nov 2015 1 / 16 Themen der letzten Vorlesung Namensräume Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung

Mehr

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press Thomas Theis PHP4 Webserver-Programmierung für Um- und Einsteiger Galileo Press Inhalt Einführung 11 A.1 PHP-eine Beschreibung 11 A.2 Wie lerne ich PHP? 11 A.2.1 Grundlagen 12 A.2.2 Formulare und Datenbanken

Mehr

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Teil XII. Wissenschaftliches Rechnen in Python

Teil XII. Wissenschaftliches Rechnen in Python Teil XII Wissenschaftliches Rechnen in Python IN8008, Wintersemester 2015/2016 294 Nochmal Modul math Konstanten pi und e Funktionen für int und float Alle Rückgabewerte sind float ceil (x) floor (x) exp

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/

Mehr

WS2017/ Oktober 2017

WS2017/ Oktober 2017 Einführung in die Programmierung Ronja Düffel WS2017/18 09. Oktober 2017 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

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

Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014 Python 2! Vorlesung Computerlinguistische Techniken Alexander Koller! 28. Oktober 2014 Listen Sequenz von beliebigen Werten. Literale: [], [1,2,3], [ hallo, True, -5.0] Hinten an Liste anhängen: L.append(27)

Mehr

Serie 2. D-MATH Numerische Methoden FS 2016 Dr. Vasile Gradinaru Luc Grosheintz

Serie 2. D-MATH Numerische Methoden FS 2016 Dr. Vasile Gradinaru Luc Grosheintz D-MATH Numerische Methoden FS 206 Dr. Vasile Gradinaru Luc Grosheintz Serie 2 Abgabedatum: Di. 4.3 / Mi. 5.3 oder früher, in den Übungsgruppen Koordinatoren: Luc Grosheintz, HG J 46, luc.grosheintz@sam.math.ethz.ch

Mehr

Teil XII. Wissenschaftliches Rechnen in Python

Teil XII. Wissenschaftliches Rechnen in Python Teil XII Wissenschaftliches Rechnen in Python IN8008, Wintersemester 2013/2014 257 Nochmal Modul math Konstanten pi und e Funktionen für int und float Alle Rückgabewerte sind float ceil (x) floor (x) exp

Mehr

BER-Basisband. October 12, 2017

BER-Basisband. October 12, 2017 BER-Basisband October 12, 2017 1 Bitübertragung - Basis- und Breitbandverfahren Wir betrachten hier die Übertragung von Daten mit unterschiedlichen Modulationstechniken und die sich dabei einstellenden

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

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

Statistics, Data Analysis, and Simulation SS 2015

Statistics, Data Analysis, and Simulation SS 2015 Mainz, May 12, 2015 Statistics, Data Analysis, and Simulation SS 2015 08.128.730 Statistik, Datenanalyse und Simulation Dr. Michael O. Distler Dr. Michael O. Distler

Mehr

Teil XI. Wissenschaftliches Rechnen in Python

Teil XI. Wissenschaftliches Rechnen in Python Teil XI Wissenschaftliches Rechnen in Python IN8008, Wintersemester 2011/2012 222 Nochmal Modul math Konstanten pi und e Funktionen für int und float Alle Rückgabewerte sind float ceil (x) floor (x) exp

Mehr

Inhaltsverzeichnis. Ulrich Stein. Einstieg in das Programmieren mit MATLAB ISBN: Weitere Informationen oder Bestellungen unter

Inhaltsverzeichnis. Ulrich Stein. Einstieg in das Programmieren mit MATLAB ISBN: Weitere Informationen oder Bestellungen unter Inhaltsverzeichnis Ulrich Stein Einstieg in das Programmieren mit MATLAB ISBN: 978-3-446-42387-9 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42387-9 sowie im Buchhandel.

Mehr

pandas ist ein Modul, das Datencontainer anbietet, ähnlich den DataFrames in R Die wich gsten Datencontainer sind: pandas.

pandas ist ein Modul, das Datencontainer anbietet, ähnlich den DataFrames in R Die wich gsten Datencontainer sind: pandas. Lecture 9. Modules - pandas Matthias Bieg pandas: Intro Was ist pandas pandas ist ein Modul, das Datencontainer anbietet, ähnlich den DataFrames in R Die wich gsten Datencontainer sind: pandas.series,

Mehr

Fourier. October 12, 2017

Fourier. October 12, 2017 Fourier October 12, 2017 1 Baseband bit transmission and Fourier transforms In this assignment, we will look at how signals propagate over a bandlimited channel and what that does to bitshapes. We start

Mehr

Projektkurs MATLAB. ik i i ITK Engineering AG 1

Projektkurs MATLAB. ik i i ITK Engineering AG 1 Projektkurs MATLAB Wintersemester t 2011/2012 Dr-Ing Houssem Abdellatif Teamleiter Control Systems & Model Based Design houssemabdellatif@itk-engineeringde wwwitk-engineeringde ik i i 14112011 ITK Engineering

Mehr

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A2. Eine sehr kurze Einführung in Python Marcel Lüthi and Gabriele Röger Universität Basel 28. Februar 2018 Python Python interpretierte High-Level-Programmiersprache unterstützt

Mehr

Komplexe Analysis D-ITET. Serie 4

Komplexe Analysis D-ITET. Serie 4 Prof. Dr. P. S. Jossen M. Wellershoff Frühlingssemester 08 Komplexe Analysis D-ITET Serie 4 ETH Zürich D-MATH Aufgabe 4. Benutzen Sie Ihre Lieblingsprogrammiersprache, um die folgenden Vektorfelder zu

Mehr

Teil XII. Wissenschaftliches Rechnen in Python. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2017/

Teil XII. Wissenschaftliches Rechnen in Python. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2017/ Teil XII Wissenschaftliches Rechnen in Python T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2017/2018 304 Konzept von Teil XII: Wissenschaftliches Rechnen in Python

Mehr

Ulrich Stein. Einstieg in das Programmieren. mit MATLAB. 2., aktualisierte Auflage. Mit 153 Bildern. Fachbuchverlag Leipzig im Carl Hanser Verlag

Ulrich Stein. Einstieg in das Programmieren. mit MATLAB. 2., aktualisierte Auflage. Mit 153 Bildern. Fachbuchverlag Leipzig im Carl Hanser Verlag Ulrich Stein Einstieg in das Programmieren mit MATLAB 2., aktualisierte Auflage Mit 153 Bildern Fachbuchverlag Leipzig im Carl Hanser Verlag Inhalt 1 Einführung 14 1.1 Hello, world 14 1.2 Datenverarbeitung

Mehr

Eine sehr kurze Einführung in Python und SimpleITK Teil 1 richard rascher-friesenhausen

Eine sehr kurze Einführung in Python und SimpleITK Teil 1 richard rascher-friesenhausen Hochschule Bremerhaven Medizinische Bildverarbeitung SS 18 MT-B 6 Eine sehr kurze Einführung in Python und SimpleITK Teil 1 richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.de

Mehr

1 Berechnung von Summen (ca = 10 Punkte)

1 Berechnung von Summen (ca = 10 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 26.02.2013 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Berechnung von Summen (ca. 5 + 4 + 1 = 10 Punkte) Gegeben sind natürliche

Mehr

Rechnernutzung in der Physik

Rechnernutzung in der Physik Rechnernutzung in der Physik Empfohlene Arbeitsumgebung Prof. Günter Quast, Prof. Matthias Steinhauser, Dr. Achim Mildenberger Fakultät für Physik Institut für Experimentelle Kernphysik KIT Die Forschungsuniversität

Mehr

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 02. Oktober 2018 RBI-Account Account für das Rechnernetz der Informatik RBI-Account HRZ-Account zum Arbeiten an und auf den Rechnern des Instituts

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 Anweisungen mit Variablen Wiederholung Deklaration

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

Beispiellösung zu Aufgabe 10.3c)

Beispiellösung zu Aufgabe 10.3c) Beispiellösung zu In waren mittels zweier verschiedener Verfahren standardnormalverteilte Zufallsvariablen jeweils 100.000 mal zu simulieren. Methode aus 5.3b) (Inversionsmethode): Es wird eine gleichverteilte

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Python als praktischer Helfer

Python als praktischer Helfer Python als praktischer Helfer Ulrich Schumann 01.02.2016 IEEE Student Branch Magdeburg Geschichte Geschichte Entwicklung gestartet durch Guido van Rossum 3/45 Guido van Rossum 4/45 Geschichte Entwicklung

Mehr

A2.1 Python. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A2.1 Python. A2.2 Kurzer Sprachüberblick. A2.3 Selectionsort in Python

A2.1 Python. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A2.1 Python. A2.2 Kurzer Sprachüberblick. A2.3 Selectionsort in Python Algorithmen und Datenstrukturen 28. Februar 2018 A2. Eine sehr kurze Einführung in Python Algorithmen und Datenstrukturen A2. Eine sehr kurze Einführung in Python A2.1 Python Marcel Lüthi and Gabriele

Mehr

Inhaltsverzeichnis. Ulrich Stein. Programmieren mit MATLAB. Programmiersprache, Grafische Benutzeroberflächen, Anwendungen

Inhaltsverzeichnis. Ulrich Stein. Programmieren mit MATLAB. Programmiersprache, Grafische Benutzeroberflächen, Anwendungen Inhaltsverzeichnis Ulrich Stein Programmieren mit MATLAB Programmiersprache, Grafische Benutzeroberflächen, Anwendungen ISBN (Buch): 978-3-446-43243-7 ISBN (E-Book): 978-3-446-43319-9 Weitere Informationen

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Kurze Einführung in (I)Python und Matplotlib richard rascher-friesenhausen

Kurze Einführung in (I)Python und Matplotlib richard rascher-friesenhausen 1 BSV MT-B 5, WS 15/16 Kurze Einführung in (I)Python und Matplotlib richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.de Mit der Programmiersprache Python und dem zusätzlichen

Mehr

Algorithmik und Programmieren

Algorithmik und Programmieren 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

Mehr

Lösen Sie mindestens 7 der folgenden Aufgaben. Abgabe: nächster Termin (21.Mai 2019).

Lösen Sie mindestens 7 der folgenden Aufgaben. Abgabe: nächster Termin (21.Mai 2019). Image Tutorial 2 MBV - SS19, richard rascher-friesenhausen Dies ist der zweite Teil einer sehr, sehr kurze Einführung zu Python und den Möglichkeiten, vermittels des Moduls SimpleITK Bilder zu bearbeiten.

Mehr

1 14. Vorlesung: Klassen, Vererbung

1 14. Vorlesung: Klassen, Vererbung #!/usr/bin/env python3 # -*- coding: utf-8 -*- # """ # Created on Mon Jan 22 10:06:38 2018 # # @author: christianehelzel # """ 1 14. Vorlesung: Klassen, Vererbung Wir betrachten Beispiele aus dem Buch

Mehr

Ingenieurmathematik mit Computeralgebra-Systemen

Ingenieurmathematik mit Computeralgebra-Systemen Hans Benker Ingenieurmathematik mit Computeralgebra-Systemen AXIOM, DERIVE, MACSYMA, MAPLE, MATHCAD, MATHEMATICA, MATLAB und MuPAD in der Anwendung vieweg X Inhaltsverzeichnis 1 Einleitung 1 1.1 Ingenieurmathematik

Mehr

Informatik II Übung, Woche 10

Informatik II Übung, Woche 10 Giuseppe Accaputo 10. März, 2016 Plan für heute 1. Typumwandlung (Typecasts) 2. Ordnerstruktur für Übungen 3. Vorbesprechung Übung 3 4. Nachbesprechung Übung 2 (inkl. Live Programmierung) Informatik II

Mehr