Listenverarbeitung in Python
|
|
|
- Florian Maier
- vor 9 Jahren
- Abrufe
Transkript
1 Listenverarbeitung in Python Datentypen für Sequenzen von Objekten: Tupel, Listen und Strings Tupel und Listen sind analog zu Haskells Tupel und Listen: (1, 2, 3) 3-Tupel aus den Zahlen 1,2,3, [1, 2, 3] Liste der Zahlen 1,2,3 Tupel haben feste Länge. Listen haben variable Länge P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 1
2 Listenfunktionen in Python Hauptfunktionalität der Listenfunktionen ist analog zu Haskell. Präfix-Schreibweise: Attribut-Schreibweise: I.a. Keine destruktiven Änderungen destruktive Änderungen möglich Hier ein Auszug aus einer Dokumentation zu Python. Operationen auf allen Arten von Folgen (Listen, Tupel, Strings) Aus Quick-Reference P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 2
3 Operation Resultat Bem. x in s True wenn ein Eintrag von s = x, sonst False x not in s False wenn ein Eintrag von s gleich x, sonst True s + t Konkatenation von s und t s n n Kopien von s aneinander gehängt s[i] i-es Element von s, Start mit 0 (1) s[i : j] Teilstück s ab i (incl.) bis j (excl.) (1), (2) len(s) Länge von s min(s) Kleinstes Element von s max(s) Größtes Element von s
4 Dokumentation: Bemerkungen (1) Wenn i oder j negativ ist, dann ist der Index relativ zum Ende des String, d.h. len(s)+i oder len(s)+j wird eingesetzt. Beachte, dass -0 = 0. (2) Das Teilstück von s von i bis j wird definiert als die Folge von Elementen mit Index k mit i <= k < j. Wenn i oder j größer als len(s) sind, nehme len(s). Wenn i weggelassen wurde, nehme len(s). Wenn i j, dann ist das Teilstück leer. P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 4
5 Operation auf Listen (in Attributschreibweise) Operation Resultat s[i] = x item i von s ersetzt durch x s[i : j] = t Unterliste s von i bis j ersetzt durch t del s[i : j] dasselbe wie s[i : j] = [] s.append(x) dasselbe wie s[len(s) : len(s)] = [x] s.extend(x) dasselbe wie s[len(s) : len(s)] = x s.count(x) Return: Anzahl der i mit s[i] == x s.index(x) Return: kleinstes i mit s[i] == x s.insert(i, x) dasselbe wie s[i : i] = [x] wenn i >= 0 s.remove(x) dasselbe wie del s[s.index(x)] s.pop([i]) dasselbe wie x = s[i]; del s[i]; return x s.reverse() Umdrehen von s in place s.sort([cmpf ct]) Sortiere s in place cmpfct: optional bei eigener nicht Standard cmpfct: return 1, 0, 1, wenn x < y, x = y, x > y sein soll P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 5
6 Seiteneffekte der Listen-Funktionen Python-Listen-Funktionen haben meist Seiteneffekte s.count(x) und s.index(x) haben keine Seiteneffekte. Die anderen Funktionen modfizieren die Liste direkt. P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 6
7 Weitere Listen-Funktionen In Präfix-Schreibweise: Operation Resultat map(f,s) Liste [f s[0], f s[1],... ] filter(p,s) Liste der Elemente mit p(s[i]) = True s + t Liste der Elemente aus s und t. reduce(op,s) s[0] op s[1] op... reduce(op,s,init) Dasselbe wie init op (reduce(op,s)) zip(s,t) Liste der Paare der Elemente von s,t. Rückgabewert i.a. analog zu dem der entsprechenden Haskellfunktion P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 7
8 Beispiele Wir geben zur Listenverarbeitung in Python einige Beispiele an: >>> range(20) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> range(5,10) [5, 6, 7, 8, 9] >>> len(range(10)) 10 >>> len(range( )) Traceback (most recent call last): File "<input>", line 1, in? MemoryError >>>len(xrange( )) >>> a = [ a, b, c ] P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 8
9 >>> a [ a, b, c ] >>> b = [3,4,5] >>> a.extend(b) >>> a [ a, b, c, 3, 4, 5] ## a ist modifiziert >>> b [3, 4, 5] >>> a.append(b) >>> a [ a, b, c, 3, 4, 5, [3, 4, 5]] >>> a.reverse() >>> a [[3, 4, 5], 5, 4, 3, c, b, a ] >>> b [3, 4, 5] ## b bleibt >>> b.reverse() >>> a [[5, 4, 3], 5, 4, 3, c, b, a ] ## a ist modifiziert! a.extend(b) verwendet eine Kopie der Liste b
10 mittels while oder for: Beispiel für for: >>> for i in range(1,11):... print(i) >>> Schleifen in Python P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 10
11 Beispiele zu vordefinierten Listenfunktionen Listenfunktionen analog zu Haskells map, filter, und reduce map, filter, und foldl Folgende Funktion listcopy erzeugt eine Kopie einer Liste: def id(x): return x def listcopy(x): return map(id, x) def geradeq(n): return n%2 == 0 >>> filter(geradeq,range(20)) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>> map(quadrat,range(1,10)) [1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [1,2,3]+[11,12,13] [1, 2, 3, 11, 12, 13] P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 11
12 Beispiele zu vordefinierten Listenfunktionen (2) def add(x,y): return x+y >>> reduce(add,range(100)) 4950 def mal(x,y): return x*y def fakultaetred(n): return reduce(mal,range(1,n+1)) P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 12
13 Folgendes ist möglich Alias-Namens-Problematik Variablen, die in einem Aufruf f(t 1,..., t n ) nicht erwähnt werden, können nach der Auswertung dieses Aufrufs andere Werte haben. Alias-Problematik (Aliasing): tritt auf, wenn der gleiche Speicherbereich unter verschiedenen Namen referenziert wird (s.u.) Effekt: Der Wert einer Variablen x kann sich im Laufe der Programmbearbeitung verändern, ohne dass diese Variable in einem Befehl, der den Speicher verändert, vorkommt. Vorsicht bei xxy wurde im Aufruf nicht erwähnt, also ist es nach der Auswertung des Aufrufs f(z) nicht verändert?? P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 13
14 Alias-Namens-Problematik; Beispiel >>> a = [3,2,1] >>> b = a >>> a [3, 2, 1] >>> b [3, 2, 1] >>> a.sort() >>> a [1, 2, 3] >>> b [1, 2, 3] P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 14
15 Alias-Namens-Problematik; Beispiel >>> a = [3,4,5] >>> b = [ a, b, c ] >>> a.append(b) >>> a [3, 4, 5, [ a, b, c ]] >>> b [ a, b, c ] >>> b.reverse() ## hier passierts >>> a [3, 4, 5, [ c, b, a ]] >>> b [ c, b, a ] P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 15
16 Modell der internen Darstellung von Listen Notation und Vereinbarungen Pfeile bedeuten Bindungen repräsentiert ein Paar (von zwei impliziten Namen) Pfeil aus linker Zelle: Bindung des Listenelementes. Pfeil aus rechter Zelle: Bindung an die Restliste P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 16
17 Interne Darstellung von Listen Darstellung der Liste [1, 2, 3]: >>> a = [1,2,3] >>> b = a a b Nil P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 17
18 Repräsentation von Listen >>> a = [1,2,3] >>> b = [4,5,6] >>> a.append(b) >>> a [1, 2, 3, [4, 5, 6]] >>> b.reverse() >>> a [1, 2, 3, [6, 5, 4]] >>> P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 18
19 Repräsentation von Listen (2) Bild des Speichers nach den obigen Befehlen: a Nil b Nil P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 19
20 Pythons Listendarstellung Ist intern optimiert: D.h. es gibt eigentlich keine Teillisten. Das entspricht folgendem Diagramm: >>> a = [1,2,3] a Nil P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 20
21 Pythons Listendarstellung (2) >>> b = [4,5,6] >>> a.append(b) >>> a [1, 2, 3, [4, 5, 6]] >>> b.reverse() >>> a [1, 2, 3, [6, 5, 4]] a Nil b Nil P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 21
22 Stack in Python In Python leicht und effizient implementierbar: push b auf Stack a: a.insert(0,b) Benutzung der Listen von links: a.insert(0,b) a.pop(0) ##push(b) Benutzung der Listen von rechts: a.append(b) a.pop() Fehler bei pop() auf den leeren Stack P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 22
23 Beispiele: Stack in Python Verwendung eines Umgebungsstacks zur Auswertung von (Python-)Ausdrücken. Umdrehen einer Liste (siehe Haskell-Kapitel) P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 23
24 Schlange, Queue Reihenfolge: first-in; first out (fifo). Effiziente Implementierung von links oder von rechts: a.insert(0,b) a.pop() a.append(b) a.pop(0) Links b in die Liste a einfügen Letztes Element entfernen Rechts b in die Liste a einfügen Erstes Element entfernen P raktische Informatik 1, W S 2004/05, F olien P ython 3, (7. Januar2005) Seite 24
Programmierung in Python
Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P
Stackmaschine; Speicheradressierung
Stackmaschine; Speicheradressierung Erweiterung um globalen Speicher (Heap, Halde) pro Speicherplatz eine Zahl. Notation ist als Array SP [0..]. Zugriff mittels Adresse (Index): eine Zahl i.a.: Zahlen
Nachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
Abstrakte Datentypen und deren Implementierung in Python
Kapitel 15: Abstrakte Datentypen und deren Implementierung in Python Einführung in die Informatik Wintersemester 007/08 Prof. Bernhard Jung Übersicht Abstrakte Datentypen ADT Stack Python-Implementierung(en)
Auswertungsregeln für Listenfunktionen in Python: operationale Semantik
Auswertungsregeln für Listenfunktionen in Python: operationale Semantik Operationale Semantik einer imperativen Programmiersprache mit Listen; hier Python Modellierung der Verzeigerung zwischen Objekten
Einfügen immer nur am Kopf der Liste Löschen auch nur an einem Ende (2 Möglichkeiten!)
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
Stack. Queue. pop() liefert zuletzt auf den Stack gelegtes Element und löscht es push( X ) legt ein Element X auf den Stack
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
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
3.1 Datenstrukturen und Typen in Haskell. Bisher haben wir nur die eingebauten Basisdatentypen wie Zahlen und Wahrheitswerte benutzt.
Kapitel 3 Daten Abstraktion 3.1 Datenstrukturen und Typen in Haskell Bisher haben wir nur die eingebauten Basisdatentypen wie Zahlen und Wahrheitswerte benutzt. 3.1.1 Basisdatentypen Ganze Zahlen (Int)
Funktionen in Python
Funktionen in Python Prof. Dr. Rüdiger Weis Beuth Hochschule für Technik Berlin 1 / 31 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente
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
Informatik I. Informatik I Iteratoren Generatoren Das Modul itertools. Iterierbare Objekte Iteratoren. Python-Interpreter
Informatik I 28.01.2014 25. und Informatik I 25. und Bernhard Nebel Albert-Ludwigs-Universität Freiburg 25.1 25.2 25.3 Das Modul itertools 28.01.2014 Bernhard Nebel (Universität Freiburg) Informatik I
4.2 Daten und Datenstrukturen
4.2 Daten und Datenstrukturen Daten Fundamentale Objekte, die in der Rechenanlage erfasst gespeichert ausgegeben (angezeigt, gedruckt) bearbeitet gelöscht werden können. Beispiele: Zahlen, Zeichenfolgen
Funktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
Grundlagen der Programmierung 2. Unendliche Listen und Ströme(B)
Grundlagen der Programmierung 2 Unendliche Listen und Ströme(B) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 17. Mai 2006 Beispiel: scanl, scanr scanl berechnet das foldl
Algorithmische Abstraktion mit Python
Kapitel 3 Algorithmische Abstraktion mit Python 3.1 Allgemeines zu Python Python ist eine imperative und objekt-orientierte Programmiersprache mit dynamischer Typisierung. Sie ist gut geeignet zum schnellen
4 Daten in Python. Primäres Ziel: Daten zu Containern zusammenfassen, insbesondere Vektoren etc., um vernünftige Beispiele rechnen zu können.
4 Daten in Python Primäres Ziel: Daten zu Containern zusammenfassen, insbesondere Vektoren etc., um vernünftige Beispiele rechnen zu können. Vorher genauerer Blick auf die Behandlung von Daten in Python
Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute
Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert
Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.
Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
Kapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
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
Informatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2017 1 und der Typ bool Typ bool Typ bool Vergleichsoperationen
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
Programmieren in Haskell Abstrakte Datentypen
Programmieren in Haskell Abstrakte Datentypen Peter Steffen Universität Bielefeld Technische Fakultät 09.01.2009 1 Programmieren in Haskell Einführung Man unterscheidet zwei Arten von Datentypen: konkrete
Programmierung I Einführung in Python, Beyond the Basics
Höhere Datenstrukturen Programmierung I Einführung in Python, Beyond the Basics G. Zachmann Clausthal University, Germany [email protected] Eines der Features, das Python so mächtig macht (VHLL)
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
Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke
Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert
16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
Java Referenzdatentypen genauer betrachtet
Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen
Datenstrukturen in Python
Datenstrukturen in Python D.Komm, T.Kohn, J.Závodný 14.3.2018 Schreibe eine Funktion uniques, die eine Liste liste nimmt, und die Liste aller verschiedenen Elemente in liste ausgibt. uniques(['b', 'a',
Programmieren in Haskell. Abstrakte Datentypen
Programmieren in Haskell Abstrakte Datentypen Einführung Man unterscheidet zwei Arten von Datentypen: konkrete Datentypen: beziehen sich auf eine konkrete Repräsentation in der Sprache. Beispiele: Listen,
Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut
Mathematisches Institut [email protected] 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
Ströme als unendliche Listen in Haskell
Ströme als unendliche Listen in Haskell Strom := Folge oder Liste von Daten, unbegrenzt viele Daten-Elemente. Ströme sind in Haskell als als (potentiell) unendliche Listen darstellbar und programmierbar
11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
Informatik II Übung 5
Informatik II Übung 5 Gruppe 2 Carina Fuss [email protected] 28.3.2018 Carina Fuss 28.3.2018 1 Übung 5 Administratives/Tipps zu Eclipse Nachbesprechung Übung 4 kurze Demo zu Stacks Java Pakete Call
6. Funktionen, Parameterübergabe
6. Funktionen, Parameterübergabe GPS-6-1 Themen dieses Kapitels: Begriffe zu Funktionen und Aufrufen Parameterübergabearten call-by-value, call-by-reference, call-by-value-and-result in verschiedenen Sprachen
1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren
1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren
Verkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen,
Praktikum Praktische Informatik. Python-Shell. Python. Programmieren in Python. Python-Programme. Eine Einführung
Praktikum Praktische Informatik Programmieren in Python Eine Einführung Praktikum Praktische Informatik 1 Python-Programme Python-Programme besitzen i.d.r. die Endung.py Ausführung eines Python-Programms:
1 - Backus-Naur-Form. (a) Ableitung des Wortes /a*(a b)b/ aus der gegebenen BNF:
1 - Backus-Naur-Form (a) Ableitung des Wortes /a*(a b)b/ aus der gegebenen BNF: R Regel R -> '/' S '/' => '/' S '/' Regel S -> E S => '/' E S '/' Regel E -> E '*' => '/' E '*' S '/' Regel E -> D => '/'
Einführung in die funktionale Programmierung
Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 26. Oktober 2006 Haskell - Einführung Syntax Typen Auswertung Programmierung
Funktionales Programmieren in Python
Wintersemester 2008/2009 1 Funktionen sind Objekte 2 lambda Funktionen 3 apply 4 map 5 zip 6 filter 7 reduce 8 List Comprehension Funktionales Programmieren Wer nicht funktional programmiert, programmiert
3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
Informatik II Sortieren
lausthal Sortieralgorithmen Informatik II Sortieren Preprocessing fürs Suchen sind für kommerzielle Anwendungen häufig die Programmteile, die die meiste Rechenzeit verbrauchen viele raffinierte Methoden
26 Hierarchisch strukturierte Daten
Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester
Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T]
Teil II: Datenstrukturen Datenstrukturen Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T] Nichtlineare Datenstrukturen: Bäume Modell(e): spezielle
8 Elementare Datenstrukturen
Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.
Übungsblatt 6: Softwareentwicklung I (WS 2006/07)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J.O. Blech Dipl.-Inform. M.J. Gawkowski Dipl.-Inform. N. Rauch Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Übungsblatt 6:
1 def Anweisung. 2 Argumentübergabe. 3 Lokale Variablen. 4 Default Argumente. 5 Aufruf mit Schlüsselwort. 6 Variable Argumente. Funktionen in Python
1 def Anweisung Sommersemester 2007 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung Beispiel: TuNix def def funktionsname([])
Funktionen in Python
October 19, 2006 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung def def funktionsname([]) : [ Dokumentationsstring
Abstrakte Datentypen und Datenstrukturen
Abstrakte Datentypen und Datenstrukturen Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP2 SS 2008 15. April 2008 1 Überblick ADT Sequence ADT Stack
INFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
Gliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension
Gliederung Algorithmen und Datenstrukturen I D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10, 16. Oktober 2009, c
1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel Ein Stack, auch Stapel oder Keller genannt, ist eine Datenstruktur, bei der die Elemente nur an einem Ende der Folge eingefügt bzw. gelöscht
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)
Advanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Programmieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
Praxis der Programmierung
Liste, Ausnahmefehler, Template-Funktionen und -Klassen Institut für Informatik und Computational Science Henning Bordihn 1 Stack als einfach verkettete Liste 2 Aufgabe 1 1. Kopieren Sie aus /home/rlehre/w13
Einstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
Selbsteinstufungstest Vorkurs Programmieren
VPR Selbsteinstufungstest Vorkurs Programmieren Zeit 90 Minuten Aufgabe 1: Einzigartig (10 Punkte) Schreiben Sie eine Methode die angibt, ob ein String str1 in einem zweiten String str2 genau einmal vorkommt.
Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
