3.2 Erzeugen von Datentypen

Größe: px
Ab Seite anzeigen:

Download "3.2 Erzeugen von Datentypen"

Transkript

1 3.2 Erzeugen von Datentypen Der Datentyp Charge Charge ist ein Datentyp für geladene Teilchen auf einer Fläche (Punktladung). Potential in px, yq Das elektrische Potential V im Punkt px, yq bezgl. p ist k q0 bewirkt durch die Punktladung in px r 0, y 0 q wird beschrieben durch r px 0, y 0 q Punktladung p mit Ladung q 0 px, yq V k q0 r Dabei ist q 0 die Ladung im Punkt px 0, y 0 q, r ist der Abstand zwischen px, yq und px 0, y 0 q und k N m2 ist die Coulombsche C 2 Konstante. Unser Ziel ist, das Potential an verschiedenen Punkten der Ebene bezgl. mehrerer Punktladungen zu berechnen

2 Die API für Charge Unser Datentyp Charge soll Folgendes beschreiben: eine Ladung an einem Punkt in der Ebene, d.h. den Wert der Ladung q0 und die Koordinaten des Punktes px0, y0q das Potential an bel. Punkt px, y q bewirkt durch die Punktladung, d.h. k q0 Abstand von px0, y0q zu px, yq Operation Charge(x0,y0,q0) Beschreibung eine neue Punktladung an Punkt px0, y 0q mit Ladung q0 c.potentialat(x, y) das Potential an Punkt px, y q bewirkt durch Punktladung c str(c) q0 in (x0,y0) zur Darstellung von c als String

3 In Python beschreibt man Datentypen durch Klassen. Die Klasse Charge muss die Werte q0, x0, y 0 für bel. Punktladungen speichern können (Konstruktur), für jeden Punkt px, yq das Potential, das von der Punktladung im Punkt px0, y 0q bewirkt wird, bestimmen können (Methoden), und eine Punktladung als string darstellen können (spezielle Funktionen).

4 # Die Datei charge.py mit der Klasse Charge. import sys, stdio, math def test(): c = Charge(0.51, 0.63, 21.3) stdio.writeln(c) stdio.writeln(c.potentialat(0.7,0.8)) class Charge: # Ein Konstruktor def init (self, x0, y0, q0): self._xkoord = x0 self._ykoord = y0 self._ladung = q0 # Eine Methode def potentialat(self, x, y): COULOMB = 8.99e9 dx = x - self._xkoord dy = y - self._ykoord r = math.sqrt(dx*dx + dy*dy) if r == 0.0: if self._ladung > 0: return float('inf') else: return -float('inf') return COULOMB * self._ladung / r # Eine spezielle Funktion def str (self): text = str(self._ladung) + ' in (' + str(self._xkoord) + ', ' + str(self._ykoord) + ')' return text

5 3.2.5 Der Konstruktor Signatur spezielle Parameter-Variable gewöhnliche Parameter-Variablen def init ( self, x0, y0, q0 ): self. xkoord = x0 Instanz-Variablen self. ykoord = y0 Funktions-Rumpf self. ladung = q0

6 3.2.6 Konstruktor-Abarbeitung auf dem Objekt-Level Charge c = Charge(0.1,0.2,3.0) self x0 [ init (self,0.1,0.2,3.0)] y0 0.1 q

7 3.2.6 Konstruktor-Abarbeitung auf dem Objekt-Level Charge c = Charge(0.1,0.2,3.0) self x0 [ init (self,0.1,0.2,3.0)] y0 0.1 q0 0.2 self. xkoord = x0 self x0 y0 q0 Charge xkoord

8 3.2.6 Konstruktor-Abarbeitung auf dem Objekt-Level Charge c = Charge(0.1,0.2,3.0) self x0 [ init (self,0.1,0.2,3.0)] y0 0.1 q0 0.2 self. xkoord = x0 self. ykoord = y0 self x0 y0 q0 Charge xkoord ykoord

9 3.2.6 Konstruktor-Abarbeitung auf dem Objekt-Level Charge c = Charge(0.1,0.2,3.0) self x0 [ init (self,0.1,0.2,3.0)] y0 0.1 q0 0.2 self. xkoord = x0 self. ykoord = y0 self. ladung = q self x0 y0 q0 Charge xkoord ykoord ladung

10 Konstruktor-Abarbeitung auf dem Objekt-Level Charge c = Charge(0.1,0.2,3.0) self x0 [ init (self,0.1,0.2,3.0)] y0 0.1 q0 0.2 self. xkoord = x0 self. ykoord = y0 self. ladung = q self x0 y0 q0 Charge xkoord ykoord ladung [return self] c Charge xkoord ykoord ladung

11 Methoden Signatur spezielle Parameter-Variable gewöhnliche Parameter-Variablen def potentialat( self, x, y ): COULOMB = 8.99e9 lokale Variablen dx = x - self. xkoord dy = y - self. ykoord Instanz-Variablen r = math.sqrt(dx*dx, dy*dy) if r == 0.0:... Funktions-Aufruf return Anweisung return COULOMB * self. ladung / r 3.2.7

12 Variablen in Methoden Parameter-Variablen Bsp.: self, x, y Aufgabe: Übergabe von Argumenten beim Aufruf der Methode Gültigkeitsbereich (scope): Methode Instanz-Variablen Bsp.: xkoord, ykoord Aufgabe: Speicherung von Werten des Datentyps Gültigkeitsbereich (scope): Klasse lokale Variablen Bsp.: dx, dy Aufgabe: Speicherung von temporären Werten beim Rechnen Gültigkeitsbereich (scope): Methode

13 Spezielle Funktionen und Konventionen Die Funktion str(c) in der API: nach Konvention wird beim Aufruf str(c) die Methode c. str () angewendet. Beim Aufruf von stdio.writeln(c) wird von Python stdio.writeln(str(c)) ausgeführt (etc.). Die Schreibweise mit Unterlänge wird dann benutzt, wenn ein Variablen- oder Methodenname nur innerhalb der Klasse benutzt werden soll. In Python gibt es keine Möglichkeit, die Benutzung dieser Variablen- und Methodennamen zu verbieten. Andere Programmiersprachen bieten Konzepte dafür.

14 Erzeugen eines Datentyps Kurze Zusammenfassung 1. Angabe der API Ziel: einfache Benutzung des Datentyps von Klienten Klarheit über Struktur des Datentyps: welche Daten und welche Methoden? 2. Implementierung einer Klasse in Python Konstruktur init mit self als erster Parameter-Variable gefolgt von den gewöhnlichen Parameter-Variablen Methoden gemäß der API mit self als erster Parameter-Variable gefolgt von den gewöhnlichen Parameter-Variablen spezielle Funktionen, deren Namen von doppelte Unterlängen eingeschlossen sind mit self als erster Parameter-Variable 3. Testen der Implementierung

15 Bsp.: Visualisierung von Potentialen Wir wollen Punktladungen aus einer Datei einlesen (alle Punkte haben Koordinaten px, y q mit 0 ď x, y ď 1), die Potentiale aller Punkte mit Koordinaten 0 ď x, y ď 1 berechnen (das Potential in einem Punkt ist die Summe der Potentiale aller Punktladungen in dem Punkt) und graphisch darstellen, z.b. verschiedene Graustufen hohes Potential ist hell und niedriges Potential ist dunkel. % more charges.txt

16 Welche Datenstruturen wollen wir benutzen? Charge Picture zur Darstellung des Ergebnis-Bildes. Der Zugriff auf die einzelnen Punkte des Bildes ist dabei sehr einfach. Color InStream zum Einlesen der Datei.

17 Die API von InStream

18 potential.py # potential.py import sys, stdio, stddraw, stdarray, math from charge import Charge from color import Color from picture import Picture from instream import InStream # Lies einen Dateinamen von der Kommandzeile # und öffne die Datei mit diesem Namen. dateiname = sys.argv[1] eingabe = InStream(dateiname) # Die Datei enthält zuerst die Anzahl (int) # der Punktladungen, die folgen, # und anschließend die Punktladungen bestehend # aus den Koordinaten (x,y) des Punktes und # der Ladung a (alles float). # Die Datei wird eingelesen # und die Punktladungen werden erzeugt. n = eingabe.readint() charges = stdarray.create1d(n) for i in range(n): x = eingabe.readfloat() y = eingabe.readfloat() q = eingabe.readfloat() charges[i] = Charge(x,y,q) # Die Ausgabe ist ein quadratisches Bild mit # aufloesung*aufloesung Pixeln. aufloesung = 400 # Das Potential für jedes Pixel wird berechnet. # potentials ist ein 2d-Array, in dem die # Potentiale gespeichert werden. Es wird später # für die Darstellung als Picture verwendet. # allepotentiale ist ein 1d-Array, in dem alle # Potentiale gespeichert werden. Es wird später # zur Umrechnung der Potentiale in Graustufen # verwendet. potentials = \ stdarray.create2d(aufloesung,aufloesung) allepotentiale = [] for s in range(aufloesung): for z in range(aufloesung): x = 1.0 * s / aufloesung y = 1.0 * z / aufloesung v = 0.0 for i in range(n): v += charges[i].potentialat(x,y) potentials[s][z] = v allepotentiale += [v] # Sortiere das Array mit allen Potentialen. allepotentiale.sort() blocklaenge = len(allepotentiale) /

19 # Sortiere das Array mit allen Potentialen. allepotentiale.sort() # Die Potentiale im sortierten Array allepotentiale im ersten 256stel # des Arrays erhalten Graustufe 0, im zweiten 256stel Graustufe 1 # und so weiter, bis im 256sten 256stel die Graustufe 255 erreicht wird. # Die Länge dieser Abschnitte wird durch blocklaenge bestimmt. blocklaenge = len(allepotentiale) / 256 # Das Potential für jedes Pixel wird dargestellt. pic = Picture(aufloesung,aufloesung) # Berechne für jedes Pixel des Bildes die Graustufe. for s in range(aufloesung): for z in range(aufloesung): # Bestimme die Graustufe. gray = 0 while potentials[s][z] > allepotentiale[(gray+1)*blocklaenge-1] and gray<=254: gray += 1 graustufe = Color(gray,gray,gray) pic.set(s,pic.height()-1-z, graustufe) # Male pic auf dem Bildschirm stddraw.setcanvassize(pic.width(),pic.height()) stddraw.picture(pic) stddraw.show()

20 Die Umwandlung von Potentialen in Graustufen kann auf verschiedene Weisen dargestellt werden... Das erste Bild ensteht mit dem angegebenen Programm.

21 Turtle-Graphik Der Datentyp Turtle Idee: Bilder lassen sich mit einem Bleistift malen, indem man wiederholt eine Richtung einnimmt in diese Richtung einen geraden Strich einer bestimmten Länge zeichnet Bsp.: ein gleichseitiges Dreieck malt man durch: nimm Richtung 0 ein male einen 10cm langen Strich drehe die Richtung 120 nach links male einen 10cm langen Strich drehe die Richtung 120 nach links male einen 10cm langen Strich

22 Die API für Turtle Ein Datentyp zum Malen auf diese Art muss die Stelle und die Richtung speichern, eine Methode zum Ziehen eines Strichs und eine Methode zum Ändern der Richtung haben. Operation Turtle(x0,y0,a0) t.goforward(s) t.turnleft(d) str(t) Beschreibung eine neue Turtle an Punkt px0, y0q mit Richtung a0 Turtle t geht s Schritte vorwärts und malt dabei einen Strich Turtle t dreht d Grad nach links (x0,y0) mit Richtung a0 zur Darstellung von t als String

23 Was brauchen wir? Mittels stddraw.line(a,b,x,y) kann man einen Strich von Punkt pa, bq nach Punkt px, yq malen. Wir müssen also aus Punkt pa, bq, Winkel α und Strichlänge s den von der Turtle beim Malen erreichten Punkt ausrechnen. pa ` s cos α, b ` s sin αq s s sin α pa, bq α s cos α

24 turtle.py import sys, stddraw, math class Turtle: def init (self,x0,y0,a0): self._x = x0 self._y = y0 self._angle = a0 def turnleft(self,delta): self._angle += delta % 360 def goforward(self,stepnumber): oldx = self._x oldy = self._y self._x += stepnumber * math.cos(math.radians(self._angle)) self._y += stepnumber * math.sin(math.radians(self._angle)) stddraw.line(oldx, oldy, self._x, self._y) def str (): return '(' + x0 + ',' + y0 + ') mit Richtung ' + a0

25 # Der Test-Client liest einen int-wert n von der Konsole ein # und zeichnet ein n-eck def test(): n = int(sys.argv[1]) step = math.sin(math.radians(180.0/n)) t1 = Turtle(0, 0, 0) stddraw.setcanvassize(800,800) stddraw.setxscale(-0.2,1.2) stddraw.setyscale(-0.2,1.2) for i in range(n): t1.goforward(step) t1.turnleft(360.0/n) stddraw.show() if name == ' main ': test()

26 Erweiterung der API für Turtle Wir wollen der Turtle beim Malen zuschauen können und erlauben ihr, zufällige Schritte zu machen (und in anderen Farben zu malen). Operation Beschreibung Turtle(x0,y0,a0,steps,delay) eine neue Turtle an Punkt px0, y0q mit Richtung a0 ; das Malen eines Strichs wird in steps (default 1) Etappen zerteilt und nach jeder Etappe wird das bisher gemalte für delay ms (default 10) angezeigt t.goforward(s) t.turnleft(d) t.randomstep(s) Turtle t geht s Schritte vorwärts und malt dabei einen Strich Turtle t dreht d Grad nach links Turtle t ändert die Richtung zufällig und macht einen Schritt der Länge s

27 Die neue Methode randomstep(s) in turtle.py import stdrandom Class Turtle:... def randomstep(self,steplength): angle = stdrandom.uniformfloat(0.0,360.0) self.turnleft(angle) self.goforward(steplength)

28 Brown sche Bewegung Wir lassen die Turtle eine zufällige Wanderung über die Ebene machen. # drunk1.py import sys, stddraw import sys, stddraw, stdrandom from turtle import Turtle python drunk1.py trials = int(sys.argv[1]) step = float(sys.argv[2]) stddraw.setpenradius(0.0) t = Turtle(0.5,0.5,0.0,1,0) for x in range(trials): angle = stdrandom.uniformfloat(0.0,360.0) t.turnleft(angle) t.goforward(step) stddraw.show()

29 Wir können jetzt auch viele Turtles gleichzeitig malen lassen. # drunkn.py import sys, stddraw, stdrandom from color import Color from turtle import Turtle n = int (sys.argv[1]) trials = int(sys.argv[2]) step = float(sys.argv[3]) python drunkn.py stddraw.setpenradius(0.0) # Erzeuge ein Array aus n turtles mit # zufälligen Startpositionen. turtles = stdarray.create1d(n) for t in range(n): x = stdrandom.uniformfloat(0.1,0.9) y = stdrandom.uniformfloat(0.1,0.9) turtles[t] = Turtle(x,y,0.0,1,1) # Lasse sie alle für trials Schritte laufen. for t in range(trials): for t in turtles: t.randomstep(step) stddraw.show()

30 Zusammenfassung Wir haben die ersten Schritte dazu gesehen, wie man einen Datentyp entwirft, eine API dafür angibt und den Datentyp in Python als Klasse implementiert. Wir werden noch mehr Schritte dazu sehen.

Diskrete Modellierung

Diskrete Modellierung Diskrete Modellierung Wintersemester 2016/17 Martin Mundhenk Uni Jena, Institut für Informatik 24. Oktober 2016 3.2 Erzeugen von Datentypen Der Datentyp Charge Charge ist eine Datentyp für geladene Teilchen

Mehr

Diskrete Modellierung

Diskrete Modellierung Diskrete Modellierung Wintersemester 2018/19 Martin Mundhenk Uni Jena, Institut für Informatik 22. Oktober 2018 Vorlesung Diskrete Modellierung Grundlagen der Programmierung mit Python (Teil 2) (Winter

Mehr

3.2.b Turtle-Graphik. male einen 10cm langen Strich (und warte kurz) Der Datentyp Turtle

3.2.b Turtle-Graphik. male einen 10cm langen Strich (und warte kurz) Der Datentyp Turtle 3.2.b Turtle-Graphik Der Datentyp Turtle Idee: Bilder lassen sich mit einem Bleistift malen, indem man wiederholt eine Richtung 0 360 einnimmt in diese Richtung einen geraden Strich einer bestimmten Länge

Mehr

Diskrete Modellierung

Diskrete Modellierung Diskrete Modellierung Wintersemester 2018/19 Martin Mundhenk Uni Jena, Institut für Informatik 13. November 2018 3.3.1 3.3 Entwurf von Datentypen Durch das Erzeugen von Datentypen entwickelt der Programmierer

Mehr

Diskrete Modellierung

Diskrete Modellierung Diskrete Modellierung Wintersemester 2017/18 Martin Mundhenk Uni Jena, Institut für Informatik 16. Oktober 2017 Vorlesung Diskrete Modellierung Grundlagen der Programmierung mit Python (Teil 2) (Winter

Mehr

3.3 Entwurf von Datentypen

3.3 Entwurf von Datentypen 3.3 Entwurf von Datentypen Durch das Erzeugen von Datentypen entwickelt der Programmierer eine eigene Sprache, mit der über die Daten gesprochen werden kann. Deshalb muss man beim Entwickeln einer Idee

Mehr

Vorlesung Versickerung (ein Anwendungsbeispiel) 2.3.1

Vorlesung Versickerung (ein Anwendungsbeispiel) 2.3.1 2.3.1 Vorlesung 07 2. Funktionen und Module 2.1 Definition von Funktionen 2.2 Module 2.3 Rekursion Die Fakultätsfunktion Schnelles Potenzieren Zeichnen von Funktionsgraphen 2.4 Versickerung (ein Anwendungsbeispiel)

Mehr

Diskrete Modellierung

Diskrete Modellierung Diskrete Modellierung Wintersemester 2016/17 Martin Mundhenk Uni Jena, Institut für Informatik 17. Oktober 2016 Vorlesung Algorithmische Grundlagen (Sommer 2016) Die Vorlesung/Übung orientiert sich am

Mehr

3.4 Zwei Anwendungsbeispiele

3.4 Zwei Anwendungsbeispiele 3.4.1 3.4 Zwei Anwendungsbeispiele Zum Abschluss dieses Kapitels schauen wir uns zwei Anwendungsbeispiele an. Ähnlichkeits-Test n-body simulation 3.4.2 Ähnlichkeits-Test Das Internet ist voll von verschiedensten

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Vorlesung Abschluss-Beispiel: Page Rank

Vorlesung Abschluss-Beispiel: Page Rank Vorlesung 05 1. Elemente des Programmierens 1.2 Grundlegende Daten-Typen 1.3 Verzweigungen und Schleifen 1.4 Arrays 1.5 Ein- und Ausgabe standard output standard input standard drawing 1.6 Abschluss-Beispiel:

Mehr

1 Berechnung von Summen (ca = 10 Punkte)

1 Berechnung von Summen (ca = 10 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 26.02.2013 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Berechnung von Summen (ca. 5 + 4 + 1 = 10 Punkte) Gegeben sind natürliche

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Aufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Aufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt: Aufgabenblatt 3 Kompetenzstufe 1 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 24.11.2017 13:00 Uhr in TUWEL hoch.

Mehr

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

Mehr

Aufgabenblatt 2. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

Aufgabenblatt 2. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt: Aufgabenblatt 2 Kompetenzstufe 2 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 01.12.2017 13:00 Uhr in TUWEL hoch.

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt

Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung Prof. Redlich 6. Übungsblatt 21 (+4) Punkte Abgabe bis 31.01.2010 (08:00 Uhr) über GOYA Aufgabe

Mehr

Probeklausur: Programmierung WS04/05

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

Mehr

Praktikum 4: Grafiken und Ereignisse

Praktikum 4: Grafiken und Ereignisse Praktikum 4: Grafiken und Ereignisse Aufgabe 1: Java Applikation Bisher haben wir in Java (ebenso wie in C) jeweils selbständige Konsole-Applikationen erstellt. Java wurde als Programmiersprache für das

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

OOP. Mit Zahlen rechnen. Henrik Horstmann

OOP. Mit Zahlen rechnen. Henrik Horstmann OOP Mit Zahlen rechnen Henrik Horstmann 15. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Ein Taschenrechner zum Addieren...2 3 Die Benutzereingaben...3 4 Strings in

Mehr

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:...

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:... ALP II Objektorientierte Programmierung SS 2012 Prof. Dr. Margarita Esponda 1. Teilklausur Name:... Vorname:... Matrikel-Nummer:... Ich bin mit der Veröffentlichung der Klausurergebnisse mit Matrikel-Nummer

Mehr

4.3 Keller und Warteschlangen

4.3 Keller und Warteschlangen .3 Keller und Warteschlangen Wir werden zuerst die weitverbreitete Datenstruktur Keller (auch stack, pushdown) kennenlernen. Auch in Python selbst wird sie z.b. bei der Auswertung arithmetischer Ausdrücke

Mehr

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut Mathematisches Institut mselva@math.uni-koeln.de 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php

Mehr

Objektorientiertes Programmieren II

Objektorientiertes Programmieren II Objektorientiertes Programmieren II Symbolische Programmiersprache. Benjamin Roth Folien von Annemarie Friedrich Wintersemester 2017/2018 Centrum für Informations- und Sprachverarbeitung LMU München 1

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

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

Nachtrag: Vergleich der Implementierungen von Stack

Nachtrag: Vergleich der Implementierungen von Stack Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als

Mehr

Parameterübergabemechanismen für den Methodenaufruf

Parameterübergabemechanismen für den Methodenaufruf Methode, griech. der Weg zu etwas, planmäßiges Verfahren -Brockhaus Parameterübergabemechanismen für den Methodenaufruf Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

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

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

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

1 Eine Einführung in die objektorientierte Programmierung

1 Eine Einführung in die objektorientierte Programmierung #!/usr/bin/env python3 # -*- coding: utf-8 -*- # """ # Created on Fri Jan 12 09:34:34 2018 # # @author: christianehelzel # """ import matplotlib.pyplot as plt 1 Eine Einführung in die objektorientierte

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken Aufgabe 1.60 a) Welchen Wert erhält die boolesche Variable z in folgendem Beispiel? int i = 2, j = 5; boolean

Mehr

4.4 Symboltabellen. Symboltabellen sind von grundlegender Bedeutung beim Programmieren. Wir werden uns ansehen, wie man sie implementieren kann.

4.4 Symboltabellen. Symboltabellen sind von grundlegender Bedeutung beim Programmieren. Wir werden uns ansehen, wie man sie implementieren kann. 4.4 Symboltabellen Eine Symboltabelle assoziiert Werte mit Schlüsselwörtern. Beispiele: ein Adressbuch, in dem Namen (Schlüsselwörter) Adressen, Telefonnummern und Geburtstage (Werte) zugeordnet werden

Mehr

WS2017/ Oktober 2017

WS2017/ Oktober 2017 Einführung in die Programmierung Ronja Düffel WS2017/18 09. Oktober 2017 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

hue12 January 24, 2017

hue12 January 24, 2017 hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

Teil 2: Weitere Aspekte der Objektorientierung

Teil 2: Weitere Aspekte der Objektorientierung Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:

Mehr

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Scriptcharakter 2. Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren 3.

Mehr

Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014

Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014 Python 2! Vorlesung Computerlinguistische Techniken Alexander Koller! 28. Oktober 2014 Listen Sequenz von beliebigen Werten. Literale: [], [1,2,3], [ hallo, True, -5.0] Hinten an Liste anhängen: L.append(27)

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Was bisher geschah... Konzepte: Klassen und ihre...... Instanzen, die

Mehr

Analyse der Klasse Konto

Analyse der Klasse Konto Klasse Konto erzeugt Objekte vom Typ Konto mit gleichen Eigenschaften mit gleichen Fähigkeiten Welche Eigenschaften hat ein Konto? Attribute Datenfelder - Konto hat eine Nummer - Konto hat Inhaber - Konto

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Ausgabe:

Ausgabe: Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife

Mehr

Institut für Informatik und Angewandte Kognitionswissenschaften

Institut für Informatik und Angewandte Kognitionswissenschaften Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");

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

Basispruefung Herbst 2016/ Einführung in die Programmierung

Basispruefung Herbst 2016/ Einführung in die Programmierung Basispruefung Herbst 2016/17 0027 Einführung in die Programmierung Departement Informatik ETH Zürich Nachname: Vorname: Stud.number: Mit Ihrer Unterschrift bestätigen Sie, dass Sie folgenden Hinweise zur

Mehr

SFZ FN Sj. 13/14. Python 2 Turtle. GZG FN W.Seyboldt. Inf K1/2 Sj 13/14

SFZ FN Sj. 13/14. Python 2 Turtle. GZG FN W.Seyboldt. Inf K1/2 Sj 13/14 SFZ FN Sj. 13/14 Python 2 Turtle 1 Turtle Die Turtle ist eine programmierbare Schildkröte, die auf dem Boden hin- und herlaufen kann und, falls der Zeichenstift abgesenkt ist, ihren zurückgelegten Weg

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Programmieren I. Kapitel 10. Spezielle Features

Programmieren I. Kapitel 10. Spezielle Features Programmieren I Kapitel 10. Spezielle Features Kapitel 10: Spezielle Features Ziel: Besonderheiten von Java bei OO Konzepten statische Attribute und Methoden innere, verschachtelte und lokale Klassen anonyme

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

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

1 Stückweise konstante Funktionen (ca =10 Punkte)

1 Stückweise konstante Funktionen (ca =10 Punkte) Einführung in die wissenschaftliche Programmierung Klausur Seite 1/5 Name, Vorname, Unterschrift: Matrikelnummer: 1 Stückweise konstante Funktionen (ca. 4+2+4=10 Punkte) In dieser Aufgabe soll eine Klasse

Mehr

1 Autorennen ( = 11 Punkte)

1 Autorennen ( = 11 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 11.02.2016 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Autorennen (3 + 3.5 + 4.5 = 11 Punkte) Eine Physikerin beobachtet die Geschwindigkeit

Mehr

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

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

Mehr

Anweisungen zur Ablaufsteuerung

Anweisungen zur Ablaufsteuerung Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden

Mehr

Programmieren mit Jython Teil 4: Selektion und Zufallszahlen

Programmieren mit Jython Teil 4: Selektion und Zufallszahlen Programmieren mit Jython Teil 4: Selektion und Zufallszahlen Lernziele Verwendung der if Anweisung: gewisse Zeilen werden nur dann ausgeführt, wenn eine Bedingung erfüllt (oder nicht erfüllt) ist. Erzeugung

Mehr

Labor Software-Entwicklung 1

Labor Software-Entwicklung 1 Fakultät für Technik STUDIENGANG MEDIZINTECHNIK Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 2 C-Programmierung Mathematische Berechnungen Wintersemester 205/206 Seite von 5 Vorbemerkungen

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

Einführung in die Informatik - Teil 6a -

Einführung in die Informatik - Teil 6a - Eckart Modrow Felder mit dem JBuilder S. 1 Einführung in die Informatik - Teil 6a - Felder mit dem JBuilder Inhalt: 1. Bezug zum Unterricht: Anwendungen 2. Eine eigene Klasse Feldverwalter 3. Den Feldverwalter

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Java Übung Übung 3 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 2. Mai 2006 (UniDUE) 2. Mai 2006 1 / 17 Aufgabe 1 Umwandeln von do while in for Schleife. Listing 1: aufgabe3 1.java 1 public

Mehr

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08 Betreutes Arbeiten Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) 375 Wiederholung Klasse: class Klassenname { konzeptuelle Einheit der Modellierungsdomäne kapselt Daten und Operationen

Mehr

Aufgabenblatt 1. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Aufgabenblatt 1. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt: Aufgabenblatt 1 Kompetenzstufe 1 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 03.11.2017 13:00 Uhr in TUWEL hoch.

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

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

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen? Kapitel 3 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Anweisungen, Variablen Arten von Anweisungen Variablen Konstanten Höchste Zeit für ein Programm Gültigkeitsbereich von Variablen

Mehr

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; } Konstruktor spezielle Methode zum Initialisieren bei Erzeugen eines Objekts mit new trägt Namen der Klasse hat keinen Rückgabetyp keiner angegeben: Compiler erzeugt Standard-Konstruktor (analog: Attribute

Mehr

Übungszettel 2a - Python

Übungszettel 2a - Python Vorsemesterkurs Informatik Übungsaufgaben Übungszettel 2a - Python Aufgabe 1: Python starten Teilaufgaben (a)-(c) beziehen sich auf das Arbeiten unter den Systemen, die auf den RBI-Rechnern installiert

Mehr

1 Bizz Buzz Woof (ca =18 Punkte) def read file(file_in): fp = open(file_in, r ) l = fp.read() fp.close() return l

1 Bizz Buzz Woof (ca =18 Punkte) def read file(file_in): fp = open(file_in, r ) l = fp.read() fp.close() return l Einführung in die wissenschaftliche Programmierung Klausur 1. März 2010 Seite 1/7 Name, Vorname, Unterschrift: Matrikelnummer: 1 Bizz Buzz Woof (ca. 3+9+6=18 Punkte) In dieser Aufgabe sollen Zahlen codiert

Mehr

Aufgabenblatt: OOP - Seite 1. (2.) Geometrie: Erstellen Sie eine Klasse CPyramid, die sich von der Klasse Square ableitet:

Aufgabenblatt: OOP - Seite 1. (2.) Geometrie: Erstellen Sie eine Klasse CPyramid, die sich von der Klasse Square ableitet: Aufgabenblatt: OOP - Seite 1 Aufgabenblatt: OOP II (1.) Gegeben ist nebenstehende die Klasse CPoint! (a.) Schreiben Sie eine Subklasse CPoint3 mit nebenstehenden Eigenschaften und Methoden und Testen Sie

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

- EINSTIEG IN JAVA - (1/5) Datum:

- EINSTIEG IN JAVA - (1/5) Datum: - EINSTIEG IN JAVA - (1/5) Datum: 2.2 Wir lernen die Programmiersprache Java und entwickeln ein Computerspiel Schritt #1: Constructor-Methoden: Wir setzen die beiden Spieler in die 'Welt' (das Spielfeld)

Mehr

Teil VI. Objektorientierte Programmierung. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/

Teil VI. Objektorientierte Programmierung. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/ Teil VI Objektorientierte Programmierung T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/2017 125 Was ist ein Objekt? T. Neckel Einführung in die wissenschaftliche

Mehr

PYTHON. 04 Funktionen II, Module

PYTHON. 04 Funktionen II, Module PYTHON 04 Funktionen II, Module Funktionen Funktionen enthalten Programm-Teile können später im Programm aufgerufen werden können beliebig oft aufgerufen werden (und man muss nur die Funktion aufrufen,

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

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

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr