intermatix Coding Guidelines

Größe: px
Ab Seite anzeigen:

Download "intermatix Coding Guidelines"

Transkript

1 intermatix Coding Guidelines Autor: Bernd Alter Stand:

2 Übersicht Umfang Dieses Dokument stellt die Coding-Standards und Programmierrichtlinien für PHP-Entwickler-Teams bereit. Die Hauptthemen sind: Allgemeine Grundsätze Dateiformatierung Namenskonventionen Programmierstil Inline-Dokumentation Musterklasse Vorteile Gute Programmierstandards sind wichtig für jedes Software-Projekt, insbesondere wenn mehrere Entwickler zusammen an einem Projekt arbeiten. Coding-Standards verhelfen zu einem qualitativ hohen und einheitlichen Code mit weniger Fehlern und einfacher Wartung. Allgemeine Grundsätze Jede Funktion oder Methode erfüllt nur einen Zweck, den aber möglichst gut. Alles ist objektorientiert. Alles wird in Englisch verfasst. Alles ist für den phpdocumentor dokumentiert. Alles ist so kurz wie möglich gehalten. Alles ist so zeitlos wie möglich.

3 Dateiformatierung Einzug Benutze einen Einzug von zwei Leerzeichen ohne Tabulatoren. Die Konfiguration des verwendeten Editors/IDE sollte (sofern möglich) so eingestellt werden, dass Tabulatoren als Leerzeichen ausgegeben werden, um Tabulatorzeichen im Quellcode zu vermeiden. Leerzeichen Es muss immer ein Leerzeichen eingefügt werden nach Variablen, Operatoren sowie nach folgenden Zeichen: ( ), ; Eine Ausnahme sind runde Klammern bei Typumwandlungen. Vor bzw. nach eckigen Klammern ([]) sollen keine Leerzeichen eingefügt werden. Beispiele falsch for($i=0;$i<=100;$i++) $array[$i]=($i+5)10; echo sprintf('nr %02d',$i); $toggle=(bool)($i%2); Maximale Zeilenlänge richtig for ( $i = 0; $i <= 100; $i++ ) $array[$i] = ( $i + 5 ) 10; echo sprintf( 'Nr %02d', $i ); $toggle = (bool) ( $i % 2 ); Die optimale Zeilenlänge ist 80 Zeichen; d.h. Entwickler sollten so nah wie möglich an der 80 Zeichen Grenze bleiben, soweit dies praktikabel ist. Längere Zeilen sind aber erlaubt. Die maximale Länge einer Zeile mit PHP-Code beträgt 120 Zeichen. Zeilenabschluss Zeilen müssen mit einem Zeilenvorschub (LF) enden. Die Konfiguration des verwendeten Editors/IDE sollte (sofern möglich) so eingestellt werden, dass Leerzeichen am Ende einer Zeile automatisch entfernt werden.

4 Namenskonventionen Für Bezeichner (Klassennamen, Methoden, Methodenparameter, Variablen, Konstanten etc.) werden ausschließlich englische Ausdrücke verwendet. Als Schreibweise gilt die (lower)camelcase-konvention. class SampleClass private $url; public $destinationurl; public function geturl()... Bezeichner sind immer sprechend zu benennen und sollten nicht abgekürzt werden. Beispiele falsch function getuserbynn() $pa Klassen richtig function getuserbynickname() $pollanswers Klassennamen dürfen nur alphanumerische Zeichen enthalten. Zahlen sind erlaubt, jedoch zu vermeiden. Wenn ein Klassenname aus mehreren Wörtern besteht, wird der erste Buchstabe von jedem neuen Wort gross geschrieben. Aufeinanderfolgende Grossbuchstaben sind nicht erlaubt; z.b. die Klasse "MYSQLHelper" ist nicht erlaubt, "MySqlHelper" aber schon. Schnittstellen Schnittstellenklassen müssen denselben Namenskonventionen der normale Klassen folgen (siehe oben), müssen jedoch mit dem Schlüsselwort "Interface" enden. Dateinamen Für alle anderen Dateien dürfen nur alphanumerische Zeichen, Underscores und Trennstriche ("-") verwendet werden. Leerzeichen sind nicht erlaubt. Jede Datei, die PHP-Code enthält muss die Endung ".php" haben. Funktionen und Methoden Funktionsnamen dürfen nur alphanumerische Zeichen enthalten. Zahlen sind erlaubt, jedoch zu vermeiden. Underscores sind nicht erlaubt. Funktionsnamen müssen immer mit einem Kleinbuchstaben beginnen. Wenn eine Funktion aus mehreren Namen besteht, muss der Anfangsbuchstabe von jedem neuen Wort grossgeschrieben werden. Diese Benennungsmethode wird auch studlycaps oder camelcaps genannt. Funktionen und Methoden müssen so klar wie möglich bezeichnet werden, damit anhand des Funktionsnamen jeder versteht, was die Funktion macht.

