mit Java Ansprechpartner Dr. Thomas Lux / Christian Klimetzek Christian Klimetzek, M.Sc. Raum GC 3/136 Mail: thomas.lux@rub.de

Größe: px
Ab Seite anzeigen:

Download "mit Java Ansprechpartner Dr. Thomas Lux / Christian Klimetzek Christian Klimetzek, M.Sc. Raum GC 3/136 Mail: thomas.lux@rub.de"

Transkript

1 Objektorientierte Programmierung mit Java / Christian Klimetzek Lehrstuhl für Wirtschaftsinformatik Prof. Dr. Roland Gabriel Ansprechpartner p Lehrstuhl hl für Wirtschaftsinformatik i f tik Raum GC 3/136 Mail: thomas.lux@rub.de Christian Klimetzek, M.Sc. Raum GC 3/134 Mail: cklimetzek@winf.rub.de

2 Terminplanung Veranstaltung im Block am 2., 3., 4. und 5. April 2012 Vormittag ca. 10 bis 12 Uhr Nachmittags ca bis ca Uhr Übungstermine 10. und 11 April Klausur am 18. April, von 14 bis 16 Uhr Literatur Viele Bücher, aber auch sehr viel gute Informationen im Internet: The Java Tutorials Java ist auch eine Insel" Software: Java: Eclipse:

3 Gliederung 1. Einführung 2. Grundlagen: IDE (Eclipse) und Programmiersprache (Java) 3. Methodik der Programmerstellung 4. Strukturierte Programmierung 5. Einfache Datentypen 6. Kontrollstrukturen 1. Einführung 11P 1.1 Programmierung &S Software 1.2 Programmiersprachen

4 Programm Eine zur Lösung einer Aufgabe vollständige Anweisung zusammen mit allen erforderlichen Vereinbarungen heißt PROGRAMM. Ein Programm setzt sich aus Befehlen zusammen, die von der Zentraleinheit in logischer Reihenfolge abgearbeitet werden. Der Vorgang der Erstellung einer derartigen Anweisung heißt PROGRAMMIEREN. Software Die Menge von PROGRAMMEN, zugehörigen DATEN und notwendigen DOKUMENTATIONEN, die zusammengefasst erlauben, mit Hilfe eines Computers Aufgaben zu erledigen, nennt man SOFTWARE. Software-Engineering/Software-Technik: Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden, Konzepten, Notationen und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software-Systemen. Systemen (Balzert, 1996)

5 Software - Charakteristika Software ist ein immaterielles i Produkt Software ist schwer zu bewerten Software unterliegt keinem Verschleiß Software ist im allgemeinen leichter und schneller änderbar als ein technisches Produkt Software benötigt keine Ersatzteile Software altert Software - Tendenzen Zunehmende Bedeutung im Verhältnis zur Hardware Strategischer Wettbewerbsfaktor Wachsende Komplexität Zunahme der Standardsoftware Zunehmende Fremdentwicklung Zunehmende Altlasten Zunehmende Qualitätsanforderungen

6 Software - Systematisierung Software Systemsoftware (Basissoftware) Anwendungssoftware (application software) Betriebssysteme Technisch/Wissenschaftliche Programme Steuerprogramme Übersetzungsprogramme Dienstprogramme Kommerzielle Programme (d.h. auf betriebliche Funktionen bezogene Programme) Branchenprogramme Systemnahe Software (z.b. Datenbankverwaltungssysteme, t Kommunikationsprogramme) Programmiersprachen/ Programmentwicklungssysteme (CASE-Systeme) Systemsoftware Die Software, die für eine spezielle Hardware oder eine Hardwarefamilie entwickelt wurde, um den Betrieb und die Wartung dieser Hardware zu ermöglichen bzw. zu erleichtern, nennt man SYSTEMSOFTWARE. Die Systemsoftware steuert und überwacht die Abwicklung von Anwendungssoftware auf der jeweiligen Maschinenkonfiguration.

7 Anwendungssoftware Die Anwendungssoftware unterstützt tüt t die Aufgaben des Anwenders und baut auf der Systemsoftware der verwendeten Hardware auf. Individualsoftware vs. Standardsoftware Eigenentwicklung vs. Fremdentwicklung Offene Systeme vs. Proprietäre Systeme Softwareschichten Benutzer Benutzeroberfläche Anwendungssoftware Benutzer Benutzer Kommunikation Betriebs - system Assembler CASE Compiler Individuell entwickelte Programme DBMS Dienstpro- gramme Branchenpakete Inter- preter Funktional orient. Pakete Benutzer

8 Programmiersprachen Eine PROGRAMMIERSPRACHE ist eine Künstliche Sprache zum Abfassen von Computerprogrammen (DIN 44300). Programmiersprachen sollen es ermöglichen, den Lösungsweg (Algorithmus) für eine spezielle Problemstellung in einer der Maschine verständlichen Sprache zu formulieren. Programmierumgebung g g Eine Programmierumgebung ist ein Softwaresystem, t das eine Sammlung von Werkzeugen, die zur Entwicklung von Software dient, zur Verfügung stellt. Wesentliche Komponenten: TEXTEDITOR: zur Erfassung des Quelltextes ÜBERSETZUNGSPROGRAMME: Programm, das Anweisungen in einer höheren Sprache liest, analysiert und in bedeutungsgleiche Maschinenbefehle umwandelt DEBUGGER: ermöglicht ein schrittweises Abarbeiten des Programms zu Testzwecken HILFESYSTEM: erlaubt die kontextsensitive Abfrage von Informationen zur Programmsyntax uä u.ä. GUI-BUILDER: Modellierung der Benutzeroberfläche

9 CASE-Systeme Computer Aided d Software Engineering-Systeme i Eine CASE-System ist eine integrierte SOFTWARE- Entwicklungsumgebung, g g die den gesamten Softwarelebenszyklus (Problemanalyse, Systemspezifikation, Systementwurf, Implementierung, Systemtest, Wartung und Pflege) unterstützt. CASE-System: Eclipse

