Rückblick Speicherverwaltung

Größe: px
Ab Seite anzeigen:

Download "Rückblick Speicherverwaltung"

Transkript

1 Rückblick Speicherverwaltung Im Datenbereich des entsprechenden Programms werden die globalen und lokalen Variablen gespeichert. Hauptspeicher Datenspeicher Betriebssystem 1.0 global a:real global b:real Daten zu unserem Benutzerprogramm 'Dies soll ein global s:string langer String sein' lokal Prozedur1 c:integer 'Dies soll ein lokal Prozedur1 a:string langer String sein' 'Kurzer String' lokal Prozedur2 a:string 1 lokal Prozedur2 c:integer 'x' lokal Prozedur2 a:char Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 93 Compiler Funktionsweise eines Compilers am Beispiel von Modula-2 Gegeben sei folgendes Modula-2-Programm: MODULE hallo; (* Das ist ein tolles Programm *) FROM InOut IMPORT WriteString, WriteLn; WriteString ("Hallo Welt!"); (* Ausgabe *) WriteLn; END hallo. Programmtext (Quellcode) unter dem Namen hallo.mi speichern Die Endung mi gilt zur Kennzeichnung als Modula-2-Code. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 94

2 Compiler Funktionsweise eines Compilers am Beispiel von Modula-2 Quellcode hallo.mi (Modula-2-Programm) MODULE hallo; (* Das ist ein tolles Programm *) FROM InOut IMPORT WriteString, WriteLn; WriteString ("Hallo Welt!"); WriteLn; (* Ausgabe *) END hallo. Aufruf des Compilers: mocka c hallo Erzeugen vom sog. Objektcode (in Maschinensprache) Compiler Verbinden mit bereits übersetzen Bibliotheken (Libraries) Linker Ausführbares Programm Aufruf des Linkers: mocka p hallo hallo Library: WriteString, WritLn Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 95 Compiler Detaillierter Ablauf während des Übersetzens: Quellcode Compiler Lexikalische Analyse (Scanner) Erkennen von lexikalischen Quelltextbestandteilen, z.b. Schlüsselwörtern, Bezeichnern... Syntaktische Analyse (Parser) Überprüfung auf syntaktische Korrektheit (z.b. anhand von Syntaxdiagrammen) Semantische Analyse Überprüfen der Semantik (sind alle Bezeichner definiert, Test der Signaturen etc.) Objektcode Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 96

3 Parameterübergabe Die Parameterübergabe beim Prozeduraufruf Beim Prozeduraufruf werden die Argumente durch aktuelle Parameter ersetzt. Man unterscheidet hauptsächlich zwei Arten der Übergabe: Call by value Call by reference Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 97 Parameterübergabe Call by value Erforderliche Syntax: Proc(x:INTEGER) Ablaufbeschreibung beim Prozeduraufruf: Von der übergebenen Variablen wird eine Kopie angelegt. Die übergebene Variable behält ihren alten Wert. Die Kopie ist nur während der Abarbeitung der Prozedur gültig. Die Kopie kann innerhalb der Prozedur verändert werden. Nach Verlassen der Prozedur wird die Kopie aus dem Speicher entfernt. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 98

4 Parameterübergabe Beispiel: Call by value Gegeben sei eine Prozedur Proc(x:INTEGER); Innerhalb des Hauptprogramms steht ein Aufruf: Proc(b); Im Hauptprogramm wird die Variable b:=100 definiert und an eine Speicherstelle geschrieben. Datenspeicher der Applikation 100 b:integer Beim Prozeduraufruf Proc(b) wird eine Kopie von b an eine (andere) Stelle im Speicher geschrieben. 100 lokal für Proc: x:integer Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 99 Parameterübergabe Call by reference Erforderliche Syntax: Proc(VAR x:integer) Ablaufbeschreibung beim Prozeduraufruf: Es wird ein Verweis (Referenz) auf die übergeben Variable angelegt. Der Wert der übergebenen Variable kann direkt von der Prozedur verändert werden, die übergeben Variable ändert sich mit. Alle Änderungen während der Prozedur bleiben auch nach deren Beendigung erhalten. Vorteil: Es wird kein zusätzlicher Speicherplatz benötigt. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 100

5 Parameterübergabe Beispiel: Call by reference Gegeben sei eine Prozedur Proc(VAR x:integer); Innerhalb des Hauptprogramms steht ein Aufruf: Proc(b); Datenspeicher der Applikation Im Hauptprogramm wird die Variable b:=100 definiert und an in eine Speicherstelle geschrieben. 100 b:integer Beim Prozeduraufruf Proc(b) wird (an einer anderen Stelle im Speicher) ein Verweis auf die Adresse von b erstellt. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 101 Parameterübergabe Beispiel: "Call by value" vs. "Call by reference" MODULE CallByValue; MODULE CallByReference; VAR a,b: INTEGER; VAR a,b:integer; : : PROCEDURE Test1(x:INTEGER):INTEGER; PROCEDURE Test2(VAR x:integer):integer; x:=x+1; x:=x+1; RETURN x; RETURN x; END Test1; END Test2; : : a:=3; a:=3; b:= Test1(a); b:=test2(a); WriteInt(a); (*a=3*) WriteInt(a); (*a=4*) WriteInt(b); (*b=4*) WriteInt(b); (*b=4*) END CallByValue. END CallByReference. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 102

6 Parameterübergabe Hinweise zu Call by value: "Call by value" verhindert die Änderung von Variablen, die an anderer Stelle ebenfalls verwendet werden. Benutze "Call by value" wenn eine Änderung der globalen Parameter durch die Prozedur nicht erwünscht ist. ( Seiteneffekt) Vorsicht: "Call by value" ist für komplexe Strukturen sehr aufwendig. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 103 Prozeduren (Zusammenfassung) Vorteile der Modularisierung durch Prozeduren und Funktionen: 1) Wiederverwendung in anderen Programmteilen möglich. - einmaliger Implementierungsteil - beliebig viele Aufrufe 2) Lesbarkeit der Programme wird besser: - Trennung der Implementierung vom Aufruf 3) Modifikationen werden erleichtert. - Änderung nur im Implementierungsteil der Prozedur/Funktion - Ausnahme: Änderungen der Signatur 4) Fehlersuche wird erleichtert. - Jede Prozedur/Funktion kann lokal verifiziert werden. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 104

7 Prozeduren - Modularität Ein zusammenfassendes Beispiel zu Prozeduren Realisierung des Taschenrechners Zur Veranschaulichung der Einsatzmöglichkeiten von Prozeduren, ist auf den nächsten Seiten nochmals die Implementierung des Taschenrechners zusammengefasst. Dazu wird der Taschenrechner mit den Funktionen +, - und * ohne Prozeduren, mit den Funktionen +, - und * mit Prozeduren und erweitert um die Potenzrechnung angegeben. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 105 Prozeduren - Modularität Beispiel: Programm Taschenrechner (ohne Prozeduren): MODULE Taschenrechner; FROM InOut IMPORT Read, ReadInt, WriteInt, WriteString, WriteLn; VAR x,y,erg :INTEGER; op :CHAR; WriteString('Hallo, ich bin ein Taschenrechner.'); WriteLn; WriteString('Eingabe x: '); ReadInt(x); WriteLn; WriteString('Eingabe y: '); ReadInt(y); WriteLn; WriteString('Welche Operation (+,-,*)? '); Read(op); CASE op OF '+' : erg:= x+y '-' : erg:= x-y '*' : erg:= x*y ELSE WriteString('Falsche Eingabe'); END; WriteString('Ergebnis: '); WriteInt(erg); WriteLn; END Taschenrechner. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 106

8 Prozeduren - Modularität Beispiel: Programm Taschenrechner (mit Prozeduren): MODULE Taschenrechner; FROM InOut IMPORT Read, ReadInt, WriteInt, WriteString, WriteLn; VAR x,y,erg : INTEGER; op : CHAR; PROCEDURE Add(a,b:INTEGER):INTEGER;(...) PROCEDURE Sub(a,b:INTEGER):INTEGER;(...)(* siehe nächste Seite*) PROCEDURE Mul(a,b:INTEGER):INTEGER;(...) WriteString('Hallo, ich bin ein Taschenrechner.'); WriteLn; WriteString('Eingabe x: '); ReadInt(x); WriteLn; WriteString('Eingabe y: '); ReadInt(y); WriteLn; WriteString('Welche Operation (+,-,*)? '); Read(op); WriteLn; CASE op OF '+' : erg:= Add(x,y) '-' : erg:= Sub(x,y) '*' : erg:= Mul(x,y) ELSE WriteString('Falsche Eingabe'); WriteLn; END; WriteString('Ergebnis: '); WriteInt(erg); WriteLn; END Taschenrechner. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 107 Prozeduren - Modularität Beispiel: Programm Taschenrechner (Prozeduren): PROCEDURE Add(a,b:INTEGER):INTEGER; VAR res: INTEGER; res:=a+b; RETURN res; END Add. PROCEDURE Sub(a,b:INTEGER):INTEGER; VAR res: INTEGER; res:=a-b; RETURN res; END Sub. PROCEDURE Mul(a,b:INTEGER):INTEGER; VAR res: INTEGER; res:=a*b; RETURN res; END Mul. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 108

9 Prozeduren - Modularität Beispiel: Programm Taschenrechner (Erweiterung um Potenzrechnung): MODULE Taschenrechner; FROM InOut IMPORT Read, ReadInt, WriteString, WriteLn, WriteInt; VAR x,y,erg : INTEGER; op : CHAR; PROCEDURE Add(a,b:INTEGER):INTEGER; (...) PROCEDURE Sub(a,b:INTEGER):INTEGER; (...) PROCEDURE Mul(a,b:INTEGER):INTEGER; (...) PROCEDURE Pot(a,b:INTEGER):INTEGER; (...)... (* Eingabe von x und y *) WriteString('Welche Operation (+,-,*,^)? '); Read(op); CASE op OF '+' : erg:= Add(x,y) '-' : erg:= Sub(x,y) '*' : erg:= Mul(x,y) '^' : erg:= Pot(x,y) ELSE WriteString('Falsche Eingabe'); WriteLn; END; WriteString('Ergebnis: '); WriteInt(erg); WriteLn; END Taschenrechner. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 109 Prozeduren - Modularität Beispiel: Programm Taschenrechner (Prozedur Pot): PROCEDURE Pot(basis,exp:INTEGER):INTEGER; VAR i,res: INTEGER; res:=1; FOR i:=1 TO exp DO res:=res*basis; END; RETURN res; END Pot. THE CEBIT Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 110

10 Rekursionen In den meisten Programmiersprachen (wie auch MODULA-2) ist es möglich, dass eine Prozedur sich selbst aufruft. Solch eine Selbst-Reaktivierung wird auch Rekursion genannt. Bei jedem Rekursionsschritt wird eine neue Inkarnation (Instanz) der jeweiligen Prozedur erzeugt. Viele Algorithmen in der Informatik und Mathematik sind selbstbezüglich (rekursiv) definiert. In solchen Fällen bietet sich eine rekursive Implementierung/Realisierung an. Beispiel: Berechnung der Fakultät n! einer natürlichen Zahl n Die mathematische Fakultät ist rekursiv definiert durch 0! = 1 1! = 1 n! = n (n-1)! (für alle n mit n>1) Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 111 Rekursionen Jede Rekursion muss irgendwann terminieren. Deswegen muss in jeder rekursiven Prozedur vor dem jeweils nächsten Rekursionsschritt überprüft werden, ob die Terminierungsbedingung erfüllt ist. (z.b. mit einer IF-Anweisung) Ansonsten, kommt es irgendwann zu einem Programmabbruch durch einen Speicherüberlauf (stack overflow), da jeder Rekursionsschritt neuen Speicherplatz benötigt. Zur Übersetzungszeit kann normalerweise nicht überprüft werden, ob alle Rekursionen ordnungsgemäß terminieren. Die maximalerekursionstiefe (depth of recursion) ist also von der Größe des zur Verfügung stehenden Speichers abhängig. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 112

11 Rekursionen Beispiel: Berechnung der Fakultät n! einer natürlichen Zahl n PROCEDURE Fakultaet(n:CARDINAL):CARDINAL; IF n<=1 THEN RETURN 1 ELSE RETURN n * Fakultaet(n-1); END; END Fakultaet. Terminierungsbedingung Beispielaufruf: x:=fakultaet(3); Die Prozedur ruft solange sich selbst auf, bis die Abbruchbedingung n<=1 erreicht ist. Endergebnis: x:=6; Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 113 Rekursionen Jede Rekursion kann auch als Iteration dargestellt werden. Beispiel: Iterative Darstellung der Prozedur Fakultaet. PROCEDURE Fakultaet(n:CARDINAL):CARDINAL; VAR res:cardinal; res := 1; WHILE n >= 1 DO res := n * res; n:= n-1; END; RETURN res; END Fakultaet. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 114

12 Rekursionen Frage: Ist die rekursive oder die iterative Lösung besser? Eine iterative Prozedur wird das Ergebnis normalerweise effizienter berechnen als die entsprechende rekursive Lösung, da Schleifenkonstrukte weniger Speicherplatz und weniger Zeit als Rekursionen benötigen. Allerdings ist es oft sehr schwierig für eine gegebene rekursive Formulierung eine iterative Lösung zu finden. Das iterative Programm selbst ist dann auch meistens viel umfangreicher und sehr unübersichtlich. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 115 Direkte Rekursion Bei der direkten Rekursion ruft die Prozedur sich selbst auf: PROCEDURE Fakultaet(n:INTEGER):INTEGER; (*Inkarnation 1*) PROCEDURE Fakultaet(n:INTEGER):INTEGER; (*Inkarnation 2*) PROCEDURE Fakultaet(n:INTEGER):INTEGER; (*Inkarnation 3*) PROCEDURE Fakultaet(n:INTEGER):INTEGER; (*Inkarnation n*) Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 116

13 Indirekte Rekursion Bei der Indirekten Rekursion wird das ursprüngliche Programm wieder von einer anderen Prozedur (hier B) aufgerufen. PROCEDURE A (...); PROCEDURE B (...); PROCEDURE A (...); PROCEDURE B (...); Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 117 Strukturierte Datentypen Bis jetzt kennen wir nur einfache Datentypen (INTEGER...). Wie stellt man strukturierte Datentypen in Modula-2 dar? Beispiel: Übliche Strukturen aus der Mathematik Vektoren, Felder (array) <a 1,a 2,a 3,...,a n > Mengen (set) {a, b, c,..., z } Point (x,y) etc. Praktische Informatik 1 R.Zicari / JWG-Universität Frankfurt Kap.3 - Modula-2 S. 118

Taschenrechner Version 6.1

Taschenrechner 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

Mehr

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn C: Funktionen Philip Gawehn Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Do., 22.05.2014 1 / 23 Gliederung

Mehr

Rekursive Funktionen (1)

Rekursive Funktionen (1) Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: n i n! = i=1 für n > 0 1 für

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu 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

Mehr

Rekursive Funktionen (1)

Rekursive Funktionen (1) Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: nn ii nn! = ii=1 für nn > 0

Mehr

3. Die Konzepte einer Programmiersprache: Modula-2

3. Die Konzepte einer Programmiersprache: Modula-2 Inhalt der Vorlesung 0. Organisatorisches 1. Einleitung 2. Grundlagen 3. Die Konzepte einer Programmiersprache: Modula-2 4. Objektorientierte Programmierung Praktische Informatik 1 R.Zicari / JWG-Universität

Mehr

Eigenschaften strukturierter Datentypen

Eigenschaften strukturierter Datentypen Strukturierte Datentypen Eigenschaften strukturierter Datentypen Strukturierte Datentypen sind auf anderen, einfacheren Datentypen aufgebaut. ermöglichen Aggregation von Einzelelementen. Beispiele für

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

Speicher und Adressraum

Speicher und Adressraum Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode

Mehr

Programmieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik

Programmieren 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

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Algorithmen und Datenstrukturen I. Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Algorithmen und Datenstrukturen I. Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Algorithmen und Datenstrukturen I Blatt 2 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 20:05 Aufgabe 1 struct, Parameterübergabe und const Das Repository für diese

Mehr

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu 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

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

6. Funktionen, Parameterübergabe

6. Funktionen, Parameterübergabe 6. Funktionen, Parameterübergabe GPS-6-1 Themen dieses Kapitels: Begriffe zu Funktionen und Aufrufen Parameterübergabearten call-by-value, call-by-reference, call-by-value-and-result in verschiedenen Sprachen

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Informatik II Übung 05. Benjamin Hepp 3 April 2017 Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

Stackmaschine; Speicheradressierung

Stackmaschine; Speicheradressierung Stackmaschine; Speicheradressierung Erweiterung um globalen Speicher (Heap, Halde) pro Speicherplatz eine Zahl. Notation ist als Array SP [0..]. Zugriff mittels Adresse (Index): eine Zahl i.a.: Zahlen