5 Beispiele: filterinput() getelementbyid() addattachment() In der objektorientierten Programmierung sollten alle Klassenvariablen mit den Suffixen get oder set in den Methoden verwendet werden. Wenn Design Patterns, wie Singleton oder Factory Patterns, verwendet werden, sollte der Methodenname den Pattern-Name enthalten, damit das Pattern beim Lesen verständlich ist. Zusammenhangslose Funktionen (floating functions) sind in einer abstrakten Klasse unterzubringen und als statisch zu bezeichnen. Variablen Variablennamen dürfen nur aus alphanumerischen Zeichen bestehen. Underscores sind nicht erlaubt. Zahlen sind erlaubt, jedoch zu vermeiden. Wie bei den Funktionsnamen müssen alle Variablen mit Kleinbuchstaben beginnen und der "camelcaps" Namenskonvention folgen. Variablennamen sind so kurz und so verständlich wie möglich zu halten. Variablen wie $i und $n sollten nur bei kleineren Schleifen verwendet werden. Wenn eine Schleife mehr als 20 Zeilen hat, muss der Zähler ($i oder $n) genauer bezeichnet werden, z.b. $foobarcounter. Konstanten Konstantennamen dürfen nur aus alphanumerischen Zeichen und Underscores bestehen. Zahlen sind erlaubt in, jedoch zu vermeiden. Konstanten müssen immer in Grossbuchstaben geschrieben werden. Um die Lesbarkeit zu erleichtern, werden die einzelnen Wörter mit Underscores getrennt. Zum Beispiel EMBED_SUPPRESS_EMBED_EXCEPTION ist erlaubt, nicht erlaubt ist EMBED_SUPPRESSEMBEDEXCEPTION. Klassenkonstanten müssen als const definiert werden. Allgemeine Konstanten, die mit define definiert werden, sind nur in Ausnahmefällen erlaubt.

6 Programmierstil Lesbarkeit Um einen gut lesbaren Quellcode zu erhalten, sollten folgende Richtlinien befolgt werden: der Quellcode sollte aufgeräumt und gut strukturiert sein an Leerzeichen muss nicht gespart werden vor und hinter Blöcken (Bedingungen und Schleifen) sollte eine Leerzeile stehen PHP Code Abgrenzung PHP Code muss immer mit den folgenden Tags abgegrenzt werden: <?php...?> In reinen PHP-Dateien (Klassen, Bibliotheken, etc.) muss nur der öffnende PHP-Tag am Anfang der Datei stehen, der schließende Tag sollte weggelassen werden, da evtl. Leerzeichen nach dem schließenden Tag eine ungewollte Ausgabe und damit Fehler erzeugen können ('header already sent'). Strings Ein String sollte grundsätzlich mit einfachen Apostrophen (single quotes) abgegrenzt werden. Dies hat den Vorteil, dass PHP Code im String nicht ausgeführt wird und so z.b. HTML Ausgaben einfacher sind. Nur Datenbankabfragen werden zwischen doppelte Apostrophen (double quotes) gestellt. HINWEIS: Alle SQL-Befehle werden immer gross geschrieben. WICHTIG: Bei String-Konkatenation wird statt des Punktoperators oder direkter Einbettung von Variablen in Strings die Funktion sprintf() verwendet. falsch $sql = "SELECT FROM ".$table." WHERE id='".$id."'"; $amount = 10; $formatted = "EUR $amount,00"; richtig $sql = sprintf( "SELECT FROM %s WHERE id='%d'", $table, $id ); $amount = 10; $formatted = sprintf( 'EUR %0.2f', $amount ); Vorteile: höhere Typsicherheit Minimierung von Fehlerquellen bessere Lesbarkeit des Quellcodes integrierte Formatierungsmöglichkeiten