10 Programmiersprachenstammbau m Sprachgenerationen Sprachen der ersten Generation: MASCHINENSPRACHEN Sprachen der zweiten Generation: ASSEMBLERSPRACHEN Sprachen der dritten Generation: HÖHERE PROGRAMMIERSPRACHEN Sprachen der vierten Generation: 4GL-SYSTEME Alternative Sprachrichtungen: SPRACHEN DER KÜNSTLICHEN INTELLIGENZ (Sprachen der fünften Generation) OBJEKTORIENTIERTE PROGRAMMIERSPRACHEN VISUELLE PROGRAMMIERSPRACHEN Maschinensprache Assemblersprachen Höhere Programmiersprachen 4GL-Systeme Alternative Sprachrichtungen

11 Maschinensprachen (1. Generation) Jeder Befehl besteht aus einer Folge der Binärzeichen i 0 und 1 entsprechend dem Befehlssatz des jeweiligen Prozessors. Beispiel: Addiere 3+4 (Großrechner) Befehl Addition, Operanden 3, 4) unverständlich, unübersichtlich, fehleranfällig Assemblersprachen (2. Generation) Eine maschinenorientierte Sprache, die den Aufbau der Befehle der Maschinensprache beibehält, die Instruktions-teile jedoch nicht primär verschlüsselt, lt sondern durch Symbolik (mnemotechnische h Abkürzungen) ausdrückt. Beispiel: Addiere 3+4 Assemblerbefehl ADD 3, 4 Die Übersetzung in Maschinensprache erfolgt mit Hilfe eines ASSEMBLIERERS (1:1-Übersetzung). optimale Speicherausnutzung und Verarbeitungsgeschwindigkeit enge Hardware-Orientierung, unübersichtlich, fehleranfällig

12 Höhere / Prozedurale Programmiersprachen (3. Generation) Weitgehend genormte Sprachen, die für einen speziellen Anwendungsbereich konzipiert (problemorientiert) sind und nahezu unabhängig von einem bestimmten Rechnertyp sind. Die Programmierung erfolgt durch die Formulierung von Algorithmen (Algorithmus = Abfolge von Operationen, die jeweils Daten bearbeiten). b Beispiel: Addiere 3+4 Operation SUMME = Übersetzung in Maschinensprache erfolgt durch einen Compiler/Interpreter (1:n-Übersetzung) schlechtere Performance Übersetzungsprogramm g I Ein Programm, das nicht in Maschinensprache h abgefaßt ist, wird QUELLPROGRAMM (QUELLCODE/SOURCECODE) genannt. Ein in Maschinensprache vorliegendes Programm (=Zielprogramm des Übersetzungsvorgangs) heißt OBJEKTPROGRAMM (OBJEKTCODE). Unter einem ÜBERSETZUNGSPROGRAMM (TRANSLATOR) versteht man ein Programm, das Anweisungen in einer höheren Sprache oder in Assemblersprache liest, analysiert (Optimierung) i und in bedeutungsgleiche Maschinenbefehle umwandelt.

13 Übersetzungs-programm g II QUELLCODE: PROGRAM test; BEGIN WriteLN ( Hallo! );... ÜBERSETZUNGS- PROGRAMM (Assemblierer, Compiler, Interpreter) OBJEKTCODE: Hallo! Compiler vs. Interpreter Compiler Ein Übersetzungsprogramm, das in einer höheren Programmiersprache abgefaßten Quellcode komplett in Zielanweisungen einer maschinenorientierten Programmiersprache umwandelt (kompiliert). Das erzeugte Objektprogramm kann für spätere Verarbeitungsläufe abgespeichert werden, so daß vor der Ausführung keine Übersetzung mehr nötig ist. Interpreter Ein Programm zur schrittweisen se Übersetzung von Quellcode in lauffähigen Maschinencode, welcher sofort (zeilenweise) ausgeführt wird. Im Unterschied zum Kompilieren entsteht kein vollständiges, aufbewahrungsfähiges Objektprogramm. Bei jedem Programmstart erfolgt ein erneuter Übersetzungsvorgang

14 Beispiele für 3-GL-Sprachen I COBOL (COmmon Business Oriented Language) Entwicklung in den 50er Jahren betriebswirtschaftliche Anwendungen (Verarbeitung umfangreicher Datenbestände) meistgenutzte Programmiersprache auf Großrechnern Standard: ANSI-COBOL-85 FORTRAN (FORmula TRANslator) Entwicklung in den 50er Jahren von IBM technisch-wissenschaftliche Anwendungen (effiziente Programme für komplexe mathematische Algorithmen) Standard: FORTRAN 90 BASIC (Beginners All-Purpose Symbolic Instruction Code) Entwicklung in den 60er Jahren als vereinfachtes FORTRAN fehlende Unterstützung der strukturierten Programmierung führte zu Spaghetticode Weiterentwicklung (MICROSOFT) zur professionellen Makro- und Programmiersprache VISUAL BASIC (Visuelle Programmierung) Beispiele für 3-GL-Sprachen II C Entwicklung in den 70er Jahren in den Bell Laboratories des amerikanischen Telekommunikationskonzerns AT&T effizientes Laufzeitverhalten eng mit dem Betriebssystem UNIX verbunden (UNIX zu 90% in C geschrieben) universell einsetzbar auf allen gängigen Rechnern objektorientierte Nachfolger: C++ Makrosprachen: Automatisierung von wiederkehrenden Abläufen innerhalb von Anwendungen (z.b. Textverarbeitung, Tabellenkalkulation) Proprietär: Der Befehlsumfang wird ausschließlich von einem einzigen Hersteller definiert bzw. weiterentwickelt zumeist herstellerspezifische Dialekte der Programmiersprache BASIC z.b. Visual Basic for Application (VBA) von MICROSOFT, LotusScript von LOTUS

