Bioinformatik für Biochemiker

Größe: px
Ab Seite anzeigen:

Download "Bioinformatik für Biochemiker"

Transkript

1 Bioinformatik für Biochemiker Oliver Kohlbacher WS 2009/ Strings und Sequenzen Abt. Simulation biologischer Systeme WSI/ZBIT, Eberhard Karls Universität Tübingen Übersicht Strings und Sequenzen Biologische Intuition Formale Definition Vergleich zweier Sequenzen Ähnlichkeit und Distanz Alignment: Definition Algorithmen und Programme Grundlagen der Programmiersprache Python Berechnung der Distanz eines Alignments in Python 2 Sequenzen und Alignments Biologische Intuition Sequenz = Abfolge von Buchstaben Insulin von Mensch und Huhn (β-kette) RREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKR RRDVEQPLVSSPLRGEAGVLPFQQEEYEKVKR Informell: Alignment = Anordnung der Sequenzen untereinander derart, dass die Ähnlichkeit deutlich wird RREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKR RRDVEQPLVSS-PLRGEAGVLPFQQEEYE-KVKR- 1

2 Ähnlichkeit zweier Sequenzen Wie kann man die Ähnlichkeit zweier Sequenzen beschreiben? Einfachste Möglichkeit: Zählen identischer Zeichen GATCGTTCG CATGGTTGA Problem: Was bei Sequenzen unterschiedlicher Länge? GATCGTTCG GATCGTTCG GATCGTTCG GGTTGA G---GTT-GA GGTTGA Ähnlichkeit: Ähnlichkeit bei dieser einfachen Definition vom gewählten Alignment abhängig! Welches ist das richtige Alignment? Ähnlichkeit zweier Sequenzen RREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKR RRDVEQPLVSS-PLRGEAGVLPFQQEEYE-KVKR- Problem: K ist chemisch ähnlicher zu R als z.b. G zu R Für Funktion und Struktur können diese Details bedeutend sein Beide Nichtübereinstimmungen (mismatches) gleich zu bewerten erscheint biologisch nicht sinnvoll Wie kann man die Ähnlichkeit zweier Aminosäuren mit berücksichtigen? Sequenzen und Strings In der Informatik wurden Probleme auf Zeichenketten schon seit geraumer Zeit behandelt, als biologische Sequenzdaten in Massen aufkamen Sequenzen sind aus Sicht der Informatik nichts als Zeichenketten (Strings) Wir wollen daher zunächst die Begriffe, die wir verwenden, formal definieren Anschließend werden wir das bisher etwas diffus formulierte Problem des Alignments versuchen präziser zu definieren und zu lösen 2

3 Strings und Sequenzen Definition: Ein Alphabet Σ ist eine endliche Menge von Zeichen. Sequenzen sind Zeichenreihen über Σ. Dabei ist: Σ 0 := {ε} (ε steht für die leere Sequenz) Σ n ist die Menge aller Worte der Länge n auf Σ Σn+1 := {aa a 2 Σ, A 2 Σ n } Σ * ist die Menge aller Sequenzen (aller Längen) über Σ. DNA-Sequenzen sind definiert über dem Alphabet Σ DNA = {A,C,G,T} Protein-Sequenzen sind definiert über Σ P = {A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y} Strings und Sequenzen Definition: Ein Alphabet Σ ist eine endliche Menge von Zeichen. Sequenzen sind Zeichenreihen über Σ. Dabei ist: Σ 0 := {ε} (ε steht für die leere Sequenz) Σ n ist die Menge aller Worte der Länge n auf Σ Σn+1 := {aa a 2 Σ, A 2 Σ n } Σ * ist die Menge aller Sequenzen (aller Längen) über Σ. Eine DNA-Sequenz A der Länge k = 7 ist z.b. gegeben durch A = GATTACA (A 2 Σ 7 DNA ) Die Menge Σ 2 DNA enthält alle 16 möglichen Dinukleotidsequenzen: Σ 2 DNA = {AA,AC,AG,AT,CA,CC,,TT} Strings und Sequenzen Definition: Ein String A der Länge n ist eine Folge von Zeichen a i : A = a 1 a 2 a 3 a n (A 2 Σ n, a i 2 Σ) Seien A = a 1 a 2 a n und B = b 1 b 2 b n zwei Strings. Dann ist A := n die Länge der Sequenz und AB := a 1 a 2 a n b 1 b 2 b n die Konkatenation von A und B. A = TACA, B = GAT ) AB = TACAGAT und BA = GATTACA AB = BA = A + B = 7 3

4 Substrings Definition: Sei A = a 1 a 2 a n ein String. Dann gilt: A[i..j] := a i a j 8 i, j 1 i, j n ist eine Teilsequenz (Substring) von A A[1..i] := a 1 a i 8 i 1 i n ist ein Präfix von A A[i..n] := a i a n 8 i 1 i n ist ein Suffix von A. A = TACAGAT A[3..4] = CA TA und T sind Präfixe von A, TACAGAT ist ein Suffix von A Distanz Definition: Eine Funktion d(a, b) : Σ x Σ! R mit a, b 2 Σ die jedem Paar (a, b) von Zeichen aus Σ eine reelle Zahl d(a, b) zuordnet, sodass d(a, b) 0, d(a, b) = 0 ) a = b (Nichtnegativität) d(a, b) = d(b, a) (Symmetrie) d(a, b) d(a, c) + d(c, b), 8 c2 Σ (Dreiecksungleichung) heißt Distanz von a und b (oder Metrik) Folgende einfache Funktion ist eine Distanz: Distanzmatrix Üblicherweise verwendet man in der Bioinformatik für Distanzfunktionen Matrizen Eine Matrix M ist eine Distanzmatrix, wenn für jedes Matrixelement m ij die Anforderungen an eine Metrik erfüllt sind. Insbesondere gilt für Distanzmatrizen m ij = m ji > 0 8 i j m ii = 0 Einfache Distanzmatrix für DNA A C G T A C G T