7 Arrays mit numerischem Index Negative Zahlen sind nicht erlaubt als Array-Index. Arrays dürfen mit positiven Zahlen als Index beginnen, jedoch ist empfohlenswert jeden Array mit 0 zu beginnen. Wenn die Indizes eines Arrays definiert werden, muss nach jedem Komma ein Leerzeichen stehen: $samplearray = array( 1, 2, 3, 'Buxa', 'Buxa' ); Es ist auch erlaubt, einen Array über mehrere Zeilen aufzuteilen. In diesem Fall muss jede neue Zeile unter dem 1. Element der 1. Zeile beginnen. Beispiel: $samplearray = array( 1, 2, 3, 'Buxa', 'Buxa', $a, $b, $c, 56.44, $d, 500 ); Assoziative Arrays Bei der Definition von assoziativen Arrays, ist ein Element pro Zeile anzugeben. Dabei ist zu beachten, dass der "=>" bei allen Zeilen am gleichen Ort steht und somit Schlüssel und Wert untereinander stehen. Die Abstände werden mit Leerzeichen ausgeglichen: $samplearray = array( 'firstkey' => 'firstvalue', 'secondkey' => 'secondvalue', 'thirdkey' => 'thirdvalue' ); Die folgende Schreibweise ist auch erlaubt: $samplearray['firstkey'] = 'firstvalue'; $samplearray['secondkey'] = 'secondvalue'; $samplearray['thirdkey'] = 'thirdvalue'; WICHTIG: Array-Schlüssel und -Wert müssen immer in Apostrophen (single quotes) gesetzt werden! Klassendeklarationen Klassen müssen die folgenden Namenskonventionen einhalten: Die geschweifte Klammer wird immer unterhalb des Klassennamens geschrieben ("one true brace" form). Jede Klasse muss einen Dokumentations-Block im phpdocumentor-standard enthalten. Jeder Code innerhalb der Klasse muss zwei Leerzeichen eingerückt sein. Es darf nur eine Klasse pro Datei definiert werden. Zusätzlicher Code in einer Klassendatei ist zu vermeiden. In diesem Fall müssen 2 leere Zeilen Abstand zwischen Klasse und zusätzlichem Code gemacht werden. Beispiel einer gültigen Klassendeklaration: Class Docblock Here class MyClass // Entire content of class must be indented two spaces

8 Klassenvariablen Klassenvariablen müssen die folgenden Namenskonventionen einhalten: Alle in einer Klasse verwendeten Klassenvariablen müssen innerhalb der Klasse zuoberst aufgelistet werden. Erst darunter folgen die Klassenmethoden. Das var-konstrukt ist nicht erlaubt. Klassenvariablen sind immer nach Sichtbarkeit zuzuordnen, d.h. mit den private, protected oder public Konstrukten. Klassenvariablen dürfen als public definiert werden, dieses ist jedoch zu vermeiden. Verwenden Sie die Zugriffsmethoden mit set und get als Präfix. Eine Klassenvariablen sollte - sofern sie nicht public ist - immer zuerst als private deklariert werden, erst wenn die klare Notwendigkeit besteht, z.b. wegen der Vererbung, sollte sie als protected deklariert werden. Class Docblock Here class MyClass Variable Docblock Here private $privatevar = null; Variable Docblock Here protected $protectedvar = null; Variable Docblock Here public $publicvar = null; Funktionen- und Methoden-Deklaration Funktionen und Klassenmethoden müssen die folgenden Namenskonventionen einhalten: Methoden müssen immer zuerst mit ihrer Sichtbarkeit deklariert werden, d.h. mit den private, protected oder public Konstrukten. Wie bei Klassen wird die öffnende geschwungene Klammer unterhalb des Methodennamens definiert ("one true brace" form). Zwischen Funktions- oder Methodenname und der Klammer für deren Argumente / Parameter darf kein Leerzeichen sein. Eine Klassenmethodesollte - sofern sie nicht public ist - immer zuerst als private deklariert werden, erst wenn die klare Notwendigkeit besteht, z.b. wegen der Vererbung, sollte sie als protected deklariert werden. Hier ein Beispiel einer gültigen Methodendeklaration in einer Klasse: Class Docblock Here class Foo

