Von der Aufgabe zum Code. Mario Bodemann

Ähnliche Dokumente
Von der Aufgabe zum Code

Von der Aufgabe zum Code. Daniel Käs Robert Lubkoll

Erste Java-Programme (Scopes und Rekursion)

I N F O R M A T I K UNIVERSITÄT LINZ. SWE1 / Übung 9. Schrittweise Verfeinerung

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

API und Kommentare. Javakurs 2014, 4. Vorlesung. Georg Hieronimus. basierend auf der Vorlage von Theresa Enghardt, Mario Bodemann und Sebastian Dyroff

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Fakultät IV Elektrotechnik/Informatik

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

2 Programmieren in Java I noch ohne Nachbearbeitung

Programmiertechnik Übungen zu Klassen & -methoden

Programmierung für Mathematik HS11

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Wiederholung JAVA. 1. (Vorbereitung)

Programmieren in Java

JAVA - Methoden

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

Übungen zum Bioinformatik-Tutorium. Blatt 3

pue13 January 28, 2017

System.out.println("TEXT");

Methoden, JavaAPI, Namensgebung, Testen, Debuggen

Probeklausur: Programmierung WS04/05

Javakurs für Anfänger

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache

Methoden und Wrapperklassen

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

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

hue12 January 24, 2017

Klassen, Vererbung, Benutzereingabe

2 Eine einfache Programmiersprache

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Universität Karlsruhe (TH)

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 2. Blatt Für die Woche vom 3.5. bis zum 7.5.

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

Übungsblatt 1. Java Vorkurs (WS 2017)

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

JAVA - Methoden - Rekursion

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.

Einführung in die Programmierung. (K-)II/Wb17

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

Arbeitsblatt zu Methoden

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

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

EidP. Blocktutorium SS 2014

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Brückenkurs Programmieren

Musterlösung Stand: 5. Februar 2009

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

Aufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Computeranwendung und Programmierung (CuP)

Einfache Sortierverfahren in Java, 2. Version

Aufgabenblatt 2. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

Übungen zu Programmieren - Code-Formatierung -

Einstieg in die Informatik mit Java

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.

Arrays und Schleifen

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

Javakurs für Anfänger

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

2 Eine einfache Programmiersprache

Wie entwerfe ich ein Programm?

Programmieren I + II Regeln der Code-Formatierung

6 Speicherorganisation

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {

Programmierung für Mathematik HS10 Übung 8

Anweisungen zur Ablaufsteuerung

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

JAVA für Nichtinformatiker - Probeklausur -

Informatik II. Woche 10, Giuseppe Accaputo

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Basispruefung Herbst 2016/ Einführung in die Programmierung

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

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

Tagesprogramm. Werte und Typen Methoden und Parameter Ergebnisse und Seiteneffekte.

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. Juni 2004

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Einfache Sortierverfahren in Java, 1. Version

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr

Primitive Datentypen

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben

MATLAB-Tutorium WS18 Nathalie Marion Frieß

Standardkonstrukte in Java

Transkript:

Von der Aufgabe zum Code Mario Bodemann 1

Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 2

Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 3

Rückblick Was ihr schon könnt: Variablen Schleifen Methoden Java API 4

Rückblick // Hauptmethode public static void main( String[] args){ // erzeuge einen String String astring = Hello World # ; // gib den String zufällig oft aus int iend = (int)(math.random() * 100); for( int i = 0; i < iend; ++i){ // ausgabe System.out.println( astring + i ); } } // ENDE 5

Rückblick Was wisst Ihr Bisher: Faktenwissen Was ist eine Variable? Was ist eine Schleife? etc. Heute: Wie? Wie beginnt man mit einer Aufgabe? Wie löst man Teile von ihr? Wie setze ich das in Java um? 6

Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 7

Die Aufgabenstellung (Bild) ++ ++ + // // _ _ +/ /o 0\ ++ ( ( ) + \_ _/ ) O : O ( : _ ++ /++\ _ _ // \\ \ / \ / // \\ ++ ++ ++ HAN AN 8

Die Aufgabenstellung (Text) Schreibe das Programm Hangman Spieler muss Wort erraten, solange Hangman noch nicht komplett Das Spiel soll beliebig oft hintereinander gespielt werden dürfen Zu jeder Zeit soll der Spieler die bereits gewählten Buchstaben angezeigt bekommen Auch soll er stets den Status des Hangmans sehen können 9

Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 10

Schritt I: Aufgabe verstehen Was sind die Regeln von Hangman? Programm wählt zufällig ein Wort Spieler gibt Buchstaben ein Falscher Buchstabe führt zu einem Strich Richtiger Buchstabe wird eingetragen Spiel wird beendet wenn Wort erraten oder Hangman komplett 11

Schritt II: Ablauf nachvollziehen Am besten grafisch (Stift und Papier) Sorgt für mehr Durchblick Ordnet den Ablauf des Programms Definiert Teilbereiche des Spieles Nützlich für Gruppenarbeiten Teile und Hersche Prinzip 12

13

14

15

16

17

18

19

20

21

Schritt III: Skizze verfeinern Skizzen mit Ablauf erzeugen Nützlich bei zu wenig Platz auf Diagramm Erfahrungen können umgesetzt werden Teilprobleme können definiert werden 22

23

24

Schritt IV: Teilen in Methoden Skizze in Methode umwandeln Jedes Teilproblem ist eine Methode im Programm sinnvolle Namen geben! Was braucht die Methode? Parameter? Rückgabewert? 25

Schritt IV: Methoden void menue () boolean isgamewanted() String chooseword () char askforchar () boolean ischarinword (char character, String word) void updategame (char guessedcharacter) void displaygame () boolean isgameover() 26

Schritt V: Wiederholen Inhalt der Methoden sofort ersichtlich? Ja, weiter mit nächster Methode Nein, neue Skizze Bei offensichtlichen Methoden Aufschreiben der Eingabe und Rückgabeparameter 27

Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 28

Code Einblick Viele Methoden, wie in Java umsetzen? Empfehlung: TopDownVerfahren Beginn bei void main() Kommentare für noch nicht existierende Methoden einfügen 29

Code Beispiel public static void main(string args[]) { // Menueschleife // neues Spiel? wenn nein, dann Ende // Wort wählen // Spielschleife // Spielstand ausgeben // Buchstaben erfragen // Eingabe bewerten // Spielstand aktualisieren // Spielende prüfen // ende // ende } 30

Schrittweiser Fortschritt Nun pro Kommentar eine neue Methode Variablen, Kommentare sowie Ausgaben einfügen Sobald neue Methode fertig: Testdurchlauf 31

Testen So früh wie möglich So oft wie möglich So gründlich wie möglich 32

Testen Dumme Methoden // TODO: Befüll mich! Methoden mit public char askforchar(){ Eingabe und // liefere festen Wert Ausgabe Parametern return 'a'; Jedoch ohne Funktion Auch Platzhalter genannt } // TODO: Befüll mich! public String chooseword() { // liefere festes Wort return Javakurs ; } 33

Testen println debug Wdh Ausgabe von Werten, die wichtig sind // starte ein Spiel public double add (double a, double b){ // Parameter okay? System.out.println(a +, + b); Auskommentieren und nicht löschen double result = a+b; // Ergebnis okay? System.out.println( Result ); return result; } 34

Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 35

Fehler und Modifikationstolleranz 36

Der Code Warum formatieren? Einrücken pro neue Methode pro Verzweigung (if/switch) pro Schleife Sprechende Namen Zeilen nur so lang wie nötig, nicht wie möglich 37

Formatierung eure Handschrift import foo.bar; Editoren helfen // Klasse B die... class B extends A { Wichtig für Zusammenarbeit // Konstruiere B public B() { } Für Code der älter ist // Mache etwas public x( int i ) { // Inhalt } } 38

Einrückung Erkennung von Teilbereichen Wichtig bei Bedingungen Schleifen Klassen Methoden if( a == b ) { // dann zweig } else { // sonst zweig } // while( baktiv ) { // // wiederhole... // } 39

Sprechende Namen Was steht in der Variablen? Typbeschreibung time, name, number.. Was tut die Methode/das Objekt? double timeleft=0.4; String studentname = Hans ; // class HangmanMain{..} boolean isgamewanted() 40

Schönheit kostet nix Wichtig: Code muss laufen! Optimierung meist vom Compiler besser als von euch Wenn Code viel zu langsam Aufgabenstellung richtig gelesen? Zuviele Nice Too Have Features? (3D Galgen?) 41

Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 42

Ausblick Ihr wisst jetzt Wie zerlege ich eine Aufgabe in Teilprobleme Wie Teile ich die Teilprobleme Wie formuliere ich ein Teilproblem in Java Was sollte ich beim Schreiben von Code beachten? Jetzt im Anschluss Feedback Abgabe Übungen im Tel 106 / 206 43

Fragen? 44