15 Beispiele für 3-GL-Sprachen III PASCAL 1971 von Prof. Niklaus Wirth an der ETH Zürich entwickelt benannt nach französischen Mathematiker und Philosophen Blaise Pascal ( ) unterstützt die strukturierte Programmierung durch leichte Erlernbarkeit für Ausbildungszwecke geeignet geringe Verbreitung im Bereich kommerzielle Anwendungsentwicklung durch unkomfortable Ein- und Ausgabeanweisungen und unzureichende Dateiverarbeitung Nachfolger: MODULA 2 (modulare Programmierung) Nicht-prozedurale Sprachen 4GL-Systeme (4. Generation) Deskriptive Programmierung Der Programmierer muß nicht mehr angeben, auf welche Weise ein Problem Schritt für Schritt gelöst werden soll, sondern er legt in beschreibender Form das Resultat t fest, was geschehen h soll. Beispiel: Datenbanksprache Structured Query Language (SQL) SELECT Vorname, Nachname, Telefon FROM Kunden WHERE Ort = Bochum ORDER BY Nachname Proprietär, hohe Inanspruchnahme der Hardwareressourcen bei Umsetzung, beschränkter Anwendungsbereich

16 Alternative Richtungen: Sprachen der künstlichen Intelligenz (5. Generation) Anwendungsgebiete: Expertensysteme, Robotersteuerung, Data Mining Funktionale Programmiersprachen mathematische Funktionen auf Basis von Basisfunktionen (Aneinanderkettung, Iteration, ti Rekursion) LISP (LISt-Processing Language): 1958 am MIT (Massachusetts Institute of Technology) entwickelt grundlegende Struktur der Liste für Programme und Daten Logische Programmiersprachen Prinzipien der mathematischen Logik: aus Fakten und Regeln werden mit Hilfe der Prädikatenlogik neue Fakten gewonnen PROLOG (PROgramming LOGic): 1972 in Marseille entwickelt kaum Ablaufsteuerung, Verwendung von Deduktionsverfahren Objekt Alternative Richtungen: Objektorientierte Programmiersprachen Daten: beschreiben den Zustand des Objekts Methoden: beschreiben das Verhalten des Objekts Klassen: Objekte mit gemeinsamer Struktur und gemeinsamen Verhalten weitere Konzepte: einfache/mehrfache Vererbung, Polymorphismus Objektorientierte Programmiersprachen (OOP) Simula (1967), Smalltalk (1972), Eiffel (1988), Java (1995) Hybridsprachen C++ (1985), ObjectPascal (1985), Modula-3 (1985)

17 Alternative Richtungen: Visuelle Programmiersprachen Objekt- und ereignisorientierte i i t Modellierung des optischen Erscheinungsbildes des Programms Kontroll-/Steuerelemente besitzen Eigenschaften (z.b. Farbe) und Ereignisse (z.b. Mausklick) den Ereignissen werden Ereignisprozeduren zugeordnet VISUAL BASIC von MICROSOFT DELPHI von BORLAND 2 Grundlagen: Eclipse &J Java Die Programmiersprache Java Die integrierte Entwicklungsumgebung Eclipse

18 Der Mensch als Referenz The mechanism of human thought and communication have been engineered for a millions of years, and we should respect them as being of sound design. Moreover, since we must work with this design for the next million years, it will save time if we make our computer models compatible with the mind, rather than the other way around. Dan Ingalls (1981) Java Objektorientierte ti t Programmiersprache Sun Microsystems, seit 2010 Oracle Frei verfügbar, für Anwender und Entwickler Java-Technologie: JDK (Java Development Kit) JRE (Java Runtime Environment) (JVM Java Virtual Maschine)

19 Eigenschaften von Java einfach, objektorientiert, ti t verteilt und vertraut t robust und sicher architekturneutral und portabel Leistungsfähig interpretierbar, parallelisierbar und dynamisch Einführung in Eclipse Menüleiste mit Standardaktionen Perspektive Syntax-Highlighting durch verschiedene Farben Editorfenster Projektstruktur Methoden & Variablen Übersicht Berichte: Fehler, Ausgabe, Doku Folie

20 Projekt exportieren / importieren File Export / Import Als Dateityp JAR (Java ARchiv) Alle Projekte / Dateien markieren, die exportiert werden sollen die Quellcodes sollen auch exportiert werden! Name vergeben Folie Neue Klasse anlegen mit rechter Maustaste auf den Pfad klicken, in dem die neue Klasse angelegt werden soll "Class" auswählen Vererbungsstruktur festlegen Namen vergeben soll es ein direkt ausführbares Programm sein? Folie