5 Distanzmatrizen Mit Hilfe von Distanzmatrizen lassen sich einige unserer Probleme lösen Man kann z.b. für alle AS die Distanz zu jeder anderen definieren und so hydrophobe AS zueinander ähnlicher machen als zu geladenen AS Nicht gelöst haben wir bisher das Problem, wie man das richtige Alignment unter der Vielzahl möglicher Alignments erkennt Es stellen sich die Fragen: Wie ist ein Alignment definiert? Kann man einfach die Distanz für ALLE möglichen Alignments berechnen? Alignments Definition: Seien A, B zwei Sequenzen auf dem Alphabet Σ mit A = n und B = m. Ein Alignment von A mit B wird beschrieben durch zwei Sequenzen A und B mit A = B = k auf dem Alphabet Σ = Σ [ {-} die aus A und B durch Einfügen von Gapzeichen ( - ) in A und B entstehen. Dabei dürfen keine zwei Gapzeichen in A und B übereinander stehen. Distanz des Alignments d(a, B ) für eine beliebige Distanzfunktion d ist gegeben durch Alignments A = ACGT, B = AGT, Mögliche Alignments: ACGT ACGT ---ACGT A-C-G-T AC--GT A-GT AGT- AGT---- -C-G-T- A---GT d = 1 d = 3 d = 7 d = 7 Welches ist nun das beste Alignment? Das Alignment mit der geringsten Distanz? Wie können wir die Distanzen aller Alignments berechnen? 5

6 Berechnung der Alignmentdistanz Wir wollen nun versuchen ein Programm zu schreiben, das die Distanz eines Alignments berechnet und daran die Grundlagen der Programmiersprache Python kennen lernen Gegeben seien also zwei Sequenzen A, B gleicher Länge mit Gapsymbolen Das Programm soll dann die Distanz des Alignments ausgeben Wie schreibt man nun ein Programm? Algorithmen Bevor man ein Programm schreibt, muss man wissen was der Rechner tun soll! Die Beschreibung einer Methode zur Lösung der gegebenen Aufgabenstellung nennt man Algorithmus Dementsprechend sind Kochrezepte oder Bedienungsanleitungen nichts anderes als Algorithmen Ein Programm ist die formale Umsetzung eines Algorithmus in einer Programmiersprache Da Rechner nur Maschinencode ausführen können, sind Compiler oder Interpreter notwendig, die das Programm aus der Programmiersprache in Maschinencode umsetzen, der dann ausgeführt wird Algorithmen, Code, Rechner Programmcode Compiler/ Interpreter Eingabedaten Maschinencode Algorithmus Ausgabedaten 6

7 Algorithmen Gegeben: Zwei Sequenzen A, B mit A = B auf dem Alphabet Σ ={A, C, G, T, -} Eine Distanzfunktion d : Σ x Σ! R Berechne die Distanz d(a, B) wie folgt: distanz à 0 Für i = 1 A : distanz à distanz + d(a i, b i ) Gib Wert von distanz aus Zuweisung Schleife Zuweisung Ausgabe Vom Algorithmus zum Programm Rechner sind per se dumm Sie verstehen Algorithmen nur in sehr stark formalisierter Form, in so genannten Programmiersprachen Jede dieser Programmiersprachen hat z.b. eine eigene Syntax um eine Schleife zu programmieren, eine Zuweisung oder eine Ausgabe Wir werden nun den Algorithmus, den wir als so genannten Pseudocode aufgeschrieben haben, in eine der vielen möglichen Programmiersprachen übersetzen Dieser Programmcode wird dann von einem Interpreter ausgeführt und liefert (hoffentlich) das gewünschte Ergebnis Python Python ist eine einfach zu erlernende Programmiersprache Entwickelt wurde Python Anfang der 90er Jahre von Guido van Rossum Python ist benannt nach der britischen Komikertruppe Monty Python Warum Python und nicht Java, C++, Perl,..? Python ist sehr einfach zu lernen Python ist für alle Systeme frei verfügbar Python und Perl sind in der Bioinformatik die wichtigsten Skriptsprachen Python ist ästhetischer als Perl Guido van Rossum 7

8 Python-Interpreter Startet man den Python-Interpreter durch Eingabe des Kommandos python an der Kommandozeile, so meldet der Interpreter sich zur interaktiven Arbeit mit seinem Prompt (>>> ): crucis[35] python Python (#1, Jun , 11:21:03) [GCC (cygming special)] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> An diesem Prompt erwartet der Interpreter nun eine Eingabe Im Gegensatz zu Compilersprachen (wie C, C++, Pascal, Fortran, ) kann man mit interpretierten Sprachen (wie Perl, Python, Ruby, ) direkt in ein laufendes Programm eingreifen, da das Programm erst zur Ausführungszeit in Maschinencode übersetzt wird Compiler (Übersetzer) hingegen nehmen den vollständigen Programmcode, übersetzen ihn aus der Programmiersprache in Maschinencode und führen diesen dann als ganzes aus Python Zuweisungen, Ausgaben Das Einfachste, das wir tun können, ist zunächst die beiden Strings zum Alignment zu definieren Beispielsweise wollen wir die Sequenzen ACGT und AGT alinieren Diese Sequenzen können wir nun Variablen zuweisen, damit wir bequem darauf Bezug nehmen können den Programmcode schreiben können, ohne die Sequenzen im Programmcode zu verwenden (Trennung von Daten und Code) Eine Zuweisung in Python erfolgt mit Hilfe des Gleichheitszeichens: A = ACGT Die Anführungszeichen instruieren den Interpreter dabei ACGT als Zeichenkette aufzufassen Python Zuweisungen, Ausgaben A = ACGT A ist dabei der Name der Variablen, die nach der Zuweisung den Wert ACGT besitzt Entsprechend kann man nicht nur Zeichenketten, sondern auch numerische Werte zuweisen: Summe = 0 Weist z.b. der Variable mit dem Namen Summe den Wert Null zu Die Namen von Variablen sind dabei frei wählbar, müssen aber aus einem Wort bestehen (also keine Leerzeichen), dürfen keine Sonderzeichen außer _ enthalten und dürfen nicht mit einer Zahl anfangen Gültige Namen: meine_variable, Wert15 Ungültige Namen: meine-variable, 15ter_wert 8

9 Python Ausgaben Möchte man in Python Ausgaben tätigen, so erscheinen diese standardmäßig auf der Konsole (dem Fenster in dem Sie gerade arbeiten) Das Python-Kommando print gibt einen Text oder Werte aus Wir können dies am Prompt des Python-Interpreters nachvollziehen: Ausgabe des Textes Bioinformatik : >>> print Bioinformatik Bioinformatik >>> Zuweisung und Ausgabe des Wertes einer Variablen: >>> distanz = 15 >>> print distanz 15 >>> Ausführung eines Programms Mit dem Interpreter kann man natürlich nicht nur interaktiv arbeiten, sondern man kann ihn auch komplette Programme abarbeiten lassen Dabei liest der Interpreter das Programm vollständig und führt die Zeilen nacheinander aus, beginnend mit der ersten Zeile Ein sehr triviales Programm kann z.b. das Produkt zweier Zahlen berechnen und ausgeben: x = 15 print x =, x y = 456 print y =, y print Produkt, x * y Der Operator * berechnet dabei das Produkt der beiden Zahlen, das Komma trennt beim Print-Kommando unterschiedliche Ausgaben voneinander Man kann dieses Programm nun in einer Datei speichern (z.b. unter dem Namen trivial.py ) Ruft man nun den Interpreter mit diesem Dateinamen als Argument auf, so führt er das Programm aus Anlegen eines Programms Das Programm öffnet man dazu in einem beliebigen Editor (WordPad, Ultraedit, gedit, ) und speichert es unter dem Namen trivial.py 9

10 Ausführen des Programms Um das Programm auszuführen, rufen wir nun von der Kommandozeile aus den Interpreter mit dem Dateinamen unseres Programmcodes auf python trivial.py x = 15 y = 456 Produkt 6840 x = 15 print x =, x y = 456 print y =, y print Produkt, x * y Interpreter lädt daraufhin das Programm und arbeitet es Zeile für Zeile ab Zuweisungen erzeugen keine Ausgaben, erscheinen also nicht auf der Konsole Python Strings Alle wichtigen Operationen auf Zeichenketten kann man auch in Python auf einfachste Weise durchführen: ein String A = `ACGT` und ein String B = `AGT` Problem Notation Python Ergebnis Auswahl eines Zeichens a 1 b 3 A[0] B[2] `A` `T` Konkatenierung BA B + A `AGTACGT` Substring A[2..3] A[1:3] `CG` Präfix A[1..2] A[:2] `AC` Suffix A[2..4] A[1:] `CGT` Aufgepasst: Python nummeriert die Elemente eines Strings von Null an! Python Schleifen Kontrollstrukturen steuern den Ablauf eines Programms Der Interpreter beginnt mit der Ausführung des Programms in der ersten Codezeile und arbeitet das Programm Zeile für Zeile ab Kontrollstrukturen erlauben es, diese Abfolge zu verändern Schleifen zählen zu den wichtigsten Kontrollstrukturen Sie erlauben es, bestimmte Codeteile (den zugehörigen Schleifenkörper oder Rumpf) mehrmals zu durchlaufen Die Anzahl Durchläufe durch die Schleife wird dabei durch den Schleifenkopf gesteuert 10

11 Python Schleifen Python kennt For-Schleifen, bei denen eine Schleifenvariable eine Folge von Werten durchläuft und für jeden dieser Werte der Rumpf ausgeführt wird Der Kopf definiert dabei die Schleifenvariable und die möglichen Werte Der Rumpf wird vom Kopf durch Einrückung unterschieden Der Rumpf kann eine oder mehrere Zeilen Code enthalten Die Funktion range(wert) erzeugt dabei eine Liste von Wert Zahlen, die bei 0 anfangen und jeweils um eins erhöht werden for i in range(10): print i Dieses kurze Programm gibt dementsprechend die Zahlen von 0 bis 9 aus Python Bedingungen Bedingungen erlauben es Programmteile nur dann auszuführen, wenn eine bestimmte Bedingung erfüllt ist In Python heißt das entsprechende Konstrukt if-else: if distanz < 5: print `Distanz gering` else: print `Distanz zu gross!` Die Bedingung der if-zeile kann auf verschiedene Vergleichsoperatoren zurückgreifen (Auswahl): == Gleichheit!= Ungleichheit < Echt kleiner > Echt größer <= Kleiner oder gleich >= Größer oder gleich Ist die Bedingung erfüllt, wird der Block nach if ausgeführt, andernfalls der Block nach else Python Funktionen Funktionen in Programmiersprachen sind ähnlich zu mathematischen Funktionen, es gibt jedoch einige Unterschiede Prinzipiell verwendet man Funktionen um häufig benutzten Code nicht mehrmals schreiben zu müssen Funktionen sind abgeschlossene Codestücke, denen Argumente übergeben werden und die einen Rückgabewert haben können In Python werden Funktionen mit Hilfe des def-schlüsselwortes definiert Funktionen haben einen Namen, eine Liste von Argumenten und einen Codeblock der die eigentliche Rechnung durchführt Eine Funktion, die zu einer Zahl deren doppelten Wert zurückliefert def doppelt(x): return 2 * x print doppelt(4) Das Schlüsselwort return definiert dabei den Rückgabewert der Funktion 11

12 Distanzberechnung Wir versuchen nun unseren Algorithmus aus dem Pseudocode in Python umzusetzen Dazu sollte die Distanzfunktion d als Funktion implementiert werden Wir wählen als einfache Distanzfunktion die Identität Summation über die Spalten des Alignments implementieren wir als for-schleife distanz à 0 Für i = 1 A : distanz à distanz + d(a i, b i ) Gib Wert von distanz aus Alignmentdistanzen in Python A = ACGT B = A-GT def d(a, b): if a == b: return 0 else: return 1 distanz = 0 for i in range(len(a)): distanz = distanz + d(a[i], B[i]) print `Distanz des Alignments:`, distanz Literatur Ein ganzes Buch zu Python zum freien Herunterladen! How to think like a computer scientist Mit Beispielen in Python! Hinweis: Sie können Python auch auf Ihrem eigenen Rechner unter Windows installieren: 12

Bioinformatik für Biochemiker

Bioinformatik für Biochemiker Bioinformatik für Biochemiker Oliver Kohlbacher, Steffen Schmidt SS 2010 3. Strings, Sequenzen und Python Abt. Simulation biologischer Systeme WSI/ZBIT, Eberhard Karls Universität Tübingen Übersicht Strings

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

EIGENSCHAFTEN VON SPRACHEN

EIGENSCHAFTEN VON SPRACHEN Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,

Mehr

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?

Mehr

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Wir wollen uns heute dem Thema Variablen widmen und uns damit beschäftigen, wie sich

Mehr

Einführung in die Computerlinguistik Einführung in Python (1)

Einführung in die Computerlinguistik Einführung in Python (1) Einführung in die Computerlinguistik Einführung in Python (1) Dozentin: Wiebke Petersen 10. Foliensatz Wiebke Petersen Einführung CL 1 Compiler Ein Compiler (auch Übersetzer oder Kompilierer genannt) ist

Mehr

Die Suche nach Genen in Bakteriengenomen. BWInf-Workshop 22.-23. März 2011. Prof. Dr. Sven Rahmann AG Bioinformatik Informatik XI, TU Dortmund

Die Suche nach Genen in Bakteriengenomen. BWInf-Workshop 22.-23. März 2011. Prof. Dr. Sven Rahmann AG Bioinformatik Informatik XI, TU Dortmund Die Suche nach Genen in Bakteriengenomen BWInf-Workshop 22.-23. März 2011 Prof. Dr. Sven Rahmann AG Bioinformatik Informatik XI, TU Dortmund 1 Bioinformatik was ist das? Aufgabe: Analyse (molekular)biologischer

Mehr

Übersicht Shell-Scripten

Übersicht Shell-Scripten !!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,

Mehr

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

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Informatik I - Einstiegskurs

Informatik I - Einstiegskurs Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Variablen Datentypen Werte Ausdrücke Operatoren

Mehr

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

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Kapitel 3. Mein erstes C-Programm

Kapitel 3. Mein erstes C-Programm Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL

Mehr

Grundlagen der Fortran Sprache

Grundlagen der Fortran Sprache Kapitel 1 Grundlagen der Fortran Sprache Programmieren bezeichnet das Verfahren, in einer bestimmten Sprache (Syntax) Anweisungen (sog. Quellcode) für den Computer zu schreiben. Dieser Programmcode wird

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines

Mehr

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB

Mehr

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby Fachhochschule Wiesbaden - Fachbereich DCSM Skriptsprachen Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby 16.10.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden

Mehr

Algorithmische Anwendungen WS 2005/2006

Algorithmische Anwendungen WS 2005/2006 Algorithmische Anwendungen WS 2005/2006 Sequenzalignment Gruppe F_lila_Ala0506 Allal Kharaz Yassine ELassad Inhaltsverzeichnis 1 Problemstellungen...................................... 3 1.1 Rechtschreibkorrektur...............................

Mehr

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate COMA Eine Einführung Quellcode: Anweisung(en)1 Wiederhole: T.Bosse Anweisung(en) 2 Einfache Schleifen (z.b. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Verzweigungen

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

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

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri 2009-10-30 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater, der für diese Vorlesung auf Alexander Kollers Java-Kurs basierte) Organisatorisches Wöchentliche

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri 2009-11-05 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Variablen Datentypen Werte Operatoren und Ausdrücke Kontrollstrukturen: if, while

Mehr

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend

Mehr

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

Leseprobe. Bernd Klein. Einführung in Python 3. In einer Woche programmieren lernen. ISBN (Buch): ISBN (E-Book):

Leseprobe. Bernd Klein. Einführung in Python 3. In einer Woche programmieren lernen. ISBN (Buch): ISBN (E-Book): Leseprobe Bernd Klein Einführung in Python 3 In einer Woche programmieren lernen ISBN (Buch): 978-3-446-43547-6 ISBN (E-Book): 978-3-446-43717-3 Weitere Informationen oder Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43547-6

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

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

Grundlagen der Informatik Vorlesungsskript

Grundlagen der Informatik Vorlesungsskript Grundlagen der Informatik Vorlesungsskript Prof. Dr. T. Gervens, Prof. Dr.-Ing. B. Lang, Prof. Dr. F.M. Thiesing, Prof. Dr.-Ing. C. Westerkamp 16 AUTOMATISCHES ÜBERSETZEN VON PROGRAMMEN MIT MAKE... 2 16.1

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

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Einführende Beispiele 2. Algorithmen Täglich werden Verarbeitungsvorschriften

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Suchen in Texten Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

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

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

Mehr

Funktionale Programmiersprachen

Funktionale Programmiersprachen Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte

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

Tag 6. Module, benannte Funktionen und Rekursion

Tag 6. Module, benannte Funktionen und Rekursion Tag 6 Module, benannte Funktionen und Rekursion Wir verlassen nun die abgeschlossene kleine Welt des interaktiven Interpreters und lernen, wie man richtige Haskell-Programme schreibt. Im Interpreter haben

Mehr

Schritt 1. Schritt 1. Schritt 3. - Analysieren des Problems und Spezifizierung einer Lösung.

Schritt 1. Schritt 1. Schritt 3. - Analysieren des Problems und Spezifizierung einer Lösung. I. Programmierung ================================================================== Programmierung ist die Planung einer Abfolge von Schritten (Instruktionen), nach denen ein Computer handeln soll. Schritt

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

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

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Fangen wir mit ein paar Unterschieden und Gemeinsamkeiten zu JavaScript an: CoffeeScript kennt keine Strichpunkte am Ende der Zeile.

Fangen wir mit ein paar Unterschieden und Gemeinsamkeiten zu JavaScript an: CoffeeScript kennt keine Strichpunkte am Ende der Zeile. D3kjd3Di38lk323nnm 14 2 Hinunter in den Kaninchenbau CoffeeScript im Detail Fangen wir mit ein paar Unterschieden und Gemeinsamkeiten zu JavaScript an: CoffeeScript kennt keine Strichpunkte am Ende der

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Beispiele für Algorithmen Im folgenden Abschnitt sollen ausgewählte

Mehr

Programmieren mit Python

Programmieren mit Python Programmieren mit Python Programmieren heisst: Dem Computer sagen, was er tun soll. Die Befehle muss man übrigens in einer Sprache geben, die der Computer versteht. Darum sind verschiedene Programmiersprachen

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten

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

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Alignment-Verfahren zum Vergleich biologischer Sequenzen zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik Bioinformatik Lokale Alignierung Gapkosten Silke Trißl / Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Ähnlichkeit Lokales und globales Alignment Gapped Alignment Silke Trißl:

Mehr

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion 01 Einführung in PHP Einführung in PHP 1/13 PHP in Aktion PHP ist eine Programmiersprache, die ganz verschiedene Dinge tun kann: von einem Browser gesendete Formularinhalte auswerten, angepasste Webinhalte

Mehr

Theoretische Informatik. Alphabete, Worte, Sprachen

Theoretische Informatik. Alphabete, Worte, Sprachen Theoretische Informatik Alphabete, Worte, Sprachen Alphabete, Worte, Sprachen 1. Alphabete und Worte Definitionen, Beispiele Operationen mit Worten Induktionsbeweise 2. Sprachen Definition und Beispiele

Mehr

10 Block 10: Verwendung von Modulen in Perl

10 Block 10: Verwendung von Modulen in Perl 10 Block 10: Verwendung von Modulen in Perl 10.1 Lernziele... 2 10.2 Theorie... 3 10.2.1 Warum Module?... 3 10.3 Praxis... 5 10.3.1 Module erstellen... 5 10.3.2 Module aufrufen... 6 10.3.3 Aufgabe... 8

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016 Formale Methoden 2 Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016 Teil 3: Kodierung 1 Motivation 2 Exkurs Grundlagen formaler Sprachen 3 Grundlagen 4 Beispielkodierungen FM2 (WS 2014/15,

Mehr

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

IT-Zertifikat: Allgemeine Informationstechnologien II PHP IT-Zertifikat: Allgemeine Informationstechnologien II PHP PHP ( PHP: Hypertext Preprocessor ) ist eine serverseitige Skriptsprache: Der PHP-Code wird nicht wie bei JavaScript auf dem Clientrechner ausgeführt,

Mehr

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung Clientseitige Web-Programmierung mit JavaScript Version 1.1 3.5.2010 1 aktuelles 2 clientseitige Web-Programmierung verschiedene Ansätze JavaScript Java Applet Adobe Flash Microsoft Silverlight RIA: rich

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.

Mehr

Programmiertechnik Kontrollstrukturen

Programmiertechnik Kontrollstrukturen Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Kontrollstrukturen? Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Kontrollstrukturen Was sind Kontrollstrukturen Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn, Dr. Konstantinos Panagiotou WiSe 2011/2012 Übungen zu Computational Thinking http://www.mpi-inf.mpg.de/departments/d1/teaching/ws11/ct/

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung 1. Übersicht und Einführung 1.1 Die Shell allgemein 1.2 Die korn-shell 1.3 Der Weg zum ersten Skript 1.4 Nutzen und

Mehr

3 Kurzeinführung in Matlab

3 Kurzeinführung in Matlab 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives Programmpaket für numerische Berechnungen. Nutzen Sie dies parallel zu den Vorlesungen. Sie können damit persönlich erfahren,

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

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

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( 6 Ein- und Ausgabe Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( Drucken war hoffnungslos übertrieben); heute lernen wir, wie wir die Ergebnisse unserer Programme abspeichern können, um sie

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Lua - Erste Schritte in der Programmierung

Lua - Erste Schritte in der Programmierung Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr