SS / 16 schrittweise Verfeinerung -> Wirth, 1971, Programm Development by Stepwise Refinement
|
|
- Götz Hummel
- vor 7 Jahren
- Abrufe
Transkript
1 IMPLEMENTIERUNGSSTRATEGIE bis jetzt: Programmstruktur für Programmieren im Kleinen jetzt: Programmstruktur für Programmieren im Großen zunächst allgemein, d. h. sprachunabhängig SS / 16 MEILENSTEINE DER PROGRAMMIERSTILE Freistil-Programmierung -> Fortran, 1954, Algol 60, 1958; Cobol, 1960,... schrittweise Verfeinerung -> Wirth, 1971, Programm Development by Stepwise Refinement modulare Programmierung -> Anfang der 70iger Jahre -> CDL, FORTRAN ADT-Programmierung -> Simula, 1966; -> Concurrent Pascal, 1974; Alphard, 1974; CLU, 1975;... -> Anfang der 90iger Jahre -> Modula-2, 1980; Oberon, 1987;... Java, 1996,... Objekt-orientierte Programmierung monika.heiner@informatik.tu-cottbus.de SS / 16
2 ZUTATEN procedure EULER (in G : GraphT, out antwort : (nein,geschlossen,offen)) var U: Integer; begin /* 1. Bestimme die Anzahl U */ U := 0; loop Knoten von G do if Anzahl der anliegenden Kanten ungerade then U := U + 1 endif endloop; /* 2. Auswerten der ermittelten Anzahl U */ switch U : case 0: /* geschlossen, d.h. ex Eulerkreis */ case 2: /* offen, d.h. es ex Eulerweg */ default /* nein, d.h. es ex keine Lösung */ endswitch end EULER. monika.heiner@informatik.tu-cottbus.de SS / 16 ZUTATEN procedure EULER (in g : GraphT, out antwort : (nein,geschlossen,offen)) var U: Integer, node: NodeT; begin /* 1. Bestimme die Anzahl U */ U := 0; firstnode(g, node); repeat if odd( neighbours (g, node)) then U := U + 1 endif until not nextnode(g, node); /* 2. Auswerten der ermittelten Anzahl U */ switch U : case 0: /* geschlossen, d.h. ex Eulerkreis */ case 2: /* offen, d.h. es ex Eulerweg */ default /* nein, d.h. es ex keine Lösung */ endswitch end EULER. monika.heiner@informatik.tu-cottbus.de SS / 16
3 ZUTATEN program EulerMain procedure euler (..) procedure initgraph (..) procedure neighbours (..) procedure nextnode (..) procedure addarc (..) procedure addnode (..) procedure createkoenigsberg (..) procedure firstnode (..) GraphT graph = [][] integer procedure odd (..) monika.heiner@informatik.tu-cottbus.de SS / 16 I. IDEE: I : S : SCHRITTWEISE VERFEINERUNG program EulerMain GraphT graph = [][] integer procedure euler (..) procedure createkoenigsberg (..) procedure initgraph (..) procedure firstnode (..) procedure nextnode (..) procedure neighbours (..) procedure addnode (..) procedure addarc (..) procedure odd (..) monika.heiner@informatik.tu-cottbus.de SS / 16
4 1. IDEE, I, W, WERTUNG monolithisches Programm = eine Datei man kann das Programm von oben nach unten lesen ->... und bei einem geeigneten Abstraktionsniveau aufhören eine Änderung (egal wo, egal wie umfangreich) erfordert erneute Übersetzung der gesamten Quelle -> schnell sehr zeitaufwendig -> Übersetzungszeiten wachsen i. allg. überproportional mit Quellkode-Länge monika.heiner@informatik.tu-cottbus.de SS / IDEE: I : M : MODULARE PROGRAMMIERUNG Zerlegung in Programm-Module (Bausteine, Dateien) ein Modul kann getrennt -> organisiert -> separate Datei -> entwickelt -> Arbeitsteilung im Projektteam -> übersetzt -> Zeitersparnis bei größeren Programmen (Änderung in einem Modul erfordert nur erneute Übersetzung dieses Moduls) -> getestet -> Bottom-up Entwurf (mit einem geeigneten Testrahmen) werden Splittung erfolgt nach inhaltlichen Gesichtspunkten -> funktionaler Zusammenhang -> minimale Schnittstellen Kopplung zwischen Modulen erfolgt über import/export monika.heiner@informatik.tu-cottbus.de SS / 16
5 2. IDEE: I : M : MODULARE PROGRAMMIERUNG module GraphT export proc firstnode(..) export proc nextnode(..) export proc neighbours(..) export proc initgraph(..) export proc addnode(..) export proc addarc(..) GraphT graph = [][] integer S C H N I T T S T E L L E module EulerMain import GraphT; proc euler(..) proc createkoenigsberg(..) procedure odd(...) monika.heiner@informatik.tu-cottbus.de SS / 16 -S VISUALISIERUNG DER IMPORT/EXPORT-STRUKTUR Modul-Graph -> Knoten - Module -> Kanten - import/export-relation allg. können beliebige Geflechte von Modulen aufgebaut werden module E module G module F um die Übersicht zu behalten, empfehlen sich jedoch (weitgehend) hierarchische (d.h. azyklische) Strukturen module A module D module B module C monika.heiner@informatik.tu-cottbus.de SS / 16
6 2. IDEE, I, W, WERTUNG modularisiertes Programm = zwei Module sinkende Gesamtübersetzungszeiten während der Programmentwicklung ABER EulerMain kann erst übersetzt werden, wenn GraphT erfolgreich übersetzt wurde -> zur Übersetzung von GraphT müssen jedoch alle Prozeduren und die Implementierung der Datenstruktur ausformuliert sein nur schwache Kontrolle über die Schnittestelle Offenlegung aller Implementierungsdetails keine Trennung von Schnittstellen- und Implementierungsinformationen monika.heiner@informatik.tu-cottbus.de SS / IDEE: I : DATENKAPSEL D (I (INFORMATION HIDING) Modul = ADT ADT - Datentyp, der ausschließlich gekennzeichnet ist durch -> Menge der Werte, die man Objekten dieses Typs zuweisen kann -> Menge von Operationen, die man auf Objekten dieses Typs durchführen kann (was, aber nicht wie) dazu wird ein ADT-Modul in zwei Komponenten zerlegt -> Definitionsteil (export) -> Schnittstelleninformationen -> Interface - Prozedurköpfe - Typname (linke Seite der Typvereinbarung) -> Implementierungsteil - Prozedurkörper - Datenstruktur (rechte Seite der Typvereinbarung) von außen sichtbar von außen unsichtbar räumliche Trennung von Prozedurkopf/-körper bzw. linke/rechte Seite einer Typvereinbarung monika.heiner@informatik.tu-cottbus.de SS / 16
7 3. IDEE: I : D : DATENKAPSEL ADT GraphT Interface export proc firstnode(..); export proc nextnode(..); export proc neighbours(..);... module EulerMain import GraphT; proc euler(..) Implementation export proc firstnode(..) export proc nextnode(..) export proc neighbours(..) proc createkoenigsberg(..)... GraphT graph = [][] integer procedure odd(...) monika.heiner@informatik.tu-cottbus.de SS / IDEE, I, WERTUNG W - V - VORTEILE weitere Modularisierung -> Programm = drei Module Die Implementierung des ADT (Implementations-Module) kann ausgewechselt werden, ohne daß die darauf aufbauenden Algorithmen (Applikations-Module) angepaßt werden müssen. Die Implementierungs-/Validierungsmühen, die man bei der Realisierung der Module investiert hat, können auch von anderen Algorithmen (derselben Problemklasse) nachgenutzt werden. Nach Festlegen der Schnittstelle können die ADT-Implementierungen und Applikations-Algorithmen unabhängig voneinander, z.b. -> parallel, -> räumlich verteilt, bearbeitet werden. monika.heiner@informatik.tu-cottbus.de SS / 16
8 ZUSAMMENFASSUNG DES VORGEHENS Algorithmus 1 Algorithmus 2 Algorithmus 3 2. Applikations- Module ADT.DEF 1. Interface- Module Impl.1 Impl.2 Impl.3 3. Implementations- Module (# (# GEBEN REIHENFOLGE AN) monika.heiner@informatik.tu-cottbus.de SS / IDEE, I, WERTUNG W - N - NACHTEILE Ein solcher Programmierstil ist zunächst aufwendiger! Er lohnt sich dann, wenn -> größere Projekte (mit einer erwarteten längeren Lebensdauer) -> arbeitsteilig -> über einen längeren Zeitraum entwickelt werden. Compileroptimierung Programmlaufzeit monika.heiner@informatik.tu-cottbus.de SS / 16
Was ist ein Problem? Ein Problem im Sinne der Programmierung ist durch Computer lösbar. Programmieren Entwurf/ Implementierung
VOM PROBLEM ZUM PROGRAMM Was ist ein Problem? Ein Problem im Sinne der Programmierung ist durch Computer lösbar. Aspekte -> es läßt sich hinreichend genau spezifizieren (z. B. als Funktion Eingabewerte
MehrVOM PROBLEM ZUM PROGRAMM
VOM PROBLEM ZUM PROGRAMM Was ist ein Problem? Ein Problem im Sinne der Programmierung ist durch Computer lösbar. Aspekte: es läßt sich hinreichend genau spezifizieren (z. B. als Funktion Eingabewerte ->
MehrVOM PROBLEM ZUM PROGRAMM
VOM PROBLEM ZUM PROGRAMM Was ist ein Problem? monika.heiner@informatik.tu-cottbus.de SS 2013 1.1-1 / 28 VOM PROBLEM ZUM PROGRAMM Was ist ein Problem? Ein Problem im Sinne der Programmierung ist durch Computer
MehrKÖNIGSBERGER BRÜCKENPROBLEM
VOM PROBLEM ZUM PROGRAMM NUTZEN EINES FORMALEN MODELLS (U. A.) Was ist ein Problem? Ein Problem im Sinne der ierung ist durch Computer lösbar. Man kann leichter sehen, ob das Problem - oder Teile davon
MehrSS 2013 1.1-1 / 12
AMPELSTEUERUNG EINER KREUZUNG monika.heiner@informatik.tu-cottbus.de SS 2013 1.1-1 / 12 (A) PROBLEM D C E B A Ziel (1) Sicherheit: keine kollidierenden Wege gleichzeitig, z.b. EB und AD Ziel (2) Maximierung:
Mehr4.Grundsätzliche Programmentwicklungsmethoden
4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden
Mehr6. 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
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
Mehr1.3 Geschichte der Programmiersprachen
50er Jahre erste Definition höherer Programmiersprachen Effizienz maßgebliches Designziel FORTRAN (Backus) als Sprache für wissenschaftliches Rechnen (komplexe Berechnungen, einfachen Daten), Arrays, Schleifen,
MehrKnasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11. vii. Inhaltsverzeichnis
Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11 vii 1 Einführung 1 1.1 Motivation.................................... 1 1.2 Vorteile der neuen Techniken...................... 3 1.3 Aufbau des
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
Mehr1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)
4. Zur Struktur der PS PASCAL 4.1. Einleitende Bemerkungen 1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language) Anfang 60er (USA) COBOL (Commercial Business
MehrSprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren
Hanspeter Mössenböck Sprechen Sie Java? Eine Einführung in das systematische Programmieren 3., überarbeitete und erweiterte Auflage Tm\ dpunkt.verlag 1 Grundlagen 1 1.1 Daten und Befehle 2 1.2 Algorithmen
MehrALGOL 68 im Aspekt einer modernen Programmiersprache???
ALGOL 68 im Aspekt einer modernen Programmiersprache??? General-purpose-Programmiersprache: Ein sehr wichtiges Kriterium ist die Möglichkeit, alle Algorithmen (=Lösungsverfahren) in einer Programmiersprache
MehrTeil IV : Abstrakte Datentypen (ADT)
Teil IV : Abstrakte Datentypen (ADT) Abstraktion ADT in Modula-2 K. Murmann, H. Neumann, Fakultät für Informatik, Universität Ulm, 2001 1. Abstraktion Rekapitulation Realisation eines Stacks Idee für ADT-Konzept
MehrHistorische Innovationen von Niklaus Wirth
Historische Innovationen von Niklaus Wirth Romain Schmitz 26. Januar 2006 Biografie 1934 geboren am 15. Februar, Schweiz 1959 Abschluss als Elektroingenieur 1963 Promotion, Berekley 1968 Professor an der
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrProgrammiersprachen Pascal, Modula-2, Oberon. Charlotte Prieß
Programmiersprachen Pascal, Modula-2, Oberon Charlotte Prieß Überblick Leben Historische Einordung Pascal Modula-2 Oberon Vorteile von Pascal gegenüber C Warum sich C durchgesetzt ist? Leben 1934 geboren
Mehr5. Bemerkungen zur modularen Programmierung
5. Bemerkungen zur modularen Programmierung Literatur: Gehring/Röscher: Einführung in Modula-2. de Gruyter 1989 Pomberger: SWT und Modula-2. Hanser 1987, 2., bearb. Auflage Pomberger/Blaschek: Software
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
MehrModula. A Language for Modular Multiprogramming
Modula A Language for Modular Multiprogramming Daniel Ivancic 0425234 email: e0425234@student.tuwien.ac.at Modula : A Language for Modular Multiprogramming Abstract: Modula wurde 1976 von Niklaus Wirth
MehrGrundlagen der Systemnahen Programmierung in C (GSPiC)
Grundlagen der Systemnahen Programmierung in C (GSPiC) Teil C Systemnahe Softwareentwicklung Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität
MehrTaschenrechner Version 6.1
Taschenrechner Version 6.1 Wie kann ich ein Programmteil 10 mal wiederholen? Start i := 1 FOR i := 1 TO 10 DO Eingabe Berechnung Ausgabe BLOCK i:= i+1 i
Mehr1 Programmiersprachen 1.1 1
1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada
MehrTeil VI: Prozeduren Feld-Parameter & Typen. 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen
Teil VI: Prozeduren Feld-Parameter & Typen 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen Offene ARRAY-Parameter Motivation Problem : geg.: mehrere deklarierte Felder unterschiedlicher Längen,
Mehr9. Ausnahmebehandlung 10. Softwareentwicklung: Anforderungsanalyse und Problemdefinition - ein Beispiel Abstrakte Datentypen,
III: Objektorientierung und SW-Entwicklung 1. Grundkonzepte der Objektorientierung (1): abstrakte Datentypen, Objekte, Klassen 2. Objektorientierung: Grundlegende Fallbeispiele 3. Grundkonzepte der Objektorientierung
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
MehrTeil III. Objektorientierung und SW-Entwicklung
Teil III Objektorientierung und SW-Entwicklung K. Bothe K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 2. Dez. 2015 2 III: Objektorientierung und SW-Entwicklung 1. Grundkonzepte
MehrAbschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 2: Modularität, Wiederverwendbarkeit Programm für heute 3 Software Qualität Modularität Wiederverwendbarkeit
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
Mehr3. Methodik der Programmerstellung
3. Methodik der Programmerstellung 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Pascal-Programms
MehrProgrammieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Spezial Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe bei primitivem Datentypen (Wertkopie) public class MethodParameters
MehrQuicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
MehrSyntax der Sprache PASCAL
Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Mehr2.4 Datenabstraktion und Objektorientierung Datenabstraktion in Programmiersprachen
2.4 Datenabstraktion und Objektorientierung 2.4.1 Datenabstraktion in Programmiersprachen Datenabstraktion: zur Beherrschung von Komplexität unerlässlich. In jeder Programmiersprache kann man gemäß den
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
MehrH. Pudlatz. Einführung in die Programmiersprache Modula-2
H. Pudlatz Einführung in die Programmiersprache Modula-2 Programmiersprachen Einführung in ALGOL 68, von H. Feldmann Einführung in die Programmiersprache Pascal, von K.-H. Becker und G. Lamprecht Einführung
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
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
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
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
MehrProgrammieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Special Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe: Wertkopie -By- public class MethodParameters { public
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrProgrammiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen
Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung
Mehrtdaten=record name : string; alter: integer; groesse:real; end;
tdaten=record - Zugriff auf Felder (name, alter, groesse) über externe Methoden, die für jede Unit und jede Variable dieses Records neu geschrieben werden müssen - Zugriff nicht kontrollierbar (immer Schreib-
MehrGrundlagen wissenschaftlichen Arbeitens (ws /05)
Grundlagen wissenschaftlichen Arbeitens (ws.. 2004/05) Thema: The programming language PASCAL Autor: Ratko Trajanovski 1 kurzfassung Zur Sprache PASCAL Pascal in der Ausbildung Lexikalische Elemente Programmaufbau
Mehr1 Algorithmische Grundlagen
1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
Mehr13 Abstrakte Datentypen
13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)
MehrEinführung in die Objektorientierung (OO)
Einführung in die Objektorientierung (OO) I) Warum OO? II) Grundbegriffe der OO III) IV) Darstellung von Klassen und Objekten Kapselung I) Warum OO? 1) Früher: Prozedurale / strukturierte Programmierung
MehrFACHHOCHSCHULE MANNHEIM
Objektorientierte Programmierung 8. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung e Die 1. lgruppe von KobrA: Realization le der Realization: Kurze Structural
MehrHASKELL KAPITEL 8. Bäume
HASKELL KAPITEL 8 Bäume Baum rekursiv definierte Datenstruktur nicht linear vielerlei Varianten: Struktur der Verzweigung, Ort der gespeicherten Information (Knoten, Kanten, Blätter ) 2 Binärbaum Jeder
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrPython zur Lösung von AvA Übung 1 VON MORITZ FEY
Python zur Lösung von AvA Übung 1 VON MORITZ FEY Übersicht 2 Einführung Socket-Schnittstellen Datei-Zugriff Aufbau der Nachrichten und Serialisierung Besonderheiten von Python Realisierung des Programms
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 13. Übung minimale Spannbäume, topologische Sortierung, AVL-Bäume Clemens Lang Übungen zu AuD 4. Februar 2010 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen
MehrAktivitätsanalyse (Liveness Analysis)
Aktivitätsanalyse (Liveness Analysis) Compilerbau Aktivitätsanalyse (Liveness Analysis) 220 Aktivitätsanalyse (Liveness Analysis) Für eine gute Registerverteilung müssen wir an jedem Programmpunkt wissen,
MehrObjektorientierte Konzepte
Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen
MehrÜ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
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
MehrInformationsverarbeitung im Bauwesen
12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten
MehrCopyright, Page 1 of 7 Heapsort
www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl
Mehr1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -
1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen Folge von
MehrInhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.
Inhalt Algorithmus Euklidscher Algorithmus Sortieren Programmiersprachen Entwicklungsschritte eines Programms Algorithmen 1 Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung
MehrProgrammierparadigmen
Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich
Mehrtype Subtrees is array (Natural range < >) of Kptr; type Ktree (Arity: Natural) is record content : SomeType; children : Subtrees (1..
3.4 Darstellung von Bäumen Darstellung von k-beschränkten Bäumen: Mit wenigen Knoten und/oder kleinem k durchaus adäquat mit folgender Darstellung: type KTree; type KPtr is access KTree; type KTree is
MehrProgrammieren in JAVA. Kapitel 0
FG TECHNISCHE INFORMATIK V JV 000 00 TH 01 Programmieren in JAVA Kapitel 0 0. Grundkonzepte der Objektorientierten Programmierung 0.1. Objekte und Klassen 0.2. Kapselung 0.3. Vererbung 0.4. Polymorphie
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
Mehrn 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -
n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen l
MehrInhalt. Einführung in die Strukturierte Programmierung 15
Inhalt Einführung in die Strukturierte Programmierung 15 1.1 Was bedeutet Programmieren? 17 1.2 Was bedeutet Strukturierte Programmierung? 18 1.3 Was ist Pascal? 19 1.4 Was ist PS/k? 20 1.5 Warum wird
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrSoftware. 7. Methoden. Software kann sehr komplex sein... Schwerpunkte. Grundproblem der SW-Entwicklung: Komplexität
Schwerpunkte 7. Methoden Java-Beispiele: Fakultaet.java Zeitplan.java Abstraktionen in der SW-Entwicklung Wesen der 'Methode': algorithmische (prozedurale) Abstraktion Methodendeklaration - Methodenaufruf
MehrSoftware Engineering
Software Engineering Gustav Pomberger, Wolfgang Pree Architektur-Design und Prozessorientierung ISBN 3-446-22429-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22429-7 sowie
MehrKürzeste-Wege-Algorithmen und Datenstrukturen
Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2
MehrEin Werkzeug zur Überdeckungsmessung für kontrollflussbezogene Testverfahren
Ein Werkzeug zur Überdeckungsmessung für kontrollflussbezogene Testverfahren Hendrik Seffler HU Berlin Abschlussvortrag p. 1/25 Was? Entwicklung eines Werkzeugs zur Überdeckungsmessung für kontrollflussbezogene
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner
MehrInstitut für Programmierung und Reaktive Systeme 12. Juni Programmieren II. 12. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Juni 205 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,
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
MehrInstitut für Programmierung und Reaktive Systeme 31. Mai Programmieren II. 12. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 1. Mai 01 Programmieren II 1. Übungsblatt Hinweis: Dieses Übungsblatt enthält die dritte Pflichtaufgabe.
MehrProgrammierparadigmen A01 OOP. Programmierparadigmen
2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrGliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
Mehr2.2 Einfache Datenstrukturen
2.2 Einfache Datenstrukturen Konstante und Variable Die Begriffe "Konstante" und "Variable" haben zunächst auch in der Informatik dieselbe grundsätzliche Bedeutung wie in der übrigen Mathematik. Variablen
MehrTheoretische 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
MehrInstitut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 27. Mai 206 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrInstitut für Programmierung und Reaktive Systeme 28. Mai Programmieren II. 12. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 28. Mai 208 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrModulare Programmierung in C und in Better-C
Kapitel 3 Modulare Programmierung in C und in Better-C... the art of programming is the art of organising complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible. Edsger
MehrAlgorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012
Algorithmen und Datenstrukturen Tafelübung 14 Jens Wetzl 8. Februar 2012 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:
MehrAlgorithmen und ihre Programmierung
Veranstaltung Pr.-Nr.: 10 10 V Wirtschaftsinformatik für Wirtschaftwissenschaftler Algorithmen und ihre Programmierung -Teil 1 - Dr. Chris Bizer WS 007/008 Einführung Definition: Algorithmus Ein Algorithmus
MehrIn den weiterführenden Vorlesungen
1.1 Inhalte dieser und weiterer Vorlesungen Elemente der sog. Strukturierten Programmierung zur Darstellung der Algorithmen (Kontrollstrukturen, Methoden) Datentypen (Datenstrukturen) zusammen --> Objekte!
MehrPhysikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
MehrInstitut für Programmierung und Reaktive Systeme 5. Dezember Programmieren II. 12. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 5. Dezember 206 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrABITURPRÜFUNG 2001 GRUNDFACH INFORMATIK (HAUPTTERMIN)
ABITURPRÜFUNG 2001 GRUNDFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: 210 Minuten Hilfsmittel: Formeln und Tabellen für die Sekundarstufen I und II. Berlin: Paetec, Ges. für Bildung und Technik mbh; PC mit
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
Mehr