Einführung in die Programmierung Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich
|
|
- Elly Otto
- vor 5 Jahren
- Abrufe
Transkript
1 Einführung in die Programmierung 11.0 Systematisches Programmieren Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. 1
2 Übersicht 11.1 Einführung 11.2 Aussagen 11.3 Preconditions und Postconditions für Statements 11.4 Preconditions und Postconditions für Loops 2
3 Methoden von List Was fehlt in dieser Zusammenfassung? add(value) add(index, value) clear() indexof(value) get(index) remove(index) set(index, value) size() tostring() appends value at end of list inserts given value at given index, shifting subsequent values right removes all elements of the list returns first index where given value is found in list (-1 if not found) returns the value at given index removes/returns value at given index, shifting subsequent values left replaces value at given index with given value returns the number of elements in list returns a string representation of the list such as "[3, 42, -7, 15]" 3
4 a) Einige Methoden fehlen. b) Information über Laufzeitkosten c) Information über Annahmen und Anforderungen (wann kann eine Methode verwendet werden, was sindlegale Parameterwerte) 4
5 Verantwortlichkeiten Sehen wir uns nochmal die Methode gcd an den grössten gemeinsamen Teiler (ggt) zu finden /** * Calculates the greatest common divisor * using Euclid s algorithm. * * Returns the greatest common divisor of x and y */ int gcd(int x, int y) { int r = x % y; while (r!= 0) { x = y; y = r; r = x % y; return y; 5
6 Rationale Zahlen q Q : a/b Bruch: Zähler / Nenner (beide N, d.h. natürliche Zahlen, b 0) quotient = numerator / denominator geschrieben oft (a,b) oder (p,q) Zwei rationale Zahlen (p 1,q 1 ) und (p 2, q 2 ) sind äquivalent: (p 1, q 1 ) ~ (p 2, q 2 ) wenn p 1 q 2 = p 2 q 1 Kürzen erlaubt eindeutige Darstellung Wollen für zwei rationale Zahlen feststellen ob sie äquivalent sind. 6
7 Rationale Zahlen Warum ein Interesse an diesen Zahlen? Ganze Zahlen werden dargestellt als Summe von 2 k (0 <= k<= m) m r = 2 k k = 0 Dezimalzahlen (zw. 0 1) werden auch als Summen dargestellt m s = 2 -k 7 k = 1
8 Darstellung von Zahlen Leider ist die Darstellung von Dezimalzahlen nicht exakt aber = 1 1.0/ / /6.0 = The Art and Science of ERIC S. ROBERTS Java An Introduction to Computer Science Nach: Eric Roberts, The Art and Science of Java Pearson Education Limited; ISBN-10:
9 Klasse Rational /** * The Rational class is used to represent rational numbers, which * are defined to be the quotient of two integers. */ public class Rational { /** Creates a new Rational initialized to zero. */ public Rational() { this(0); /** * Creates a new Rational from the integer argument. n The initial value */ public Rational(int n) { this(n, 1); Overloading bei der Definition der Konstruktoren this( ) : Aufruf eines anderen Konstruktors
10 Klasse Rational /** * Creates a new Rational with the value x / y. x The numerator of the rational number y The denominator of the rational number */ public Rational(int x, int y) { int g = gcd(math.abs(x), Math.abs(y)); num = x / g; den = Math.abs(y) / g; if (y < 0) num = -num; Hauptkonstruktor Benutzt gcd() um eindeutige Darstellung zu garantieren /** * Adds the rational number r to this one and returns the sum. r The rational number to be added The sum of the current number and r */ public Rational add(rational r) { return new Rational(this.num * r.den + r.num * this.den, this.den * r.den); gcd() erstellt neues Exemplar
11 Klasse Rational /** * Creates a string representation of this rational number. The string representation of this rational number */ public String tostring() { if (den == 1) { return "" + num; else { return num + "/" + den; /* Private instance variables */ private int num; /* The numerator of this Rational */ private int den; /* The denominator of this Rational */ Ganze Zahlen nicht als Bruch ausgeben Attribute sind private
12 int gcd(int x, int y) { int r = x % y; while (r!= 0) { x = y; y = r; r = x % y; return y; Was für Annahmen macht diese Methode? Liefert sie immer das gewünschte Ergebnis? Was für Fälle sollten wir untersuchen? Schreiben Sie die Fälle auf, die Sie für "interessant" halten Simulieren Sie die Ausführung 21
13 Verantwortlichkeiten Diese Implementation des ggt erwartet x 0 y > 0 Wer ist dafür "verantwortlich"? Klient? Die Methode? 22
14 Klient /** * Creates a new Rational with the value x / y. */ public Rational(int x, int y) { int g = gcd(math.abs(x), Math.abs(y)); num = x / g; den = Math.abs(y) / g; if (y < 0) num = -num; 23
15 Verantwortlichkeiten (Teil)Lösung hier gcd(math.abs(x), Math.abs(y)); Kommentar wäre nicht verfehlt gcd kann davon ausgehen dass x 0 "x 0" ist eine Aussage die hier immer gilt Nicht gelöst ist dass y 0 sein muss Beispiel soll nicht überladen werden 24
16 11.2 Aussagen 25
17 (Logische) Aussagen Aussage ("assertion"): Eine Behauptung die entweder wahr oderfalsch ist. Wir fragen dann oft "Ist die Aussage wahr"? Beispiele: Zürich ist ein Kanton der Schweiz x 0 (hängt von x ab) Stockholm ist die Hauptstadt Norwegens 11 ist eine Primzahl 120 ist kleiner als 11 x geteilt durch 2 ergibt 8 (hängt von x ab) 26
18 (Logische) Aussagen Nicht alle Aussagen sind wahr Für einige Aussagen können wir vielleicht nicht sofort entscheiden ob sie wahr oder falsch sind Wichtig ist dass es Sinn macht zu fragen, ob die Aussage wahr oder falsch ist Logisch heisst hier: im Sinne der klassischen Logik 27
19 29
20 Aussagen und Programme Wir können Aussagen über das Programm machen und fragen ob sie an bestimmten Stellen wahr sind. Gültige Antworten sind IMMER, NIE, oder MANCHMAL. System.out.print("Type a nonnegative number: "); double number = console.nextdouble(); // Point A: is number < 0.0 here? MANCHMAL while (number < 0.0) { // Point B: is number < 0.0 here? IMMER System.out.print("Negative; try again: "); number = console.nextdouble(); // Point C: is number < 0.0 here? MANCHMAL // Point D: is number < 0.0 here? NIE 34
21 Mit Aussagen arbeiten Direkt nachdem eine Variable initialisiert wurde, ist ihr Wert bekannt: int x = 3; // is x > 0? IMMER Über die Werte von Parametern wissen wir i.a. nichts: public static void mystery(int a, int b) { // is a == 10? MANCHMAL Innerhalb eines if, while, usw. wissen wir evtl. etwas: public static void mystery(int a, int b) { if (a < 0) { // is a == 10? NIE... 35
22 Aussagen und Schleifen Zu Beginn des Rumpfes einer Schleife muss der Test true, ergeben haben: while (y < 10) { // is y < 10? IMMER... Direkt nach einer Schleife muss der Test false sein: while (y < 10) {... // is y < 10? NIE 36
23 Aussagen und Schleifen Im Rumpf einer Schleife kann der Test false ergeben: while (y < 10) { y++; // is y < 10? MANCHMAL 37
24 "Manchmal" Verschiedene Aktivitäten können dazu führen, dass der Wert einervariable unbekanntist (diese führendannzu "MANCHMAL" Antworten): Eingabe von Scanner lesen Lesen einer Zahl von einem Random Objekt Übergabe eines Parameters Wenn für eine Stelle im Programm sowohl die Antwort ja" also auch "nein" möglich ist, dann ist die richtige Antwort "manchmal". Wenn man sich nicht sicher ist dann ist "Manchmal" eine gute Vermutung 38
25 Beispiel 1 public static void mystery(int x, int y) { int z = 0; // Point A while (x >= y) { // Point B x = x - y; z++; if (x!= y) { // Point C z = z * 2; // Point D // Point E System.out.println(z); Welche Aussagen sind an diesen Stellen wahr? Möglich sind IMMER, NIE oder MANCHMAL. Point A Point B Point C Point D Point E x < y x == y z == 0 MANCHMAL MANCHMAL IMMER NIE MANCHMAL MANCHMAL MANCHMAL NIE NIE MANCHMAL MANCHMAL NIE IMMER NIE MANCHMAL 39
26 40
27 Beispiel 2 public static int mystery(scanner console) { int prev = 0; int count = 0; int next = console.nextint(); // Point A while (next!= 0) { // Point B if (next == prev) { // Point C count++; prev = next; next = console.nextint(); // Point D // Point E return count; Welche Aussagen sind an diesen Stellen wahr? Möglich sind IMMER, NIE oder MANCHMAL. Point A Point B Point C Point D Point E next == 0 prev == 0 next == prev 43
28 Beispiel 2 public static int mystery(scanner console) { int prev = 0; int count = 0; int next = console.nextint(); // Point A while (next!= 0) { // Point B if (next == prev) { // Point C count++; prev = next; next = console.nextint(); // Point D // Point E return count; Welche Aussagen sind an diesen Stellen wahr? Möglich sind IMMER, NIE oder MANCHMAL. Point A Point B Point C Point D Point E next == 0 prev == 0 next == prev MANCHMAL IMMER MANCHMAL NIE MANCHMAL MANCHMAL NIE NIE IMMER MANCHMAL NIE MANCHMAL IMMER MANCHMAL MANCHMAL 44
29 // Assumes y >= 0, and returns x^y public static int pow(int x, int y) { int prod = 1; // Point A while (y > 0) { // Point B if (y % 2 == 0) { // Point C x = x * x; y = y / 2; // Point D else { // Point E prod = prod * x; y--; // Point F // Point G return prod; Beispiel 3 Welche Aussagen sind an diesen Stellen wahr? Möglich sind IMMER, NIE oder MANCHMAL. Point A Point B Point C Point D Point E Point F Point G y > 0 y % 2 == 0 45
30 // Assumes y >= 0, and returns x^y public static int pow(int x, int y) { int prod = 1; // Point A while (y > 0) { // Point B if (y % 2 == 0) { // Point C x = x * x; y = y / 2; // Point D else { // Point E prod = prod * x; y--; // Point F // Point G return prod; Beispiel 3 Welche Aussagen sind an diesen Stellen wahr? Möglich sind IMMER, NIE oder MANCHMAL. y > 0 y % 2 == 0 Point A MANCHMAL MANCHMAL Point B IMMER MANCHMAL Point C IMMER IMMER Point D IMMER MANCHMAL Point E IMMER NIE Point F MANCHMAL IMMER Point G NIE IMMER 46
31 Übersicht 11.1 Einführung 11.2 Aussagen 11.3 Aussagen für Statements 11.4 Preconditions and Postconditions für Loops 47
32 Ziel: Aussagen über ein Programm herleiten Welche Aussagen gelten (an einer Stelle) im Programm? Ggf. was für Annahmen sind nötig, dass die Aussage wahr ist Warum? Finden "interessanter" Fälle für Test Erstellen der Bedingungen, die Klienten erfüllen müssen Behandeln von Sonderfällen in einer Methode Wenn die Liste am Anfang leer ist, dann muss das 1. Element auf diese Weise eingefügt werden. 48
33 11.3 Preconditions und Postconditions für Statements 49
34 Hoare Logik Tony Hoare entwickelte in den (19)70gern einen Ansatz wie man über Programme logische Schlüsse ziehen kann. Am Anfang betrachten wir nur Zuweisungen, If-Statements, Schleifen und Variable Fürs erste keine Objekte und Methoden Schritt 1: Vorwärts und rückwärts schliessen Schritt 2: Genauere Definition von Aussagen, Vor- und Nachbedingungen Erstmal ohne Schleifen 50
35 Warum Ziel ist es, dass Sie für ein einfaches Programm genau argumentieren können. In der täglichen Programmentwicklung genügt es oft, weniger detailliert zu argumentieren als es die Hoare Logik erforderlich macht. Für einfache Programme ist dieser Ansatz zu aufwändig. Für realistische Progamme wird der Ansatz schnell kompliziert. Wir haben immer noch kein gutes Modell für Objekte und Parallelismus. Aliasing ist eine Herausforderung. Aber manchmal hilft der Ansatz (siehe Fencepost Probleme) 51
36 Aber eine gute Schulung, systematisch zu programmieren Wir können über Zustände (der Ausführung) eines Programms (und später auch eines Objekts) schlussfolgern Wir können den Effekt eines Programms beschreiben Wir können definieren was es heisst dass eine Aussage weaker (schwächer) oder stronger (stärker) ist. Wichtig für die Definition von Schnittstellen (zwischen Modulen) wenn wir entscheiden müssen welche Bedingungen erfüllt sein müssen (um eine Methode aufzurufen). 52
37 Beispiel Wie finden wir Aussagen für Stellen im Programm Uns interessieren nicht irgendwelche Aussagen sondern solche, die das Verhalten der Ausführung beschreiben 53
38 55
39 Beispiel Vorwärts schliessen Vom Zustand vor der Ausführung eines Programm(segments) Nehmen wir an wir wissen (oder vermuten) w > 0 // w > 0 x = 17; // w > 0 x == 17 y = 42; // w > 0 x == 17 y == 42 z = w + x + y; // w > 0 x == 17 y == 42 z > 59 Jetzt wissen wir einiges mehr über das Programm, u.a. z > 59 56
40 Beispiel Rückwärts schliessen: Nehmen wir an wir wollen dass z nach Ausführung negativ ist // x = 17; // y = 42; // z = w + x + y; // z < 0 57
41 Beispiel Rückwärts schliessen: Nehmen wir an wir wollen dass z nach Ausführung negativ ist // w < 0 x = 17; // w + x + 42 < 0 y = 42; // w + x + y < 0 z = w + x + y; // z < 0 Dann müssen wir wissen (oder vermuten) dass vor der Ausführung gilt: w < -59 Notwendig und hinreichend 58
42 Vorwärts vs Rückwärts, Teil 1 Vorwärts schliessen: Bestimmt was sich aus den ursprünglichen Annahmen herleiten lässt. Sehr praktisch wenn eine Invariante gelten soll Rückwärts schliessen: Bestimmt hinreichende Bedingungen die ein gegebenes Ergebnis garantieren Wenn das Ergebniss erwünscht ist, dann folgt aus den Bedingungen die Korrektheit. Ist das Ergebniss unerwünscht, dann reichen die Bedingungen um einen Bug zu generieren 59
43 Vorwärts vs Rückwärts, Teil 2 Vorwärts schliessen: Simuliert die Ausführung des Programms (für viele Inputs gleichzeitig ) Oft leicht zu verstehen, erscheint natürlich Aber führt dazu dass (viele) Details festgehalten werden, die letztlich irrelevant sind. 60
44 Vorwärts vs Rückwärts, Teil 3 Rückwärts schliessen: Oft von grossem praktischen Nutzen: Sie müssen verstehen (oder festhalten) was jede Anweisung zum Erreichen eines bestimmten Zustandes beiträgt. Ein Programm(segment) rückwärts zu lesen erfordert Übung aber führt zu einer neuen Sicht auf ein Programm. 61
45 Terminologie Die Annahme (Aussage), die vor der Ausführung eines Statements gilt, ist die Precondition. Die Aussage, die nach der Ausführung gilt (unter der Annahme dass die Aussage davor gültig ist), ist die Postcondition. 62
46 65
47 Andere Statements (Anweisungen) if-statement 66
48 68
49 Terminologie Die Annahme (Aussage), die vor der Ausführung eines Statements gilt, ist die Precondition. Die Aussage, die nach der Ausführung gilt (unter der Annahme dass die Aussage davor gültig ist), ist die Postcondition. 69
50 71
51 Grundidee(n) 1. Die Precondition für den then-block und den else-blocks (eines if-statements) beinhaltet das Ergebnis des Tests. 2. Die Postcondition nach dem if-statement ist die Disjunktion ( oder ) der Postconditions des then- und else-blockes. 72
52 Nehmen wir an x >= 0 Beispiel (Vorwärts) // x >= 0 z = 0; // x >= 0 z == 0 if (x!= 0) { // x >= 0 z == 0 x!= 0 (also x > 0) z = x; // z > 0 else { // x >= 0 z == 0!(x!= 0) (also x == 0) z = x + 1; // z == 1 // ( z > 0) ( z == 1) (also z > 0) 73
53 74
54 Die übliche Notation Statt die Pre/Postconditions in Kommentaren (nach //) schreiben verwenden wir { Kein Java mehr Aber diese Schreibweise hat sich eingebürgert, lange vor Java { w < -59 x = 17; { w + x < -42 Zwischen { und steht eine logische Aussage Kein Java Code 75
55 Mehr Terminologie Aussagen (Pre/Postconditions) sind logische Ausdrücke die sich auf den Zustand (der Ausführung) eines Programms beziehen. Der Zustand eines Programms ist sichtbar durch die Namen der Variablen (und jede Variable liefert ihren Wert) Die Variablennamen können in (logischen) Ausdrücken verwendet werden solange die Ausdrücke keine Nebenwirkungen ( no sideeffects ) haben 78
56 Mehr Terminologie Eine Aussage gilt für den Zustand eines Programms wenn die Auswertung der Aussage (des Ausdrucks) mit dem Zustand das Ergebnis true ergibt. Die Auswertung jedes Variable ergibt den Wert der Variable im augenblicklichen Programmzustand. Eine Aussage beschreibt eine Menge von Programmzuständen genau die, für die die Aussage gilt. 80
Einführung in die Programmierung I Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 10.0 Systematisches Programmieren Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
Mehr11.0 Systematisches Programmierung
252-0027 Einführung in die Programmierung 11.0 Systematisches Programmierung Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung I 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved.
MehrEinführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.4 Felder Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.4 Felder (Vektoren, "array"s) 2.5 Verschachtelte Schleifen 2.6 "if" Anweisungen 2.7
MehrEinführung in die Programmierung I Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 10.0 Systematisches Programmieren Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
MehrEinführung in die Programmierung I Systema=sches Programmieren
252-0027 Einführung in die Programmierung I 0.0 Systema=sches Programmieren Thomas R. Gross Department Informa=k ETH Zürich Copyright (c) Pearson 203 and Thomas Gross 206 All rights reserved. Uebersicht!
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht
MehrBeispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
MehrKontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht
Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante
MehrAufgabe 1.1. Wählen Sie jene Variablendeklarationen mit Initialisierungen aus, die in Java hinsichtlich der Typen korrekt sind:
Test 1 in Programmkonstruktion 59 / 100 Punkte 1. Multiple-Choice-Aufgaben 20 / 30 Punkte Bitte wählen Sie alle zutreffenden Antwortmöglichkeiten aus. Es können beliebig viele Antwortmöglichkeiten zutreffen,
MehrAbgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrEinführung in die Programmierung
252-0027 Einführung in die Programmierung 2.5 if -Anweisungen 2.6 Nochmals Schleifen: while Loops 2.Y Output Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.2 Typen und Variable Deklaration
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrSystem.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
MehrMethoden. (Softwareentwicklung II (IB)) Prof. Dr. Oliver Braun. Letzte Änderung: :40. Methoden 1/44
Methoden (Softwareentwicklung II (IB)) Prof. Dr. Oliver Braun Letzte Änderung: 02.03.2018 12:40 Methoden 1/44 Was Sie bereits wissen müssen: Siehe Softwareentwicklung I (IB) Methoden 2/44 Überladen Methoden
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrEinführung in die Programmierung. 5.0 Input/Output. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 5.0 Input/Output Thomas R. Gross Department Informatik ETH Zürich 1 Übersicht 5.1 Output in Fenster 5.2 Arbeiten mit Dateien 5.3 Scanner im Einsatz/Beispiele 5.4
MehrDatenkapselung: public / private
627 18. Klassen Klassen, Memberfunktionen, Konstruktoren, Stapel, verkettete Liste, dynamischer Speicher, Copy-Konstruktor, Zuweisungsoperator, Destruktor, Konzept Dynamischer Datentyp Datenkapselung:
MehrKorrektheit und Hoare-Kalkül für Imperative Programme
Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül
MehrSoftwareentwicklung II (IB) Methoden. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Softwareentwicklung II (IB) Methoden Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 05.04.2018 17:44 Inhaltsverzeichnis Was Sie bereits wissen müssen: Siehe Softwareentwicklung
MehrOrganisatorisches. 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:
MehrBeispiel: die Klasse Brüche
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -138 Beispiel: die Klasse Brüche class Fraction { int num; Int denom; // numerator // denominator Fraction (int n, int d) { num =
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrBasispruefung 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{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel
Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales
MehrOrganisatorisches. 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
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben
PK-Einstufungstest 34 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 4 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrErsetzbarkeit 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
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrEinführung in die Programmierung
252-0027 Einführung in die Programmierung 2.3.2 Verschachtelte Schleifen 2.4 Methoden mit Parametern 2.5 if -Anweisungen Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.2 Typen und Variable
Mehr2.2 Spezifikation abstrakter Datentypen. 2.3 Implementierung und Anwendung von ADT. 2.4 Datenabstraktion und Objektorientierung
Inhaltsverzeichnis (update) 2 Datenabstraktion 2.1 Begriffe 2.2 Spezifikation abstrakter Datentypen 2.2.1 Algebraische Spezifikation 2.2.2 Modellierende Spezifikation 2.3 Implementierung und Anwendung
MehrÜbungsstunde: Informatik 1 D-MAVT
Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 21.03.2018 1 Ablauf Quiz und Recap Floating Point
MehrVariablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15
MehrEinführung in die Programmierung I. 9.0 Generische Programmierung. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 9.0 Generische Programmierung Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
MehrJava Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Werner Gaulke.
Java Übung Übung 5 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 9. Mai 2006 (UniDUE) 9. Mai 2006 1 / 20 Beispiel Anforderungen: Klasse Mensch mit Attributen: Name, Alter, Laune, Geschlecht.
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.
PK-Einstufungstest 59 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 14 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man
MehrKlassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt
Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften
Mehr! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
MehrEinführung in die Programmierung
Einführung in die Programmierung Prüfung HS16 Eprog HS 16 21.12.2017 1 Aufgabe 1 Theorie Nachfolgend sind die Operatoren in absteigender Reihenfolge ihrer Präzedenz aufgelistet: Treten mehrere Operatoren
MehrIdeen und Konzepte der Informatik
Ideen und Konzepte der Informatik Programme und Algorithmen Antonios Antoniadis 23. Oktober 2017 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert
Mehrn 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays)
n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation n Spezifikation: Angabe, was ein
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrProbeklausur: 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,
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man umgangssprachlich,
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
Mehr16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen
491 16. Structs und Klassen I Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen Rechnen mit rationalen Zahlen 492 Rationale Zahlen (Q) sind von der Form n d mit n
Mehr1 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
MehrOOP. Tagesprogramm. Zusicherungen Zusicherungen und Ersetzbarkeit
1 2016-11-09 Tagesprogramm Zusicherungen Zusicherungen und Ersetzbarkeit 2 Ersetzbarkeit und Verhalten U ist Untertyp von T wenn Instanz von U überall verwendbar wo Instanz von T erwartet Struktur der
MehrEinführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 6.0 Objekte Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas R Gross 2016, 2017 All rights reserved. Uebersicht 6.3 Parameter
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
MehrD-BAUG Informatik I. Exercise session: week 1 HS 2018
1 D-BAUG Informatik I Exercise session: week 1 HS 2018 Java Tutorials 2 Questions? expert.ethz.ch 3 Common questions and issues. expert.ethz.ch 4 Need help with expert? Mixed expressions Type Conversions
MehrÜbersetzen des Quelltexts in ausführbaren Maschinen-Code Translation of source code into executable machine code
Informatik II D-BAUG Self-Assessment, 2. März 2017 Lösung Name, Vorname:............................................................. Legi-Nummer:.............................................................
MehrInterface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
MehrKlausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.
Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll
MehrEinführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung
Mehr17. Klassen. Datenkapselung, Klassen, Memberfunktionen, Konstruktoren
556 17. Klassen Datenkapselung, Klassen, Memberfunktionen, Konstruktoren Ein neuer Typ mit Funktionalität... 557 struct rational { int n; int d; // INV: d!= 0 // POST: return value is the sum of a and
MehrAlgorithmen und Datenstrukturen Musterlösung 5
Algorithmen und Datenstrukturen Musterlösung 5 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
MehrVor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel
Wer ist denn das? Vor- und Nachbedingungen in imperativen Programmen OOPM, Ralf Lämmel Programmspezifikation mit Vor- und Nachbedingungen (C) 2007-2018, Ralf Lämmel, Universität Koblenz-Landau 2 3 Gesprächsprotokoll
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
MehrInformatik II Übung 3. Pascal Schärli
Informatik II Übung 3 pascscha@student.ethz.ch Warm up Ist das ein Baum? Left child: Right child: Parent: [A B C _ E _ G H I _] 0 2 3 4 5 6 7 8 9 1 2*i + 1 2*i + 2 (i-1)/2 2 Überblick Serie 3 Aufgabe 1
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrEinführung in die Programmierung Generische Programmierung. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 10.0 Generische Programmierung Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
MehrImplementieren 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
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrVisuelle Kryptographie. Anwendung von Zufallszahlen
Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen
Mehr1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.
Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten
MehrObjektorientierte Programmierung und Modellierung
Objektorientierte Programmierung und Modellierung Einführung, Teil 2 24.10.17 - WS17/18 Hakan Aksu 1 Raumänderung beachten Dienstag 14:15-15:45 Uhr in M001 (anstatt K101) 2 Ausfalltermine 31.10 Vorlesung
MehrInformatik II - Übung 03
Informatik II - Übung 03 Katja Wolff katja.wolff@inf.ethz.ch 15.03.2014 Besprechung Übungsblatt 2 Informatik II - Übung 03 15.03.2017 2 U2.A1 S Klammerdarstellung und eingerückter Form R P V S(R(H(K)),P(A(N,O),Q,T),V(J,F(G)))
Mehr1 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
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
MehrSoftware Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
Mehr1 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
MehrErste 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/
MehrEinführung in die Programmierung
252-0027 Einführung in die Programmierung 2.3.2 Verschachtelte Schleifen Thomas R. Gross Department Informatik ETH Zürich 2.3.2 Verschachtelte for Schleifen for Schleife for (initialization; test; update)
MehrZusicherungen A01 OOP. Zusicherungen
2013-10-23 Zusicherungen 1 185.A01 OOP Zusicherungen 2013-10-23 Zusicherungen 2 OOP Ersetzbarkeit und Verhalten U ist Untertyp von T wenn eine Instanz von U überall verwendbar ist wo eine Instanz von T
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn 26. Oktober 2015 Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
Mehr12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,
MehrProzeduren 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
MehrProbeklausur zur Vorlesung
Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt
MehrAutotest. Automatische Testgenerierung mit Design by Contract. von Simon Greiner am 12. Juli 2007
Autotest Automatische Testgenerierung mit Design by Contract von Simon Greiner am 12. Juli 2007 Autotest 1. Testen 2. Design by Contract 3. Strategien zur Testerstellung 1. Zufallsstrategie 2. Planungsstrategie
MehrProgrammierkonventionen - 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