21 Anweisungen Standardcode für ein Programm von überall aufrufbar (Datei-) Name automatische Dokumentation der zu übergebenden Parameter Folie public class Standard { /** args */ public static void main(string[] args) { // TODO Auto-generated methodstub System.out.println("Hallo Welt"); } } Anfangs- und Ende Markierung von logischen Blöcken IMMER PAARWEISE!!! von überall aufrufbar (public), muss nicht instanziert werden (static) (einmalige) Hauptfunktion, wird automatisch gestartet einzeiliger Kommentar ("//"), wo der Programmierer noch Aufgaben zu erledigen hat Befehl zur Parameter innerhalb von "( Textausgabe )", was ausgegeben werden soll Anweisungen Kommentare dienen nur dokumentatorischen t Zwecken sollten(!) zur Erklärung der Anweisungen / des Programms eingesetzt werden werden nicht ausgeführt // einzeiliger Kommentar /* mehrzeiliger Kommentar beginnt * Kommentarzeile * mehrzeiliger Kommentar endet */ Folie

22 Anweisungen Textausgabe Anweisung zum Ausgaben von Text in der Konsole: System.out.println(Parameter); Parameter: das, was ausgegeben g werden soll alle Anweisungen schließen mit einem " ; " // Ausgabe von Zeichenketten System.out.println ("Hallo Welt"); // Ausgabe von Zahlen (werden in Zeichen gewandelt) System.out.println (12345); // Zuweisung an Variablen & Ausgabe String text = "Hallo Java"; System.out.println (text); Folie Anweisungen Methodenübersicht System.out Methode print(args) println(args); format(format, arg)s; Bedeutung druckt die übergebenen Argumente aus druckt die übergebenen Argumente aus und wechselt danach in die nächste Zeile druckt die übergebenen Argumente in dem angegebenen Format aus System.out.format("Preis %6.2f%n", 2.95); //6 Stellen insgesamt,2 nach Komma System.out.format( format("preis %6.2f%n 2f%n", ); 90); // f = Fließkommazahl //Preis 2,95 //Preis 199,90 System.out.format( format("% %,9d%n 9d%n", 12345); // 9 Stellen insgesamt, d = Ganzzahl // //%n = nächste Zeile

23 3. Methodik der Programmerstellung 31V 3.1 Vorgehen 3.2 Programmerstellung Konventionen Schlüsselwörter und Bezeichner Fehlertypen Programmierstil 3.3 Formaler Aufbau eines Programms Vorgehensweise Aufteilung in einzelne Arbeitsschritte Methode der schrittweisen Verfeinerung (Top-Down-Strategie) Program una mmierspra abhängig acheng Problem- aufbereitung Problem- analyse Programm- erstellung Definition der Aufgabe Festlegen der Programmstruktur nach dem EVA-Prinzip: EINGABE - VERARBEITUNG - AUSGABE Algorithmus in einer graphikorientierten Beschreibungssprache h (Struktogramm) jeder Programmablauf basiert auf wenigen Grundstrukturen (Sequenz, Auswahl, Wiederholung) Formulierung in einer höheren Programmiersprache Übersetzen des Quellcodes in Maschinensprache durch den Compiler Fehlerbeseitigung und Programmtest

24 Programmerstellung: Konventionen kein Unterschied zwischen Groß- und dkleinschreibung ib i.d.r. keine Verwendung deutscher Sonderzeichen (ä,ö,ü,ß) öüß)imquellcode jede Anweisung endet i.d.r. mit dem Semikolon (;) Punkt als Dezimaltrennzeichen Programmerstellung: Schlüsselwörter vs. Bezeichner Schlüsselwörter / reservierte Wörter integraler Bestandteil einer Programmiersprache, die nicht neu definiert werden können ermöglichen eine korrekte Übersetzung und Ausführung des Quellcodes, da sie die Programmstruktur bestimmen Beispiele: class, public, import, new, double Bezeichner / Namen benutzerdefiniert dienen der Identifikation bestimmter Objekte (z.b. Datenobjekte, Programmteile) Standard-Funktionen und Standard-Prozeduren Syntaktischer Aufbau: werden aus Buchstaben und Ziffern gebildet, wobei das erste Zeichen stets ein Buchstabe sein muss Verwendung von Sonderzeichen und Umlauten ist nicht erlaubt (Ausnahme: Unterstrich _ ) Bezeichner können beliebig lang sein, es sind aber nur die ersten 63 Zeichen relevant Beispiele: nettopreis, anz_studenten

25 Programmerstellung: Fehlerarten Fehler zur Übersetzungszeit (Compiler-Fehler) Beim Übersetzen des Quellcodes in die Maschinensprache werden die syntaktischen und die semantischen Fehler erkannt. Eclipse zeigt Fehler als Symbol an Laufzeitfehler (Runtime-Error) Diese Fehler treten beim Ablauf des Programms auf und führen zum Programmabbruch durch das Betriebssystem. Beispiel: Division durch 0, Wertebereichsüberschreitungen Logische Fehler Die Aufgabenstellung wird durch das Programm nicht gelöst, weil z.b. ein unbrauchbarer Algorithmus gewählt wurde. Der Compiler erkennt keine logischen Fehler! Programmerstellung: Programmierstil Lesbarkeit und Verständlichkeit Erleichterung der Fehlersuche, Wartung und Pflege Stil-Regeln: Optische Trennung der Programmbausteine Leerzeilen Einrücken des Programmtextes sprechende Namen für Bezeichner bzw. Verwendung von anerkannten Namenskonventionen (ungarische Notation von Charles Simonyi) Einsatz von Konstanten Strukturierung der Programme nach Eingabe, Verarbeitung und Ausgabe (EVA-Prinzip) Großzügiger Einsatz von Kommentaren Benutzerfreundlich programmieren

26 4. Strukturierte Programmierung 41Zi 4.1 Ziele 4.2 Prinzipien 4.3 Basisstrukturen Ziele der strukturierten Programmierung g Unterstützung tüt einer methodischen h Vorgehensweise beim Programmentwurf lineare Form des Programmcodes ohne unbedingte Sprünge (kein Spaghetticode ) Ergebnis sind hierarchisch gegliederte Programmstrukturen Steigerung der Lesbarkeit/Übersichtlichkeit Steigerung der Zuverlässigkeit Verbesserung der Wartung und Pflege

27 Prinzipien der strukturierten Programmierung Prinzip der schrittweisen Verfeinerung (Top-Down-Strategie): Strukturierung des Programms durch verschiedene Abstraktionsebenen Prinzip der Modularisierung: Gesamtaufgabe wird solange weiter in logisch zusammenhängende Teilaufgaben zerlegt, bis kleine überschaubare Einheiten (Module) entstehen (Top-Down-Methode) Prinzip der linearen Kontrollstrukturen: Jeder Programmablauf ist auf die Grundstrukturen S Sequenz, Auswahl und Wiederholung zurückzuführen. Struktogrammtechnik Einsatz in der Phase der Problemanalyse Struktogramm-Notation wurde 1973 von Nassi und Shneiderman entwickelt (Nassi-Shneiderman-Diagramme) jeder Strukturblock ist ein Rechteck, mit einem Eingang (obere Kante und einem Ausgang (untere Kante) Zwang zur STRUKTURIERTEN PROGRAMMIERUNG, da keine Sprunganweisungen abzubilden sind jeder Programmablauf basiert auf wenigen Grundstrukturen: Sequenz Auswahl Wiederholung

28 Repräsentationsformen der Grundstrukturen prozeduraler Programmierung Pseudo-Code Programmablaufplan Struktogramm - Sequenz Anweisung 1; Anweisung 1; Anweisung 1; Anweisung 2; Anweisung 2; Anweisung 3; Anweisung 2; Anweisung 3; Anweisung 3; if Ausdruck then Ja-Anweisung (; else Nein-Anweisung) end if; Wahr Auswah hl (eineiseitig) und zwe Ausdruck Ja- (Nein- Anweisung Anweisung) Ja- Anweisung Ausdruck Falsch (Nein- Anweisung) Mehrfach - Auswahl case Ausdruck is when Fall1 -> Anweisung 1; when Fall2 -> Anweisung 2;...; when Sonst -> Anweisung n; end case ; Ausdruck Fall 1 Fall 2... Anw. Anw Sonst Anw. n Ausdruck Fall 1 Fall 2... Sonst Anw. 1 Anw Anw. n Repräsentationsformen der Grundstrukturen prozeduraler Programmierung Pseudo-Code Programmablaufplan Struktogramm - Schleife mit Bedingung g im Kopf while Ausdruck loop Wiederholungsanweisung end loop ; Schleife 1 Ausdruck Anweisung Ende Schleife 1 Ausdruck Wiederholungs- Anweisung Schlei ife mit Beding gung im Fuß loop Wiederholungsanweisung exit when Ausdruck; end loop ; Schleife 2 Anweisung Ausdruck Ende Schleife 2 Wiederholungs- Anweisung Ausdruck Schleif fe mit fester Anzahl Durchl äufe for Zähler in Bereich loop Wiederholungsanweisung end loop ; Schleife 3 AW; EW; SW Anweisung Ende Schleife 3 AW = Anfangswert, EW = Endwert, SW = Schrittweite für Zähler := Anfangswert to Endwert Wiederholungs- Anweisung

29 Struktogrammtechnik: Sequenz mehrere Anweisungen sind hintereinander auszuführen Abarbeitung erfolgt von oben nach unten Verarbeitung Anweisung 1 Verarbeitung Anweisung 2 Verarbeitung Anweisung 3 Verarbeitung Anweisung 4 Beispiel: Nachdem der Kundenauftrag eingegangen ist, wird die Ware zusammengestellt und danach verschickt. Anschließend wird die Rechnung angefertigt und versandt. Struktogrammtechnik: Auswahl I Anweisungen werden in Abhängigkeit it von bestimmten t Bedingungen ausgeführt Ergebnis eines booleschen Ausdrucks steuert den weiteren Programmablauf 3 verschiedene Auswahl-Konzepte einseitige Auswahl (bedingte Verarbeitung) zweiseitige Auswahl (einfache Alternative) Mehrfachauswahl (mehrfache Alternative)

30 Struktogrammtechnik: Auswahl II Einseitige Auswahl: Ist die Bedingung erfüllt (d.h. wahr), wird der linke Strukturblock (Anweisung 1) verarbeitet, ansonsten wird der Programmablauf mit dem nachfolgenden Strukturblock fortgesetzt. Beispiel: Wenn ein Kunde im vergangenen Jahr Waren bezogen hat, erhält er eine Weihnachtskarte, hat er keine Waren bezogen, so passiert nichts. Beispiel: Wenn ein Kunde im vergangenen Jahr Waren bezogen hat, erhält er eine Weihnachtskarte, sonst wird er im Kundenverzeichnis gelöscht wahr Verarbeitung Anweisung 1 Bedingung falsch Zweiseitige Auswahl: In Abhängigkeit von dem Auswertungsergebnis (wahr oder falsch) der Bedingung kommt entweder der linke Struktur-block (Anweisung 1) oder der rechte Strukturblock (Anweisung 2) zur Verarbeitung. Bedingung wahr falsch Verarbeitung Verarbeitung Anweisung 1 Anweisung 2 Struktogrammtechnik: Mehrfachauswahl h hl Abhängig von einer Steuerungsgröße (Selektor) tritt eine Option aus einer Auswahl von Alternativen ein. Hierbei gelangt die Option zur Ausführung, deren Marke mit dem aktuellen Wert des Selektors übereinstimmt. Steuerungsgröße Marke 1 Marke 2 usw. Marke n sonst Verarbeitung Verarbeitung Anweisung 1 Anweisung 2... Verarbeitung Anweisung n Verarbeitung Anweisung n+1 Beispiel: Wenn ein Kunde im vergangenen Jahr Waren im Wert größer als 1000 DM bezogen hat, erhält er einen Treuebonus von 10%, hat er Waren zwischen 500 DM und 1000 DM bezogen, erhält er einen Bonus von 5%, hat er Waren bis 500 DM bestellt, erhält er einen Bonus von 2%, sonst wird er im Kundenverzeichnis gelöscht.

31 Struktogrammtechnik: Wiederholung I Eine oder mehrere Anweisungen sollen in Abhängigkeit von einer Bedingung wiederholt oder für eine gegebene g Anzahl von Wiederholungen durchlaufen werden. Ergebnis eines booleschen Ausdrucks steuert den weiteren Programmablauf 3 verschiedene Wiederholungskonstrukte Wiederholung mit Abfrage vor jedem Wiederholungsdurchlauf Wiederholung mit Abfrage nach jedem Wiederholungsdurchlauf Wiederholung mit fester Wiederholungszahl Struktogrammtechnik: Wiederholung II Wiederholung mit Abfrage vor jedem Wiederholungsdurchlauf: Es erfolgt eine Prüfung VOR der abzuarbeitenden Anweisung, ob die Verarbeitung zu wiederholen bzw. überhaupt ein erstes Mal durchzuführen ist. Ist die Bedingung nicht mehr gefüllt wird hinter der zu wiederholenden Anweisungsfolge fortgefahren. Beispiel: Solange ein Kunde in Schleifenbedingung jedem Jahr mindestens eine Bestellung aufgibt, wird ihm der Verarbeitung Jahreskatalog kostenlos Anweisung 1 zugesandt. Wiederholung mit Abfrage nach jedem Wiederholungsdurchlauf: Es wird NACH jedem Durchlauf der Schleife geprüft, ob die Verarbeitung wiederholt werden soll. Ist die Bedingung erfüllt, wird mit der nächsten Anweisung fortgefahren. Beispiel: Wiederhole Aktionen zur Neukundenwerbung bei Verarbeitung dem potentiellen Kunden, bis Anweisung 1 der Kunde die erste Bestellung erteilt. Schleifenbedingung

32 5. Einfache Datentypen 51K 5.1 Konstanten t vs. Variablen 5.2 Systematisierungen der Datentypen 5.3 Ausgewählte einfache Datentypen Konstanten Datenfelder, die während eines Programmablaufs einen konstanten t Wert haben (darf im Programm nicht verändert werden) Bestandteile: Name: (Datentyp:) Adresse: mwst (double) $1010:$203A Wert: Einmalige Deklaration Syntaxdiagramm (Deklarationsteil): final Datentyp Bezeichner = Konstante ;

33 Variablen Datenfelder, die während eines Programmablaufs veränderbare Werte annehmen können Bestandteile: Name: rech_betrag Datentyp: t l Deklaration Adresse: real $1000:$2A35 Wert: Wertänderung bei Verarbeitung Syntaxdiagramm (Deklaration): Datentyp Bezeichner ;, Datentypen - Systematisierung (Zusammensetzung) Ein Datentyp legt eine Menge von Werten (Wertebereich) sowie eine Sammlung von darauf zugeschnittenen Operationen fest. Datentypen Klassifikationskriterium: Zusammensetzung unstrukturierte (einfache) Datentypen referenzierte Datentypen Aufzählungstypen Teilbereichstypen Standardtypen integer boolean char double Interface Klassen String Array ordinale/abzählbare Datentypen: bilden eine geordnete Menge, bei der jedem möglichen Wert eine ganzzahlige Ordinalzahl zugeordnet wird Standardfunktionen: Ord (x) (Ordinalzahl) Pred (x) (Predecessor:Vorgänger) Succ (x) (Successor: Nachfolger)

34 Datentypen - Systematisierung (Speicherverwaltung) Datentypen Klassifikationskriteriu m: Speicherverwaltung statische Datentypen dynamische Datentypen unstrukturierte strukturierte File Datentypen Datentypen Pointer Dynamische Variablen erhalten ihren Speicherplatz nicht zur Übersetzungszeit, sondern erst zur Laufzeit. Das Ziel dynamischer Datentypen ist, keinen Speicherplatz bei einer unbekannten Zahl von zu speichernden Datenobjekten zu verschwenden. Anweisungen Datentypen t primitive iti Datentypen t Typname Speicherverbrauch Wertebereich in Byte boolean 1 true / false char 2 alle Unicodezeichen (65k versch. mgl.) int double 8 +/-1.797* referenzierter Datentyp String 2 Byte pro Zeichen 0 bis Zeichen Folie

35 Deklaration boolean Wahrheit; char Zeichen; int Wert; double Preis; String Nachricht; Zuweisung Anweisungen Variablen Wahrheit = false; Zeichen ='R'; R; Wert = 42; Preis = 2.95; Nachricht = "Hallo Java Kurs"; Deklaration & Zuweisung kombiniert int eine_zahl = 42; Folie Kontrollstrukturen 6.1 Systematik tik 6.2 Einfache Anweisungen Leere Anweisung, Sprunganweisung Wertzuweisung 6.3 Strukturierte Anweisungen Verbundanweisung Bedingte Anweisungen Wiederholungsanweisungen 6.4 Methodenanweisung

36 Systematik Anweisungen einfache Anweisungen strukturierte Anweisungen Wertzuweisungeis Methodenanweisung Sprunganweisung leere Anweisung Verbundanweisung eis ng Bedingte Anweisungen IF-Anweisung SWITCH-Anweisung Wiederholungsanweisungen FOR-Anweisung DO-WHILE-Anweisung WHILE-DO-Anweisung Leere Anweisung Leere Anweisung besteht aus nichts und bewirkt nichts Beispiel: ;; Vorsicht! Leere Anweisung kann unerwünschte Wirkung haben:

37 Leere Anweisung, Sprunganweisung, Methodenanweisung Sprunganweisung Anweisungen werden nicht mehr in der Reihenfolge abgearbeitet, in der sie aufgeführt sind, sondern es erfolgt ein Spring zu einer definierten Sprungmarke (LABEL) Label steht in Zusammenhang mit Wiederholungsanweisung: Definition des Labels, z.b. loop1: Abbrechen der Anweisung: break loop1 Erneuter Durchlauf der Anweisung: coninue loop1 Wertzuweisung ein Ausdruck wird ausgewertet t und das Ergebnis wird einer Variablen zugewiesen alte Wert der Variablen wird überschrieben i.d.r. müssen die Variable und das Ausdrucksergebnis vom gleichen Datentyp sein Bezeichner = Ausdruck ; Beispiel: y = c ; i = i + 1; b = 10 = 12; x = i + (j % 7);

38 Verbundanweisung Eine Verbundanweisung faßt eine Folge von Anweisungen syntaktisch zu einer Anweisung zusammen. Die Verbundanweisung wird benötigt, weil an vielen Stellen eines Java-Programms nur die Ausführung einer einzigen Anweisung zugelassen { ist. Anweisung } ; Bedingte Anweisungen Ausführung der Anweisung nur dann, wenn eine bestimmte Bedingung erfüllt ist Formulierung der Bedingung als boolescher Ausdruck (duale Weiche) Bedingte Anweisungen in Java: IF-Anweisung bedingte Verarbeitung if (Bedingung) Anweisung ; einfache Alternative if (Bedingung) Anweisung ; else Anweisung; CASE-Anweisung

39 If-Anweisung Wenn der boolsche Ausdruck zutrifft, d.h. true ist, wird dieanweisung ausgeführt, hat der boolesche Ausdruck den Wert false, wird die Anweisung nach else ausgeführt. if ( boolscher Ausdruck ) Anweisung ; ; else Anweisung Der else-zweig g ist optional. In diesem Fall (Bedingte Verarbeitung) wird nach dem if-zweig ein Semikolon gesetzt. Falls der boolsche Ausdruck true ist, wird die Anweisung ausgeführt, die danach folgt, ansonsten wird sie übersprungen und die nächste Anweisung im Programm abgearbeitet. Einseitige Auswahl if (Bedingung) Anweisung; if (Bedingung) { Anweisung_1; Anweisung_2; } wahr Verarbeitung Anweisung 1 Bedingung falsch Beispiel: if (a > b) System.out.println ( A ist größer als B );

40 Zweiseitige Auswahl if (Bedingung) Anweisung; else Anweisung; if (Bedingung) { Anweisung_1; Anweisung_2; } else {Anweisung_1; Anweisung_2; } wahr Bedingung falsch Verarbeitung Verarbeitung Anweisung 1 Anweisung 2 Beispiel: if (a > b) System.out.println ( A ist größer als B ); else System.out.println ( A ist kleiner oder gleich B ); Geschachtelte IF-Anweisung Nach der booleschen Bedingung und nach dem else kann jeweils eine beliebige Anweisung folgen, also auch eine weitere IF-Anweisung (Geschachtelte IF- Anweisung). Verwendung finden diese geschachtelten IF-Anweisungen dann, wenn mehr als zwei Fälle abzuprüfen sind bzw. wenn die Ausführung einer Anweisung von mehreren Bedingungen abhängig gemacht werden sollen. Beachte: Anweisung kann komplex und unübersichtlich werden! Insbesondere die Zuordnung des else-zweiges genau prüfen! Beispiel: if <Ausdruck_1> if <Ausdruck_2> if <Ausdruck_3> ANWEISUNG; else... ;

41 SWITCH-Anweisung Bedingte Anweisung Besteht aus dem Ausdruck (Selektor) und einer (beliebig langen) Liste von Zweigen, die durch Marken gekennzeichnet sind Ausführung derjenigen Anweisung, deren Marke einem Selektor entspricht Selektor muß ordinalen Typs sein SWITCH-Anweisung: Struktogramm Ausdruck Marke 1 Marke 2 Marke n sonst Anweisung Anweisung Anweisung Anweisung 1 2 n n+1

42 SWITCH-Anweisung: Syntax switch ( Ausdruck ) { case Marke : Anweisung ; break ; default : Anweisung ; } Switch Auswahl switch (Selektor) { case Konstante_1: Anweisung; break; case Konstante_2: Anweisung; break; default: Anweisung; } Beispiel: switch (a){ case 1: System.out.println ( Eins ); break; case 2: System.out.println ( Zwei ); break; default: System.out.println ( Nicht dabei ); }

43 Aufgabe Switch Ein Programm taschenrechner h soll zwei ganze Zahlen entweder addieren, subtrahieren, multiplizieren li i oder dividieren. idi Ein Menü soll dem Anwender die Auswahl ermöglichen. Bei der Division i i soll die unerlaubte Division i i durch 0 ausgeschlossen werden. Wiederholungs-anweisungen g Kopfgesteuerte t Schleifen Abbruchbedingung wird vor Ausführung der Anweisung geprüft FOR-Anweisung, WHILE-Anweisung Fußgesteuerte Schleife Abbruchbedingung wird nach Ausführung der Anweisung geprüft REPEAT-Anweisung

44 Struktogrammtechnik: Wiederholung mit fester Wiederholungszahl Bei einer ZÄHLSCHLEIFE ist die Anzahl der Wiederholung von Anfang an bekannt. Ein Schleifenzähler läuft von einem Anfangs- zu einem Endwert. Schleifenbedingung Verarbeitung Anweisung 1 Beispiel: Bei ausstehenden Zahlungen werden 3 mal Mahnungen verschickt, bis die Unterlagen an die Rechtsabteilung übergeben werden. FOR-Anweisung: Syntax for ( Laufvariable ; Bedingung ; Schrittweite ) { Anweisung ; }

45 FOR - Schleife Schleifenbedingung Verarbeitung Anweisung 1 for (Startwert; boole scher Ausdruck, Inkrement) Anweisung; Beispiel: int x; for (x=1; x < 10; x++){ System.out.println t tl ( For-Schleife ); System.out.println ( Wert von x: +x); } WHILE-Anweisung Syntax while Struktogramm boolescher Ausdruck Anweisung Schleifenbedingung Anweisung

46 WHILE-Anweisung Der boolesche Ausdruck wird am Eingang der WHILE-Schleife überprüft Wenn der Ausdruck den Wert true zurückliefert, wird der Anweisungsteil ausgeführt und der Ausdruck erneut ausgewertet Der Vorgang wiederholt sich, bis der boolesche Ausdruck den Wert false zurückgibt WHILE - Schleife while (boole scher Ausdruck) Anweisung; Schleifenbedingung Verarbeitung Anweisung 1 Beispiel: int x = 1; while (x++ < 10){ System.out.println ( While-Schleife ); System.out.println ( Wert von x: +x); }

47 do-while-anweisung Syntax do Anweisung while boolescher Ausdruck Struktogramm ; Anweisung Schleifenbedingung do-while-anweisung Der boolesche Ausdruck wird nach dem ersten Durchlaufen der Schleife geprüft es erfolgt wenigstens ein Schleifendurchlauf Wenn der Ausdruck den Wert false zurückliefert, wird die Schleife erneut durchlaufen Der Vorgang wiederholt sich, bis der boolesche Ausdruck den Wert true zurückgibt

48 DO WHILE Schleife do Anweisung; while (boole scher Ausdruck); Verarbeitung Anweisung 1 Schleifenbedingung Beispiel: int x = 1; do { System.out.println ( Do-Schleife ); System.out.println ( Wert von x: +x); } while (x++ < 10); Resümee: FOR-Anweisung Kopfgesteuerte t Schleife Laufvariable: ordinaler Typ Anzahl der Durchläufe muß im voraus bekannt sein Automatische Zählung der Durchläufe in der Schleifenanweisung

49 Resümee: WHILE- vs. DO-WHILE Anweisung WHILE-Anweisung Kopfgesteuerte Schleife Anzahl der Durchläuft wird über Abbruchbedingung gesteuert Steuervariable) Abbruchbedingung: boolescher Ausdruck ( Abbruch bei false ) DO-WHILE-Anweisung Fußgesteuerte Schleife Mindestens ein Durchlauf (!) Anzahl der Durchläufe wird über Abbruchbedingung gesteuert (Steuervariable) Abbruchbedingung: boolescher Ausdruck ( Abbruch bei true ) Methodenanweisung Eine Methode ist eine Anzahl von Anweisungen, die mit einem Namen versehen worden sind und unter diesem Namen aufgerufen werden können. Vorteile Wiederkehrende Aufgaben müssen nicht mehrfach kodiert werden Komplexe Programme werden in Teilaufgaben zerlegt Eine Methode besteht aus einem Methodenkopf und Methodenrumpf f (Inhalt) Beim Aufruf können von Fall zu Fall verschiedene Parameter übergeben werden.

50 Methodenanweisung Aufbau und Syntax: void Datentyp Methodenname ( Parameter ), { (Inhalt d. Methode } Methodenanweisung Methoden mit Wertrückgabe Methoden können über ihren Namen einen Wert zurück liefern Voraussetzung: Im Methodenkopf ist der Datentyp des Rückgabewertes anzugeben Innerhalb der Methode ist der Rückgabewert (mit return) ) zu definieren Beispiel:

51 Methodenanweisung Methoden ohne Wertrückgabe Methode liefert keinen Wert zurück Voraussetzung: Im Methodenkopf ist die Methode als void deklariert Beispiel: i Methodenanweisung Methoden mit Parameterliste t Einer Methode kann beim Aufruf ein oder mehrere Werte übergeben werden Voraussetzung: In der Parameterliste im Methodenkopf sind die erwarteten Wertebezeichner mit Datentyp aufgeführt Beim Aufruf der Methode sind die Werte in der Parameterliste anzugeben Beispiel:

52 Methodenanweisung Methoden mit Parameterliste t Beachte bei der Parameterliste: Die Reihenfolge und Anzahl der zu übergebenden Werte muss im Methodenaufruf und in der Parameterliste der Methode exakt übereinstimmen Die Variablenbezeichner der Parameterliste im Methodenkopf sind ausschließlich innerhalb der Methode bekannt! bei gleicher Bezeichnung, z.b. einer globalen l Variablen a und einer Parametervariablen a wird in der Methode die Parametervariable a genutzt! Beispiel:

1. Einführung. Grundbegriffe: Programm vs. Software. 1.1 Programmierung & Software 1.2 Programmiersprachen

1. Einführung. Grundbegriffe: Programm vs. Software. 1.1 Programmierung & Software 1.2 Programmiersprachen 1. Einführung 1.1 Programmierung & Software 1.2 Programmiersprachen Folie 9 Apr-05 Grundbegriffe: Programm vs. Software Eine zur Lösung einer Aufgabe vollständige Anweisung zusammen mit allen erforderlichen

Mehr

5. Strukturierte Programmierung

5. 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

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Wirtschaftsinformatik II (Theorie) (Teil 1) Einführung

Wirtschaftsinformatik II (Theorie) (Teil 1) Einführung Wirtschaftsinformatik II (Theorie) (Teil 1) Einführung Programm Eine zur Lösung einer Aufgabe vollständige Anweisung zusammen mit allen erforderlichen Vereinbarungen heißt PROGRAMM. Eine Programm setzt

Mehr

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen, Strukturierte Programmierung , Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

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

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 Darstellung von Algorithmen Aus den Einführungsbeispielen und

Mehr

Kapitel 7 Software-Entwicklungssysteme

Kapitel 7 Software-Entwicklungssysteme Kapitel 7 Software-Entwicklungssysteme Literatur zu Kapitel 7 HANSEN, HANS ROBERT; NEUMANN, GUSTAF: Wirtschaftsinformatik I: Grundlagen betrieblicher Informationsverarbeitung, 8. Auflage, Stuttgart 2001.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

Software Engineering I

Software Engineering I Vorlesung Software Engineering I Dynamische Basiskonzepte 2 Kontrollstrukturen Aktivitätsdiagramme Sequenzdiagramme 1 Basiskonzepte Beschreiben die feste Struktur des Systems, die sich während der Laufzeit

Mehr

3. Methodik der Programmerstellung

3. 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

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Objektorientierte Programmierung

Objektorientierte 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

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...

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

E-PRIME TUTORIUM Die Programmiersprache BASIC

E-PRIME TUTORIUM Die Programmiersprache BASIC E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete

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

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

P r o g r a m m a b l a u f s t e u e r u n g

P r o g r a m m a b l a u f s t e u e r u n g Jede Programmiersprache braucht Konstrukte zur Steuerung des Programmablaufs. Grundsätzlich unterscheiden wir Verzweigungen und Schleifen. Schleifen dienen dazu, bestimmte Anweisungen wiederholt auszuführen,

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

Programmieren in Haskell Einführung

Programmieren in Haskell Einführung Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München MANUEL KALLWEIT & FABIAN KINDERMANN Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996):

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h> Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15 Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen

Mehr

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

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

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

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

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Lua Grundlagen Einführung in die Lua Programmiersprache

Lua Grundlagen Einführung in die Lua Programmiersprache Lua Grundlagen Einführung in die Lua Programmiersprache 05.05.2014 Ingo Berg berg@atvoigt.de Automatisierungstechnik Voigt GmbH Die Lua Programmiersprache Was ist Lua? freie Programmiersprache speziell

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

VisualBasic - Variablen

VisualBasic - Variablen Typisch für alle Basic-Dialekte ist die Eigenschaft, dass Variablen eigentlich nicht deklariert werden müssen. Sobald Sie einen Bezeichner schreiben, der bisher nicht bekannt war, wird er automatisch angelegt

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Grundlagen von C. Ausarbeitung von Jonas Gresens

Grundlagen von C. Ausarbeitung von Jonas Gresens Grundlagen von C Ausarbeitung von Jonas Gresens 1 Allgemein Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

(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

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

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

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Druckerscriptsprache

Druckerscriptsprache Druckerscriptsprache Die Druckerscriptsprache stellt Ihnen ein mächtiges Werkzeug zur Erstellung und Automatisierung von komplexen Druckvorgängen zur Verfügung. Vom Folgedruck bis zum Archivfunktion ist

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

Mehr

2. Die Darstellung von Algorithmen

2. Die Darstellung von Algorithmen 2. Die Darstellung von Algorithmen Aus den Einführungsbeispielen und Übungsaufgaben ist erkennbar, dass zur Darstellung von Algorithmen Grundelemente notwendig sind. Neben der Notation einzelner elementarer

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr