Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V6
|
|
- Tristan Günther
- vor 6 Jahren
- Abrufe
Transkript
1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V6 Kontrollstrukturen Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12) Rückblick Text Strings Characters verschiedene Kodierungen: von ASCII bis Unicode Kodierung vs. Schriftgestaltung 2 1
2 Unser heutiges Lernziel Verzweigung, Iteration (und Rekursion am Freitag) sind als grundlegende mathematische und informatische Lösungsmethoden zu erfassen und deren Realisierungen in Programmiersprachen sind kennen zu lernen. Hierzu gehören insbesondere die verschiedenen Ausprägungen von Schleifen (zur Iteration) 3 Übersicht Verzweigungen Prinzipien Graphische Repräsentationen Iterative Grundstrukturen Prinzipien Schleifen: Realisierungsformen der Iteration Kontrollstrukturen in Python if else elif for und while break continue - else 4 2
3 Kontrollstrukturen Verzweigungen bilden zusammen mit den Schleifen die Kontrollstrukturen moderner Programmiersprachen. In allen imperativen und objektorientierten Sprachen sind sie in unterschiedlichen Ausprägungen vorhanden. Leistungsfähige Schleifenkonstrukte zusammen mit Unterprogrammmethoden sind essentielle Konstituenten der strukturierten Programmierung (dritte Programmiersprachen- Generation) aber auch der Objektorientierten Programmierung. 5 Verzweigungen Eine Wertabhängige Fallunterscheidung ist sowohl in der Mathematik als auch in der Informatik elementar für jede Art von Algorithmen. Aufgrund einer Bedingung wird der Programmfluss (die Abfolge der Ausführung der Befehle) verzweigt. Wir unterscheiden die einfache (bedingte) Verzweigung die den Programmfluss in zwei Pfade auftrennt und eine mehrfache Verzweigung. Realisiert ist dies in den meisten Programmiersprachen sehr ähnlich, ungefähr folgendermaßen: if <Bedingung> then <Aktionsfolge> else <AlternativeAktionsfolge> endif 6 3
4 Die mehrfache Verzweigung (Prinzip) case <avariable> avalue1: <AktionsfolgeA> avalue2: <AktikonsfolgeB>... otherwise: <Aktionsfolge> endcase 7 Graphische Repräsentationen Zur Darstellung von Programmstrukturen wurden schon sehr früh graphische Repräsentationen (visuelle Sprachen) eingesetzt, die später auch genormt wurden: Programmablaufpläne (und Datenflusspläne) nach DIN Nassi-Schneidermann Diagramme nach DIN Jackson-Diagramme UML Diagramme (hier allein 14 verschiedene Diagrammarten) 8 4
5 Programmablaufplan ist ein Ablaufdiagramm für ein Computerprogramm, das auch als Flussdiagramm (engl. flowchart) oder Programmstrukturplan bezeichnet wird. Das Konzept der Programmablaufpläne stammt aus den 1960er-Jahren. 9 Nassi-Shneiderman-Diagramm Ein Nassi-Shneiderman-Diagramm (auch Struktogramme genannt) ist ein Software-Entwurfshilfsmittel (auch Methode) für die strukturierte Programmierung. Es ist genormt nach DIN Benannt wurde es nach seinen Vätern Ike Nassi und Ben Shneiderman Die Methode zerlegt ein Gesamtproblem, das man mit dem gewünschten Algorithmus lösen will, in immer kleinere Teilprobleme bis schließlich nur noch elementare Grundstrukturen wie Sequenzen und Kontrollstrukturen zur Lösung des Problems übrig bleiben. Die beiden Autoren konnten mit ihren Diagrammen nachweisen, dass in keinem Algorithmus ein unbedingter Sprung (GOTO) benötigt wird 10 5
6 Verzweigung: einfach-einseitig Pseudocode Ablaufplan Nassi-Shneiderman if <Bedingung> then <Block 1> endif wahr Block 1? falsch wahr Block 1 Bedingung Bedingung =? 11 Zweifach- und Mehrfach-Verzweigungen Pseudocode Ablaufplan Nassi-Shneiderman if <Bedingung> then <Block 1> else <Block 2> endif wahr Block 1 Bedingung falsch Block 2 Bedingung wahr falsch Block 1 Block 2 case <Variable>Wert 1: <B1>Wert 2: <B2>...otherwise: <Bn>endcase Variable = Wert 1 Wert 2 sonst B1 B2 Bn Wert1 1 B1 Wert2 B2 Variable = Bn 12 6
7 Kritik Programmablaufpläne schon bei mittelgroßen Algorithmen schnell unübersichtlich zur Verwendung von expliziten Sprunganweisungen (GOTO's) verführen und damit die Produktion von "Spaghetti-Code" fördern und wahr? Block 1 falsch A B 13 Programmablaufpläne: Kritik und Nutzung gut strukturierter Programmcode (ggf. als Pseudocode oder in einer Skriptsprache wie Python) ist genauso übersichtlich (oder übersichtlicher!) Korrigiert man einen Fehler in einem Programm müsste dieses natürlich im Ablaufplan nachgezogen werden Programmablaufpläne werden heute in der Softwareentwicklung kaum noch eingesetzt. Sie erleben allerdings in etwas modifizierter Form eine Renaissance in Multimedia-Entwicklungsprozessen sind gut geeignet, elementare Strukturen der Programmierung zu verdeutlichen. 14 7
8 Nassi-Shneiderman Diagramme hatten ihre Blütezeit in den 1980er-Jahren, als die strukturierte prozedurale Programmierung die Technik der Wahl war. Mit dem Aufkommen objektorientierter Programmiersprachen in den 1990er Jahren verloren beide Methoden an Bedeutung, weil sie die erweiterten Möglichkeiten, die diese Sprachen bieten, nicht adäquat abbilden können. Nassi-Shneidermann Diagramme wachsen (verfeinern sich nach innen) Variante: Jackson-Diagramm: wächst nach unten und außen 15 Heute: UML-Diagramme Unified Modeling Language (1997) von der Object Management Group (OMG) entwickelt und standardisierte Beschreibungssprache, um Strukturen und Abläufe in Objektorientierten Softwaresystemen darzustellen UML ist de-facto-norm für "technische Zeichnungen" von Programmen und Abläufen. standardisiert auch das Datenformat, in dem diese Zeichnung abgelegt wird (sog. XMI, eine XML-Variante) 16 8
9 UML 2.0 Strukturdiagramme Klassendiagramm (engl. class diagram) Objektdiagramm (engl. object diagram) Komponentendiagramm (engl. component diagram) Kompositionsstrukturdiagramm (auch: Montagediagramm, engl. composite structure diagram) Verteilungsdiagramm (engl. deployment diagram) Paketdiagramm (engl. package diagram) 17 UML 2.0 Verhaltensdiagramme Anwendungsfalldiagramm (auch: Nutzfalldiagramm, use case diagram) Zustandsdiagramm (engl. statechart) Aktivitätsdiagramm (engl. activity diagram) Sequenzdiagramm und Sequenzdiagramm (engl. sequence diagram) Interaktionsübersichtsdiagramm (engl. interaction overview diagram) Kommunikationsdiagramm (engl. communication diagram) Zeitverlaufsdiagramm (engl. timing diagram) Kollaborationsdiagramme (nicht zu verwechseln mit den gleichnamigen Diagrammen in UML 1.x, die in UML 2.0 Kommunikationsdiagramme heißen). 18 9
10 Realisierung in Programmiersprachen In (fast) allen modernen Programmiersprachen werden Verzweigungsstrukturen durch if then else realisiert. Unterschiede finden sich allenfalls in Details der Syntax, z.b. der Art der Klammerung der Anweisungsblöcke. Größere Unterschiede in Syntax und Semantik finden wir allerdings bei Mehrfachverzweigungen: CASE SWITCH oder if then elif elif else. 19 Realisierung in Python if else elif if expression: suite elif expression: suite elif expression: suite... else: suite indent 4 Blanks (Leerzeichen) oder 1 Tab(ulator) besser nicht verwenden expression ist hierbei ein Ausdruck, der sich zu einem booleschen Wert auswerten lässt, suite kennzeichnet eine beliebige Anweisungsfolge
11 Syntax if else elif if_stmt ::= "if" expression ":" suite ( "elif" expression ":" suite )* ["else" ":" suite] suite ::= stmt_list NEWLINE NEWLINE INDENT statement+ DEDENT statement ::= stateliest NEWLINE compound_stmt stmt_list ::= simple_stmt (";" simple_stmt)* [";"] 21 Beispiel a = 3 b = 2 if a < b: pass elif a == b: a = a + 1 else: a = a - 1 print a >>> ================================ RESTART ================= >>>
12 Iterative Grundstrukturen (1) Die Iteration (von lateinisch iterare, "wiederholen"; engl. iteration) ist ein grundlegender Lösungsansatz sowohl in der Mathematik als auch der Informatik mit zwei verschiedenen Ausprägungen: 1. Iteration (in Mathematik und Informatik) ist eine Methode, sich der Lösung eines Rechenproblems schrittweise, aber zielgerichtet anzunähern. Sie besteht in der wiederholten Anwendung desselben Rechenverfahrens. Meistens iteriert man mit Rückkopplung: Die Ergebnisse eines Iterationsschrittes (oder alle bisher erzielten Ergebnisse) werden als Ausgangswerte des jeweils nächsten Schrittes genommen - bis das Ergebnis zufrieden stellt. 23 Iteration (Fortsetzung) Dazu muss man sicher sein (beweisen!), dass die Iterationsfolge konvergiert und dass der Grenzwert mit der gesuchten Lösung übereinstimmt. Die Geschwindigkeit der Konvergenz ist ein Maß dafür, wie brauchbar die Iterationsmethode ist. Grundsätzlich wird ein iteratives Lösungsverfahren dann eingesetzt, wenn das Ergebnis nicht geschlossen berechenbar ist (zum Beispiel Gleichungen mit transzendenten Funktionen: sin x + cos x = x, Bestimmung der Nullstellen ab dem Polynomgrad 5, etc.). Häufig ist eine gute Näherung schon befriedigend
13 Ein klassisches Beispiel, die Regula Falsi: Nullstellen (Wurzeln) eines Polynoms finden: 1. Schritt: Durch schätzen oder probieren ermittelt man ein Intervall (x 1, x 2 ) wo eine Nullstelle von y = f(x) ungefähr liegen könnte, z.b. dadurch, dass f(x1)>0, f(x2)<0 2. Einen besseren Wert x 3 berechnen wir mit der Regula Falsi, die als Näherung ein gerades Kurvenstück annimmt: x2 x1 x3 = x2 + f ( x2 ) f ( x ) f ( x ) , 4. i. Diesen 2. Schritt wiederholen wir jeweils mit x i, und x i-1, bis uns das Ergebnis genau genug ist. 25 Iterative Grundstrukturen (2) 2. In der Informatik wird auch von Iteration gesprochen, wenn ein schrittweiser Zugriff auf Einzelelemente eines zusammengesetzten Datentyps (Sammlungen), z.b. einen String, erfolgt. Z.B wird wiederholt auf einen String mit veränderten Indexwert zugegriffen: in einem Sting otto sollen alle Kleinbuchstaben durch Großbuchstaben ersetzt werden: OTTO. Eine besondere Bedeutung hat dieses Vorgehen bei Sammlungen (engl. collections) bei Strukturen wie Felder (engl. arrays), Listen, Schlüssel- Wert-Paaren (engl. Maps, Hashes, Dictionaries) oder Mengen (engl. Sets), die wir allerdings detailliert erst in der übernächsten Vorlesung kennen lernen werden
14 Schleifen: Realisierungsformen der Iteration In Programmiersprachen werden iterative Lösungen beider Art durch Schleifen realisiert: Eine Schleife ist eine Kontrollstruktur in imperativen Programmiersprachen. Sie wiederholt einen Teil des Codes den so genannten Schleifenrumpf oder Schleifenkörper so lange, bis eine Abbruchbedingung eintritt. Schleifen, die ihre Abbruchbedingung niemals erreichen oder Schleifen, die keine Abbruchbedingungen haben, nennen wir Endlosschleifen. 27 Endlosschleife kann nur von außen unterbrochen werden durch ein Zurücksetzen (engl. reset), durch eine Unterbrechung (engl. interrupt), durch Ausnahmen (engl. exeptions), Abschalten des Gerätes oder ähnliches. Oft, aber nicht immer, ist eine Endlosschleife ein Programmierfehler, weil das Programm nicht normal beendet werden kann. Ist die Aufgabe des Programms jedoch z.b. eine Überwachung und Reaktion auf einen externen (gemeldet durch einen Interrupt) oder internen Fehlerzustand (gemeldet durch eine Exception), so kann dieses Verhalten ggf. gewollt sein! Grundsätzlich aber VORSICHT! 28 14
15 Schleifenarten die kopfgesteuerte oder vorprüfende Schleife, bei der erst die Abbruchbedingung geprüft wird, bevor der Schleifenrumpf durchlaufen wird (meist durch das Schlüsselwort WHILE (= solange-bis) angezeigt. die fußgesteuerte oder nachprüfende Schleife, bei der nach dem Durchlauf des Schleifenrumpfes die Abbruchbedingung überprüft wird, z.b. durch ein Konstrukt REPEAT-UNTIL (= wiederholen-bis). die Zählschleife, eine Sonderform der kopfgesteuerten Schleife, meist als FOR (= für ) -Schleife implementiert. 29 Schleifen: Realisierungsformen der Iteration (1) Schleifenart Ablaufplan Nassi-Shneidermann vorprüfend falsch B B while (B) do Block Block wahr Block nachprüfend repeat Block until (B) falsch Block B wahr B Block 30 15
16 Schleifen: Realisierungsformen der Iteration (2) Schleifenart Ablaufplan Nassi-Shneidermann Zählschleife for(c=1;b;c++)do Block C=1 B C=1 falsch B wahr C++ Block C++ Block 31 Schleifen in Programmiersprachen Bis auf die rein funktionalen Programmiersprachen (diese brauchen keine Schleifen) realisieren alle modernen Programmiersprachen eine Auswahl der hier dargestellten Grundstrukturen. Sie unterscheiden sich in den benutzten Schlüsselwörtern, der Art der Klammerung der Programmblöcke ((), {}, begin... end, etc.) und des Typs der Laufvariablen sowie deren Inkrementierung. Mit Python werden wir hier eine sehr leistungsfähige Variante kennen lernen
17 Historische Notiz Noch in den 60er-Jahren waren Sprunganweisungen (GOTO Sprungziel) in Programmen üblich, was bei größeren Programmen nahezu zur Unwartbarkeit führte, da sie schnell kaum noch überschaubar wurden Das GOTO Sprungziel ist eine direkte Abbildung des Maschinenbefehls JUMP Sprungziel lediglich musste das Sprungziel jetzt keine Programmadresse mehr sein, sondern konnte symbolisch als Zahl oder Name angegeben werden. 33 Historische Notiz (2) Schon im Mai 1966 publizierten Böhm und Jacopini einen Artikel, in dem sie zeigten, dass jedes Programm, das GOTO-Anweisungen enthält, in ein GOTO -freies Programm umgeschrieben werden kann, das nur mit Verzweigung (IF <Bedingung> THEN... ELSE... ) und einer Schleife (WHILE <Bedingung> DO xxx) arbeitet (gegebenenfalls unter Zuhilfenahme von etwas Kodeduplikation und der Einführung von booleschen Variablen (true/false)) Im März 1968 veröffentlichte Edsger W. Dijkstra seinen legendären Aufsatz Go To Statement Considered Harmful (Dieser Aufsatz ist das READING dieser Woche!) 34 17
18 Ein Beispiel für so genannten Spaghetti-Code mit GOTO-Anweisungen: GOTO UmgeheDasProblem GOTO if (Durcheinander < TötlicheDosis) then GOTO 60 GOTO RetteJungfrau IF ((Durcheinander < TötlicheDosis) THEN RetteJungfrau ELSE UmgeheDasProblem 35 Kontrollstrukturen in Python for- und while-anweisungen sind implementiert. while_stmt ::= "while" expression ":" suite ["else" ":" suite] for_stmt ::= "for" target list "in" expression_list ":" suite ["else" ":" suite] target_list ::= target ("," target)* [","] target ::= identifier "(" target_list ")" "[" target_list "]" attributeref subscription slicing expression_list ::= expression ( "," expression )* [","] 36 18
19 Anmerkung target darf alles sein darf, was links von einem Zuweisungsoperator stehen darf, also einfache Variablen, Tupel (x,y,z), etc. 37 Die Mächtigkeit der Python for-schleife rührt daher, dass die Sequenz S durch einen beliebigen Sequenzdatentyp (insbesondere dann macht die for-schleife Sinn) repräsentiert wird, also entweder ein String, eine Liste, ein Tupel oder eine Menge (set). Man kann als expression also eine beliebige Variable eines solchen Typs angeben, dann wird über alle Elemente iteriert
20 Die Mächtigkeit der Python for-schleife (2) Es können aber auch Teilbereiche angegeben werden, durch Indizierung oder wichtiger durch Teilbereichsbildung (Slicing), die zusammenhängende Bereiche einer Sequenz extrahiert: Die Bereichsgrenzen sind mit 0 und der Sequenzlänge vorbelegt: S[1:3] geht von Index 1 bis ausschließlich 3 (also 2) S[1:] geht vom Index 1 bis zum Ende S[:-1] nimmt alles bis auf das letzte Element (negative Indizes zählen vom Ende) 39 Die Mächtigkeit der Python for-schleife (3) Erweiterte Teilbereichsbildung S[i:j:k] S[::2] ergibt jedes zweite Element der Sequenz S von 0 bis zum Ende S[::-1] ergibt die Umkehrung der Sequenz S[4:1:-1] holt Elemente von rechts nach links ab Postion 4 (inklusive) bis Position 1 (exklusive) ab
21 Beispiele >>> for x in "Ein Text": print x E i n T e x t >>> for x in "Ein Text"[::-1]: print x t x e T n i E 41 In Zusammenhang mit Listen Im Zusammenhang mit Listen sind gerade für for-schleifen sogenannte Generator Ausdrücke (und List-Comprehension-Ausdrücke) und die eingebaute Funktion range ([start,]stop [,step] interessant. range liefert eine Liste von aufeinander folgenden Integern zwischen start und stop. Mit nur einem Parameter (stop) ergeben sich die Zahlen 0...stop-1. step ist optional und ist die Schrittweite 42 21
22 Um eine Schleife (while oder for) ohne Erreichen der Bedingung zu beenden, verwendet man die break-anweisung. Um in die nächste Schleifeniteration zu springen (wobei der Rest des Schleifenrumpfes übersprungen wird) verwendet man die continue-anweisung. Beispiele siehe Skript 43 Zusammenfassung Verzweigung, Iteration sind als grundlegende mathematische und informatische Lösungsmethoden vorgestellt worden Realisierungen in Python 44 22
23 Fragen und (hoffentlich) Antworten 45 Ausblick Funktionen Prozeduren - Methoden Danke für Ihre Aufmerksamkeit 46 23
2 Vorkurs Programmierung. Übungs-Nachlese. Übungs-Nachlese. Kontrollstrukturen, Prozeduren, Methoden und Funktionen
Kontrollstrukturen, Prozeduren, Methoden und Funktionen Prof. Dr. Detlef Krömker Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12) Übungs-Nachlese
MehrUML (Unified Modelling Language) von Christian Bartl
UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...
Mehr5. Strukturierte Programmierung
5. Strukturierte Programmierung 5.1 Ziele 5.2 Prinzipien 5.3 Basisstrukturen Folie 115 Apr-04 Ziele der strukturierten Programmierung Unterstützung einer methodischen Vorgehensweise beim Programmentwurf
MehrINSPIRE - Modellierung
INSPIRE - Modellierung Inhalt Motivation Modellierung UML Diagramme INSPIRE-Schulung LKROS 2 Motivation Was ist ein Modell, und warum wollen wir modellieren? Warum brauchen wir eine Modellierungssprache
MehrArrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
MehrEinfache Bedingte Ausführung
Kontrollstrukturen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder
MehrStruktogramme. Hinweise 1 Stand:
Struktogramme Hinweise 1 Stand: 09. 06. 2005 Dr. Reinhard Strangmeier Lehrstuhl für Wirtschaftsinformatik Prof. Dr. H. Gehring Fachbereich Wirtschaftswissenschaft FernUniversität in Hagen 1 Einleitung
MehrEINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18
EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrEINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 05: Weitere Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Weitere Kontrollstrukturen Wiederholungsstrukturen (Schleifen) While-,do-,for-Schleifen
MehrProgrammentwurf mittels strukturierter Programmierung. Programmentwurf. Nassi-Shneiderman-Diagramm [DIN ]
Programmentwurf Bevor man sich daran macht, den Quelltext eines Programmes zu schreiben, sollte man sich einen Plan der Struktur des zukünftigen Programmes machen. Diese Phase eines Softwarentwicklungsprojekts
MehrBKTM - Programmieren leicht gemacht.
BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi
MehrWirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte
Wirtschaftsinformatik 6a: Modellierung Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte Computertechnik Man kann Software auf 2 Arten herstellen: Entweder macht man sie so klar und einfach,
MehrKontrollstrukturen -- Schleifen und Wiederholungen
Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14
MehrKapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
MehrFACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
MehrLabor Software-Entwicklung 1
Labor Software-Entwicklung 1 Übereinkunft zu Programmablaufplänen PAP - Grundlagen Wintersemester 2015/2016 Seite 1 von 9 Inhalt DIN 66 001: Sinnbilder für Programmablaufplan... 3 Grenzstelle... 3 Ablauflinie...
MehrMartin 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
MehrEINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17
EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrWS2017/ 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
Mehr4.4 Imperative Algorithmen Verzweigung und Iteration
Eine weitere bedingte Schleife kann in Java mit dem Schlüsselwort for definiert werden: for (; i ; ) Alle drei Bestandteile im Schleifenkopf sind Ausdrücke
Mehr(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)
Anweisungen Eine Anweisung ist eine in einer beliebigen Programmiersprache abgefaßte Arbeitsvorschrift für einen Computer. Jedes Programm besteht aus einer bestimmten Anzahl von Anweisungen. Wir unterscheiden
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)
MehrNACHRICHTENTECHNISCHER SYSTEME
Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrProgramm 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
MehrProgrammiersprache 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.)
MehrProgrammentwurf Prof. Metzler
Programmentwurf 13.05.2014 Prof. Metzler 1 Programmiersprachen Assembler problemorientierte Sprache C anwendungsorientierte Sprache Basic Kommandosprachen 13.05.2014 Prof. Metzler 2 Assemblersprache Die
MehrAlgorithmen 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
MehrName Klasse Datum. Kontrollstrukturen steuern die Ausführung von Anweisungen
Name Klasse Datum 1 Allgemeines In der Programmierung unterscheidet man prinzipiell zwischen: Einfachen Anweisungen (Zuweisungen); z.b. Radius = Durchmesser /2 Kontrollstrukturen Kontrollstrukturen steuern
Mehr2 Teil 2: Nassi-Schneiderman
2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der
MehrEntscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert
Entscheidungen INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Ablaufstrukturen bis jetzt nur Sequenzen von Code neu Auswahl (Programmverzweigung) - Code aufgrund
MehrAbschnitt 5. Grundlagen der funktionalen & imperativen Programmierung
Übersicht Abschnitt 5. Grundlagen der funktionalen & imperativen Programmierung Einführung in die Programmierung 5. Grundlagen der funktionalen & imperativen Programmierung 1 Übersicht 5.1 Sorten und Abstrakte
MehrEINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
Mehr6. Iteration (Schleifenanweisungen)
6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"
MehrNassi-Shneiderman-Diagramm - Wikipedia
Nassi-Shneiderman-Diagramm aus Wikipedia, der freien Enzyklopädie Ein Nassi-Shneiderman-Diagramm ist eine Entwurfsmethode für die strukturierte Programmierung, die 1972/73 von Dr. Isaac Nassi und Dr. Ben
MehrEINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.
EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG
MehrProgrammierkurs Java
Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung
MehrIntensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
MehrGedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
Mehr2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:
2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der Java-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 3: Kontrollstrukturen Einfache Anweisungen Anweisungsblöcke Steuerung
MehrDie Unified Modeling Language UML
Informatik II: Modellierung Prof. Dr. Martin Glinz Kapitel 4 Die Unified Modeling Language UML Universität Zürich Institut für Informatik Inhalt 4.1 Hintergrund 4.2 Grundkonzepte der UML 4.3 Die Rolle
Mehr6. Iteration (Schleifenanweisungen)
Schwerpunkte While-: "abweisende" Schleife 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java Do-while-: "nichtabweisende" Schleife For-: zählergesteuerte Schleife Klassifikation
MehrInformatik für Ingenieure (InfIng)
Informatik für Ingenieure (InfIng) C - Kontrollstrukturen Doz. Dipl.-Ing. H. Hiller WS 2012/13 Kontrollstrukturen Erinnern Sie sich? Frühstücks-Ei kochen, 6 Minuten Was tun, wenn kein Topf vorhanden ist?
MehrKontrollstrukturen - 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,
MehrSchachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A
2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man umgangssprachlich,
MehrUML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller
UML Crashkurs v0.1 UML für Fachinformatiker von Hanjo Müller 3. Mai 2005 Inhaltsverzeichnis Inhaltsverzeichnis 1 UML - Unified Modeling Language 3 2 UML im Software Entwurf 4 2.1 Ablauf der Softwareentwicklung.............................
MehrJavakurs 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
MehrObjektorientierte Softwareentwicklung
Objektorientierte Softwareentwicklung Analyse- und Designmethoden Analyse- & Designmethoden Strukturierte, traditionelle Methoden Objektorientierte Methoden Funktionsorientierte Methoden Datenorientierte
MehrTagesprogramm
1 2015-10-22 Tagesprogramm Syntax und Semantik Varianten von Schleifen Varianten von Programmverzweigungen 2 2015-10-22 Syntax und Semantik Darstellung der Syntax Syntax: Aufbau der Sätze bzw. Programme
MehrEinführung in die Programmierung II. 3. Kontrollstrukturen
Einführung in die Programmierung II 3. Kontrollstrukturen Thomas Huckle, Stefan Zimmer 2.5.2007-1- Anweisungen: was bisher geschah Bisher kennen wir zwei Formen von Anweisungen Ein Ausdruck mit Semikolon
MehrECDL MODUL COMPUTING. Syllabus Version 1.0
ECDL MODUL COMPUTING Syllabus Version 1.0 DLGI Dienstleistungsgesellschaft für Informatik Am Bonner Bogen 6 53227 Bonn Tel.: 0228-688-448-0 Fax: 0228-688-448-99 E-Mail: info@dlgi.de, URL: www.dlgi.de In
MehrIdeen und Konzepte der Informatik
Ideen und Konzepte der Informatik Programme und Algorithmen Antonios Antoniadis 23. Oktober 2017 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert
Mehreinseitige Selektion zweiseitige Selektion
einseitige Selektion / Die einseitige Selektion gestattet die Ausführung einer eisung (welche wiederum eine Sequenz sein kann), wenn die angegebene wahr () ist. 19 zweiseitige Selektion _1 _2 _1 _2 Die
MehrC++ - Einführung in die Programmiersprache Schleifen
C++ - Einführung in die Programmiersprache Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Schleifen Iterationsanweisungen. Wiederholung von Anweisungsblöcken.
MehrKapitel 3: Anweisungen
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -66 Kapitel : Anweisungen Bedingte Anweisungen (Verzweigungen) Wiederholte Anweisungen (Schleifen) Abweisschleife Durchlaufschleife
MehrC++ 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
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND
MehrIdeen 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
Mehr4.4 Imperative Algorithmen Prozeduren
4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):
MehrBoolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:
Boolean Wertemenge: Wahrheitswerte {,}, auch {,} Deklaration: VAR present,billig,laut,gefunden : BOOLEAN; Ein-/Ausgabe: keine! Operatoren: Negation, Verneinung NOT ~ Konjunktion, logisches UND AND & Disjunktion,
MehrS. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
MehrEINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18
EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrRequirements Engineering I
Martin Glinz Requirements Engineering I Kapitel 9 UML Unified Modeling Language Universität Zürich Institut für Informatik 2006, 2008 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe sind
MehrUnified Modeling Language 2
Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was
Mehr2.5 Programmstrukturen Entscheidung / Alternative
Entscheidung, ob der folgende Anweisungsblock ausgeführt wird oder ein alternativer Block Entscheidung ob die Bedingung wahr oder falsch (True / False) ist Syntax: 2.5 Programmstrukturen 2.5.1 Entscheidung
MehrDas diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
MehrDatenbanken. Teil 2: Informationen. Kapitel 7: Objektorientierte Sicht. UML-Diagramme. Vorstellung der unterschiedlichen UML-Diagramme
Datenbanken objektorientierte Sicht Seite 1 von 76 Datenbanken Teil 2: Informationen Kapitel 7: Objektorientierte Sicht UML-Diagramme Vorstellung der unterschiedlichen UML-Diagramme 1. Diagrammtypen 2.
MehrArbeitsblätter für Algorithmierung und Strukturierung
Prof. Dr.- Ing. Ch. Wahmkow Fachbereich Maschinenbau Fachhochschule Stralsund Arbeitsblätter für Algorithmierung und Strukturierung Inhalt : Struktogramme, Beispiele und Erläuterungen - Sequenz - vollständige
MehrKompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen
Kompaktkurs Einführung in die Programmierung 4. Kontrollstrukturen Stefan Zimmer 28.2.2008-1- Anweisungen: was bisher geschah Bisher kennen wir zwei Formen von Anweisungen Ein Ausdruck mit Semikolon ist
Mehr2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
MehrJava 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
MehrFlussdiagramm / Programmablaufplan (PAP)
Flussdiagramm / Programmablaufplan (PAP) Basissysmbole Grenzstelle (Anfang, Zwischenhalt oder Ende des Programms/Algorithmus) Verbindung Zur Verdeutlichung der Ablaufrichtung werden Linien mit einer Pfeilspitze
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
MehrTag 3 Repetitorium Informatik (Java)
Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung
MehrPython Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13
Python Intro Vorsemesterkurs Informatik Praktischer Teil WS2012/13 2.Oktober 2012 Let's get started } Skript, Übungen, Folien... Alles zum Praxisteil auf http://vorkurs.cs.unifrankfurt.de Bücher: Fragen!
MehrEINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15
EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 2 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile
MehrWebbasierte Programmierung
Webbasierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der HTML5-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 6: JavaScript Kontrollstrukturen Verzweigungen Einseitig, zweiseitig,
MehrWS2018/ 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
MehrKontrollstrukturen und Logik
Programmieren mit Java Modul 2 Kontrollstrukturen und Logik Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 1.1 Anweisungen und Blöcke........................... 3 2 Operatoren (Teil II) 4 2.1 Relationale
MehrArbeitsblätter für Algorithmierung und Strukturierung
Prof. Dr. Ch. Wahmkow Fachbereich Maschinenbau Fachhochschule Stralsund Arbeitsblätter für Algorithmierung und Strukturierung Inhalt : Struktogramme, Beispiele und Erläuterungen - Sequenz - vollständige
MehrKleine Anekdote. Schleifen in C
Kleine Anekdote 1786 kam ein Junge mit 9 Jahren in die Volksschule. Um die Schüler zu beschäbigen, gab der Lehrer die Aufgabe alle Zahlen von 1 bis 100 zusammenzuzählen. Dieser neunjährige Junge lieferte
MehrKontrollstrukturen. Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue
Kontrollstrukturen Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue Einfache Verzweigung Eine Verzweigung erlaubt das bedingte Ausführen bestimmter Programm-Teile.
MehrObjektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
MehrSoftware-Praktikum. Überblick und Zeitplan
Standort Hagen Fachbereich Technische Betriebswirtschaft Software-Praktikum Überblick und Zeitplan Andreas de Vries und Volker Weiß Version: 26. September 2016 Inhaltsverzeichnis 1 Einführung und Überblick
MehrModul 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