Mehr

Systemnahe Programmierung in C (SPiC)

Systemnahe Programmierung in C (SPiC) Systemnahe Programmierung in C (SPiC) 9 Funktionen Jürgen Kleinöder, Daniel Lohmann, Volkmar Sieh Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Mehr

Historische Innovationen von Niklaus Wirth

Historische 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

Mehr

Programmieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik

Programmieren 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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr

2. Unterprogramme und Methoden

2. Unterprogramme und Methoden 2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf

Mehr

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

Mehr

Prozeduren und Funktionen

Prozeduren und Funktionen OSZ Handel I - Gymnasiale Oberstufe (Abt. V) In Anlehnung an: Duden Informatik (3.Auflage, Dudenverlag, 2001, S. 477). Prozeduren und Funktionen Fach: Informatik Parameter sind Platzhalter in einer Prozedur

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Teil 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 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,

Mehr

6 Speicherorganisation

6 Speicherorganisation 6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Einführung in die Informatik I (autip)

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden

Mehr

CS1005 Objektorientierte Programmierung

CS1005 Objektorientierte Programmierung CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Funktionen / statische Methoden - Definition - Verwendung - Ausführung Seite 1 Th Letschert Funktionen: Definition und Verwendung

Mehr

Praxis der Programmierung

Praxis der Programmierung Funktionen, Header-Dateien, Pointer Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Organisatorische Bemerkungen 2 Modul Programmierung Pflichtmodul für BSc INF

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen Funktionen Funktionen erlauben, dem Programmcode hierarchisch zu strukturieren ein Hauptprogramm steuert dabei die Abfolge von Schritten, die einzelnen Schritte können durch Funktionen realisiert werden

Mehr

11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n!

11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n! Mathematische Rekursion 11. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration, Lindenmayer Systeme Viele mathematische Funktionen sind sehr natürlich

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) //009 Informatik I (D-ITET) Übungsstunde 8, 6..009 simonmayer@student.ethz.ch ETH Zürich Besprechung/Vertiefung der Vorlesung [..009] ArrayStack Ausgezeichnet Einige haben s etwas kompliziert gemacht clear()

Mehr

4.Grundsätzliche Programmentwicklungsmethoden

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

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! =

12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! = Lernziele Sie verstehen, wie eine Lösung eines rekursives Problems in Java umgesetzt werden kann. Sie wissen, wie Methoden in einem Aufrufstapel abgearbeitet werden. 12. Rekursion Mathematische Rekursion,

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

Einführung Pointer. C-Kurs 2013, 2. Vorlesung. Nico Andy

Einführung Pointer. C-Kurs 2013, 2. Vorlesung. Nico Andy Einführung Pointer C-Kurs 2013, 2. Vorlesung Nico nico@freitagsrunde.org Andy andrew@freitagsrunde.org http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

6. Unterprogramme 6-1

6. Unterprogramme 6-1 6. Unterprogramme 6.1 Prozeduren und Funktionen 6.2 Deklaration und Aufruf 6.3 Call-by-Value / Call-by-Reference 6.4 Standardfunktionen in C 6.5 Gültigkeitsbereich von Namen 6.6 Rekursion 6. Unterprogramme

Mehr

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät

Mehr

Vorlesung Objektorientierte Programmierung Klausur

Vorlesung Objektorientierte Programmierung Klausur Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden

Mehr

Klausur zu Grundlagen der Informatik I mit Lösungen 28. Februar 2005 (WS 2004/2005) Dr. Andreas F. Borchert Norbert Heidenbluth

Klausur zu Grundlagen der Informatik I mit Lösungen 28. Februar 2005 (WS 2004/2005) Dr. Andreas F. Borchert Norbert Heidenbluth Klausur zu Grundlagen der Informatik I mit Lösungen 28. Februar 2005 (WS 2004/2005) Dr. Andreas F. Borchert Norbert Heidenbluth A Nr Max Bewertung 1 14 2 12 3 14 4 12 5 12 6 12 7 12 8 12 Summe 100 Klausur

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation

Mehr

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

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

Mehr

Informatik II Übung 5

Informatik II Übung 5 Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013

Mehr

EWS, WS 2016/17 Pfahler I-1

EWS, WS 2016/17 Pfahler I-1 Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler Funktionen EWS, WS 2016/17 Pfahler I-1 Funktionen Funktion: Rechenvorschrift mit einem Namen und ggf. formalen Parametern,

Mehr

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Geben

Mehr

Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS Juli 2002 Bearbeitungszeit: 120 Minuten BEISPIELLÖSUNG

Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS Juli 2002 Bearbeitungszeit: 120 Minuten BEISPIELLÖSUNG Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS 00 30. Juli 00 Bearbeitungszeit: 10 Minuten BEISPIELLÖSUNG Name: Vorname: Matrikelnummer: Aufgabe Punkte Bewertung 1 8 a) b) 6 8 3 8

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

7 Laufzeit-Speicherverwaltung

7 Laufzeit-Speicherverwaltung 7.1 Grundlagen Bevor wir die Code-Generierung betrachten, müssen wir uns Gedanken über zur Laufzeit des zu generierenden Programms notwendige Aktivitäten zur Zuordnung und Freigabe von Speicherplatz machen.

Mehr

15. Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Aufrufstapel, Bau eines Taschenrechners, BNF, Parsen

15. Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Aufrufstapel, Bau eines Taschenrechners, BNF, Parsen 453 15. Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Aufrufstapel, Bau eines Taschenrechners, BNF, Parsen Mathematische Rekursion 454 Viele mathematische Funktionen sind sehr natürlich rekursiv

Mehr

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 44 1 Methoden implementieren Motivation Aufbau einer Methode

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Compilerbau für die Common Language Run-Time

Compilerbau für die Common Language Run-Time Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,

Mehr

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden Dim arrayname (dim1,dim2, ) As Typ Bei eindimensionalen Feldern

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

Programmiersprachen und ihre Übersetzer

Programmiersprachen und ihre Übersetzer Folien zur Vorlesung Programmiersprachen und ihre Übersetzer Kapitel 5 Übersetzung imperativer Sprachen Faculty of Technology robert@techfak.uni-bielefeld.de June 18, 2013 Prozedurmechanismus Seit ALGOL

Mehr

DieÜbersetzung funktionaler Programmiersprachen

DieÜbersetzung funktionaler Programmiersprachen DieÜbersetzung funktionaler Programmiersprachen 107 11 Die Sprache PuF Wir betrachten hier nur die Mini-Sprache PuF( Pure Functions ). Insbesondere verzichten wir(vorerst) auf: Seiteneffekte; Datenstrukturen;

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld

Mehr

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

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16 C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Einführung in die Programmierung Wintersemester 2017/18

Einführung in die Programmierung Wintersemester 2017/18 Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

Einführung in die Programmierung Wintersemester 2010/11

Einführung in die Programmierung Wintersemester 2010/11 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 : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert

Mehr

Praxis der Programmierung

Praxis der Programmierung Liste, Ausnahmefehler, Template-Funktionen und -Klassen Institut für Informatik und Computational Science Henning Bordihn 1 Stack als einfach verkettete Liste 2 Aufgabe 1 1. Kopieren Sie aus /home/rlehre/w13

Mehr

Inhalt. 4.9 Typen, Variable und Konstante

Inhalt. 4.9 Typen, Variable und Konstante Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Programmiertechnik Klassenmethoden

Programmiertechnik Klassenmethoden Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Programm zur Berechung von public class Eval1 { public static void main(string[] args) { java.util.scanner

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

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -

Mehr

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Klassenmethoden Motivation Programm zur Berechnung von public class Eval1 { public static void main(string[] args) { java.util.scanner

Mehr

Java Referenzdatentypen genauer betrachtet

Java Referenzdatentypen genauer betrachtet Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen

Mehr

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme

Mehr

1.3 Handhabung eines Programmiersystems

1.3 Handhabung eines Programmiersystems 1.3 Handhabung eines Programmiersystems Der Turbo-Pascal-Editor Man muss nichts vom Innenleben eines Computers verstehen, um mit ihm umgehen zu können. Wir wollen ihn als "black box" verwenden, also lediglich

Mehr

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017 2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel

Mehr

Programmieren I. Kapitel 12. Referenzen

Programmieren I. Kapitel 12. Referenzen Programmieren I Kapitel 12. Referenzen Kapitel 12: Referenzen Ziel: Die Wahrheit über Objekte Lebensdauer Speicherverwaltung Parameterübergabemechanismen in Methoden Gleichheiten, Kopien Arrays Speicherbereinigung

Mehr