9 Method Docblock Here public function samplemethod( $a ) // Entire content of function must be indented two spaces Method Docblock Here protected function _anothermethod() //... Method Docblock Here private function _anothernewmethod(array $b) //... HINWEIS: Die Übergabe von Parametern, die ein Objekt referenzieren, ist nur durch die Definition der Referenzierung in der Funktions- oder Methodendeklaration beim Parameter selbst erlaubt: function samplemethod(&$a) //... Bei Funktionen mit Objekten oder Arrays als Parameter werden diese mit Typehinting deklariert: class Foo function objectmethod( Bar $sampleobject ) //... function arraymethod( Array $samplearray ) //... Call-time pass by-reference ist nicht erlaubt.

10 Der Rückgabewert einer Funktion oder Methode darf nicht in Klammern gesetzt werden. Dies verschlechtert die Lesbarkeit und kann zudem zu Fehlern führen, wenn eine Funktion oder Methode später eine Referenz zurückgibt. function foo() return($this->bar); // falsch return $this->bar; // richtig Anwendung von Funktionen und Methoden Funktionsparameter werden immer mit einem Leerzeichen nach dem Komma aufgerufen. Hier ein gültiges Beispiel eines Aufrufs einer Funktion mit drei Parametern: threearguments(1, 2, 3); Call-time pass by-reference ist nicht erlaubt. Für Funktionen, die Arrays als Parameter erlauben, kann der Array wie folgt auf mehrere Zeilen verteilt werden, damit die Lesbarkeit erhöht wird. threearguments(array(1, 2, 3), 2, 3); threearguments(array(1, 2, 3, 'Buxa', 'Projects', $a, $b, $c, 56.44, $d, 500), 2, 3); Kontrollstrukturen Klammern Blöcke von Kontrollstrukturen (Bedingungen, Schleifen) werden immer in geschweifte Klammern gesetzt, auch wenn der auszuführende Code nur eine Zeile umfasst. Sowohl die öffnende als auch die schließende Klammer stehen in einer separaten Zeile. Beispiele falsch if ( $i == 1 ) echo $somevariable; for ( $i = 0; $i < 10; $i++ ) echo pow( $i, 2 ); if / else / else if richtig if ( $i == 1 ) echo $somevariable; for ( $i = 0; $i < 10; $i++ ) echo pow( $i, 2 ); Basis-Kontrollstukturen mit dem if, else und else if Konstrukt müssen vor und nach den Klammern mit der Bedingung je ein Leerzeichen haben. Auch die Operatoren müssen mit Leerzeichen am Anfang und am Ende leserlich gemacht werden. Um Blöcke zu gruppieren, müssen Klammern eingesetzt werden. Bei längeren Bedingungen werden alle Bedingungen untereinander dargestellt, um die Lesbarkeit zu erhöhen. Die öffnende geschweifte Klammer wird unterhalb der Bedingung geschrieben. Die abschliessende geschweifte Klammer erhält immer eine separate Zeile. Jeder Code innerhalb der geschweiften Klammern muss zwei Leerzeichen eingerückt werden.

11 if ( $a!= 2 ) $a = 2; if-bedingungen, die else if oder else enthalten, müssen folgendermassen formatiert werden: if ( $a!= 2 ) $a = 2; else $a = 7; if ( $a!= 2 ) $a = 2; else if ( $a == 3 ) $a = 4; else $a = 7; HINWEIS: Das zusammen geschriebene elseif Konstrukt ist nicht erlaubt! HINWEIS: Der dreifach konditionale Operator (<condition>?<true>:<false>) sollte nach Möglichkeit nicht verwendet werden.. switch Kontrollstrukturen mit dem switch-konstrukt muss wie if, else und else if vor und nach den Klammern des Switch-Elements ein Leerzeichen enthalten. Code innerhalb der Switchanweisung muss zwei Leerzeichen eingerückt werden. Unter dem "case" Element müssen bis zum nächsten case-element jeder Code zwei Leerzeichen eingerückt werden. switch ($samplenumber) case 1: //... break; case 2: //... break; default: //... break; Das default-konstrukt sollte bei einer switch-bedingung nie weggelassen werden.

12 HINWEIS: Manchmal kann es nötig sein, ein case-element zu schreiben, auf das kein break oder return folgt. In diesem Falle muss folgender Kommentar anstelle des break eingefügt werden: switch ( $value ) case 'xyz': // break intentionally omitted case 'abc': echo $value; break; default: break; while / for / foreach Die Schleifen while, for und foreach werden gleich wie if, else und else if formatiert. for ( $i = 0; $i < 10; $i++ ) echo sprintf( "Hello %d\n ", $i ); foreach ( $samplearray as $key => $value ) echo sprintf( "%s is %s\n ", $key, $value ); while ( $row = mysql_fetch_assoc( $result ) ) echo sprintf( "%s\n ", $row['id'] );

13 Inline-Dokumentation Formatierung Alle Dokumentationsblöcke (docblocks) müssen mit den Konventionen von phpdocumentor übereinstimmen. Mehr Infos dazu unter Jede Quellcode-Datei für ein Framework muss zuoberst einen "file-level" docblock enthalten. Darauf folgt ein "class-level" docblock oberhalb der Klassendeklaration. Die Raute ("#") darf nicht als Kommentarvariante verwendet werden. Dateien Jede PHP-Datei muss im Minimum einen docblock mit den folgenden phpdocumentor Tags enthalten: Short description for file Long description for file (if any)... LICENSE: Some license intermatix Licence File available since Release 1.0 Klassen Jede Klasse muss im Minimum einen docblock mit den folgenden phpdocumentor Tags zuoberst enthalten: Short description for class Long description for class (if intermatix Licence Class available since Release 1.0 Funktionen Jede Funktion oder Klassenmethoden muss im Minimum einen docblock mit den folgenden Tags enthalten: Beschreibung, Parameter, Rückgabewerte. Der Tag ist nicht nötig, weil dieser schon anhand des "public", "private", oder "protected" Konstrukts ermittelt werden kann. Dies gilt auch für den Tag. Short description for the function

14 Long description for the function (if array $array Description of string $string Description of boolean Wenn eine Funktion oder Methode eine Exception ausgibt, ist der Tag Exception_Class_Name Description Variablen Jede Klassenvariable muss im Minimum einen docblock mit einer Beschreibung und einem Typentag enthalten: Description for the array Musterklasse <?php Imx_Lifeform_Human Creation and manipulation of human beeings. LICENSE: File available since Release 1.0 // Imx_Lifeform require_once 'Imx/Lifeform.php'; Creation and manipulation of human beeings. This fascinating class provides you to create and manipulate human beeings. This class also inherits properties and methods for age, size or weight from the parent class Imx_Lifeform. Most additional properties are declared as protected, because there could be some subclasses. Note that this is just a sample class and is not created for real Release:

15 @since Class available since Release 1.0 class Imx_Lifeform_Human extends Imx_Lifeform Valid colors for the array static private $valideyecolors = array( 'blue', 'brown', 'gray', 'green' ); Valid colors for the array static private $validhaircolors = array( 'black', 'blond', 'brown', 'gray', 'red', 'white' ); Valid colors for the array static private $validskincolors = array( 'black', 'brown', 'red', 'white', 'yellow' ); Color of the string protected $eyecolor = null; Color of the string protected $haircolor = null; Color of the string protected $skincolor = null; Constructor

16 @return void public function construct() Sets the color of the string $eyecolor Color of the boolean public function seteyecolor( $eyecolor ) if ( in_array( strtolower( $eyecolor ), self::$valideyecolors ) ) $this->_eyecolor = strtolower( $eyecolor ); return true; else return false; Sets the color of the string $haircolor Color of the boolean public function sethaircolor( $haircolor ) if ( in_array( strtolower( $haircolor ), self::$validhaircolors ) ) $this->_haircolor = strtolower( $haircolor ); return true; else return false; Sets the color of the string $skincolor Color of the boolean public function setskincolor($skincolor) if ( in_array( strtolower( $skincolor ), self::$validskincolors ) )

17 $this->_skincolor = strtolower( $skincolor ); return true; else return false; Returns the color of the string public function geteyecolor() return $this->_eyecolor; Returns the color of the string public function gethaircolor() return $this->_haircolor; Returns the color of the string public function getskincolor() return $this->_skincolor;

Ein Einzug sollte aus 4 Leerzeichen bestehen. Tabulatoren sind nicht erlaubt.

Ein Einzug sollte aus 4 Leerzeichen bestehen. Tabulatoren sind nicht erlaubt. B.1. Übersicht B.1.1. Geltungsbereich Dieses Dokument bietet Richtlinien für die Formatierung von Code und Dokumentation für Individuen und Teams die im Zend Framework mitarbeiten. Viele Entwickler die

Mehr

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. Allgemein Ein Einzug sollte aus 4 Leerzeichen bestehen.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2012/2013, SS 2013 Programmieren I + II Regeln der Code-Formatierung Die hier vorgestellten

Mehr

Tel PHP-Coding-Guidelines PHP Coding-Guidelines 1. Ausgabe Oktober 2012

Tel PHP-Coding-Guidelines PHP Coding-Guidelines 1. Ausgabe Oktober 2012 PHP Coding-Guidelines 1. Ausgabe Oktober 2012 Der Guideline beschreibt den verwendeten Coding-Stil von PHP. Dieser Stil wird umgesetzt, falls in einem Projekt vor Ort kein anderen Vereinbarungen über vorhandene

Mehr

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. Inhalts-Verzeichnis 1. Allgemeine Richtlinien...1 1.1 Anzahl

Mehr

Programmierstil in Java Coding-Standards und Dokumentation

Programmierstil in Java Coding-Standards und Dokumentation Coding-Standards und Dokumentation SEP Felix Zenz 23.10.2017 Wissenschaftliche Betreuer: Prof. Dr. Peer Kröger, Janina Sontheim, Daniel Kaltenthaler, Johannes Lohrer Verantwortlicher Professor: Prof. Dr.

Mehr

Coding Standards Brandbox

Coding Standards Brandbox Coding Standards Brandbox Einrückungen und Zeilenlänge...2 Kontrollstrukturen...2 Klassen...3 Funktionen...3 Deklaration... 3 Aufruf... 4 Kommentare...4 PHP-Code-Tags...4 Konventionen, Style, Sprache...5

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Coding-Standards und Dokumentation

Coding-Standards und Dokumentation Coding-Standards und Dokumentation SEP 2018 Tobias Lingelmann 2018-04-17 DBS Wissenschaftliche Betreuer: Daniel Kaltenthaler, Johannes Lohrer Verantwortlicher Professor: Prof. Dr. Peer Kröger Übersicht

Mehr

Sun s Java Code Conventions

Sun s Java Code Conventions Tutorium Praktische Informatik 2 Sun s Java Code Conventions Folie 1 / 32 Sun s Java Code Conventions 18.04.2002 Quelle: http://java.sun.com/docs/codeconv/ Convention is the ruler of all. (Pindar) Tutorium

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

Programmierkonventionen - 1 -

Programmierkonventionen - 1 - Die wichtigsten Bestandteile der Programmierkonventionen für Java werden hier erläutert. Dies sind: Schreibweise von Bezeichnern Einrückkonventionen Kommentare Programmierkonventionen - 1 - Einleitung

Mehr

Programmierpraktikum Java Entdecken Merkblatt 2

Programmierpraktikum Java Entdecken Merkblatt 2 Technische Universität München Fakultät für Informatik Prof. Dr. Helmut Seidl Michael Petter Melanie Dietz Raphael Geissler Programmierpraktikum Java Entdecken Merkblatt 2 SS 2005 1 Einleitung 1.1 Was

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Programmierrichtlinien für C/C++

Programmierrichtlinien für C/C++ Fachhochschule Vorarlberg Programmierrichtlinien für C/C++ Autor: Verantwortlicher: Status: Wolfgang Auer Wolfgang Auer Draft Review Accepted Version: 1.1, 08.10.2003 1.1, 08.10.2003 Seite 1 / 9 Versionshistorie

Mehr

Schöner Programmieren

Schöner Programmieren Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 20.11.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07

Mehr

Schöner Programmieren

Schöner Programmieren Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 30.05.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 30.05.07

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

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

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean Java Zusammenfassung Martin Zettwitz, Otto-von-Guericke Universität Magdeburg Standardprogramm - Einstieg/Initialisierung in der main() Funktion - Hier(Basic/Start) die Variablen deklarieren, Methoden

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Programmier-Richtlinien

Programmier-Richtlinien Programmier-Richtlinien vgl. auch http://java.sun.com/docs/codeconv/ Bemerkung o Programme werden häufiger gelesen als geschrieben o Programmtexte müssen gut lesbar und nachvollziehbar sein Feststellung

Mehr

Java-Applikationen (Java-Programme)

Java-Applikationen (Java-Programme) Java-Applikationen (Java-Programme) Eine erste Applikation: 1 2 3 4 5 6 7 8 9 10 // Quelltext HalloWelt.java // Programm gibt den Text Hallo Welt aus public class HalloWelt public static void main(string[]

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 29 Einstieg in die Informatik mit Java Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 29 1 Überblick 2 Anordnung von Anweisungen 3 Kommentierung

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

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

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

swp12-6 Aufgabenblatt Qualita tssicherungskonzept

swp12-6 Aufgabenblatt Qualita tssicherungskonzept 1 Dokumentationskonzept Interne Dokumentation 2 Dokumentation der Funktionen 2 Programmierstandards 2 Externe Dokumentation Dokumente 3 Was muss in jedem Dokument vorhanden sein? 3 2 Testkonzept Einleitung

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

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Objektorientiertes Programmieren (Java)

Objektorientiertes Programmieren (Java) Grundlagen Objektorientiertes Programmieren (Java) Java folgt gewissen Rechtschreibregeln die Syntax. Diese besagt, dass hinter jeden Befehl ein Semikolon( ; ) stehen muss, damit der Computer weiß, dass

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 11 1 Aufgabe: Codeverständnis 1.1 Aufgabenstellung Notieren Sie, was der folgende Code ausgeben würde, wenn er so in einer

Mehr

Einfache Datentypen in JAVA

Einfache Datentypen in JAVA 5.4.1. Einfache Datentypen in JAVA Ganzzahlige Datentypen byte 8 bits -128

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Java Lexikalische Struktur

Java Lexikalische Struktur Informatik 1 für Nebenfachstudierende Grundmodul Java Lexikalische Struktur Kai-Steffen Hielscher Folienversion: 19. Dezember 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

Wo sind wir? Übersicht lexikale Struktur von Java Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

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

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 03 06.11.2013 Inhalt Methoden in Java Gültigkeitsbereiche EBNF Einführung in die Programmierung für NF Übung 03 2 Methoden in Java In Methoden werden Ausdrücke

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden

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

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

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

Marcus Deininger / Thomas Kessel. Brückenkurs Java. Lösungen. UVK Verlagsgesellschaft mbh Konstanz mit UVK/Lucius München

Marcus Deininger / Thomas Kessel. Brückenkurs Java. Lösungen. UVK Verlagsgesellschaft mbh Konstanz mit UVK/Lucius München Marcus Deininger / Thomas Kessel Brückenkurs Java Lösungen UVK Verlagsgesellschaft mbh Konstanz mit UVK/Lucius München Brückenkurs Java: Lösungen 2 1 Einführung 1. Welche Versionen von Java gibt es? Java

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

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 Anweisungen mit Variablen Wiederholung Deklaration

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

PHP Programmierung. Seminarunterlage. Version 1.07 vom

PHP Programmierung. Seminarunterlage. Version 1.07 vom Seminarunterlage Version: 1.07 Version 1.07 vom 19. Dezember 2018 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr

Fragenkatalog ESOP WS 16/17

Fragenkatalog ESOP WS 16/17 Fragenkatalog ESOP WS 16/17 1. Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos

Mehr

Übungen zu Programmieren - Code-Formatierung -

Übungen zu Programmieren - Code-Formatierung - - Code-Formatierung - Tutoren: Sven Groppe Florian Frischat David Gregorczyk Dana Linnepe Sven-Erik Pfeiffer Markus Weigel Simon Werner groppe@ifis.uni-luebeck.de prog2@ifis.uni-luebeck.de prog6@ifis.uni-luebeck.de

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Web-basierte Anwendungssysteme PHP-Einführung

Web-basierte Anwendungssysteme PHP-Einführung Web-basierte Anwendungssysteme PHP-Einführung Prof. Dr. Armin Lehmann (lehmann@e-technik.org) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen durch Praxis stärkt Seite 1 Prof. Dr. Armin Lehmann

Mehr

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Lernteam OOP3 SW Programmieren 1 - H1103 Felix Rohrer

Lernteam OOP3 SW Programmieren 1 - H1103 Felix Rohrer Aufgabe 1: Datentypen und Typecasting Geben Sie das Ergebnis für folgende mathematischen Ausdrücke im entsprechenden Datentyp in Java an. Beachten Sie hierzu die Folie 14 der Präsentation. Hinweis: Bei

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Ersetzbarkeit und Verhalten

Ersetzbarkeit und Verhalten Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

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 } } Anweisungen mit Variablen Wiederholung Deklaration

Mehr

9. Programmierrichtlinien. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2014/15

9. Programmierrichtlinien. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2014/15 9. Programmierrichtlinien Version: 16. Nov. 2015 2 Programmierrichtlinien Code-Konventionen, Style Guides Anforderungen an die äußere Form von Programmen zur Erhöhung ihrer Lesbarkeit Nicht Teil der Sprachdefinition

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

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

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/

Mehr

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung

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

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

Crashkurs C++ Wiederholung

Crashkurs C++ Wiederholung Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i

Mehr

Object Relational Mapping Layer

Object Relational Mapping Layer Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS PHP (propel) 1/18 Propel - Persistance Layer OR-Mapper für PHP Portierung

Mehr

print $key.'-'.$value.'<br>';

print $key.'-'.$value.'<br>'; te, somit nur innerhalb der Klasse verfügbar. Erzeugen Sie anschließend eine Variable der Klasse meine_getraenkeliste, so enthält diese wie bereits erwartet lediglich die drei Eigenschaften, die von außen

Mehr

Prozeduren vs. Funktionen

Prozeduren vs. Funktionen Prozeduren vs. Funktionen Mit der Formalisierung wird auch der Unterschied zwischen Prozeduren und Funktionen noch einmal klar. Der Aufruf beider Varianten bewirkt zunächst das Gleiche: die Eingabevariablen

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

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 von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

Übungsblatt 2. Java Vorkurs (WS 2017)

Übungsblatt 2. Java Vorkurs (WS 2017) Übungsblatt 2 Java Vorkurs (WS 2017) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen . Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit

Mehr

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

Mehr