5. Tutorium zu Programmieren



Ähnliche Dokumente
13. Tutorium zu Programmieren

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Übersicht Programmablaufsteuerung

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Programmieren Tutorium

Java: Vererbung. Teil 3: super()

Erwin Grüner

1 Vom Problem zum Programm

Einführung in die Java- Programmierung

Objektorientierte Programmierung

Java Kurs für Anfänger Einheit 5 Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Programmierkurs Java

Java-Programmierung mit NetBeans

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Programmierung

Einführung in die Programmierung

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Einführung in die Programmierung

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Delegatesund Ereignisse

Klausur zur Einführung in die objektorientierte Programmierung mit Java

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Die Programmiersprache C99: Zusammenfassung

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Übungen Programmieren 1 Felix Rohrer. Übungen

Dr. Monika Meiler. Inhalt

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Arbeiten mit UMLed und Delphi

Mediator 9 - Lernprogramm

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Programmierung in C. Grundlagen. Stefan Kallerhoff

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in die Programmierung (EPR)

Modellierung und Programmierung 1

Klausur zur Einführung in die objektorientierte Programmierung mit Java

C/C++ Programmierung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Überblick. Lineares Suchen

teamsync Kurzanleitung

Computeranwendung und Programmierung (CuP)

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Tutorium 5 - Programmieren

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Informationsblatt Induktionsbeweis

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Kontrollstrukturen und Funktionen in C

Anleitung über den Umgang mit Schildern

Graphic Coding. Klausur. 9. Februar Kurs A

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Klausur in Programmieren

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Algorithmen und Datenstrukturen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Statuten in leichter Sprache

Tutorium Rechnerorganisation

Objektorientierte Programmierung. Kapitel 12: Interfaces

Fallunterscheidung: if-statement

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Erstellen von x-y-diagrammen in OpenOffice.calc

Programmierkurs Java

Zwischenablage (Bilder, Texte,...)

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

AutoCAD Dienstprogramm zur Lizenzübertragung

Übungsblatt 3: Algorithmen in Java & Grammatiken

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Zählen von Objekten einer bestimmten Klasse

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

C++ Tutorial: Timer 1

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Grundlagen der Theoretischen Informatik, SoSe 2008

Einführung in die Java- Programmierung

Repetitionsaufgaben Wurzelgleichungen

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Wirtschaftsinformatik I

Einführung in die Programmierung

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Woche 1: Was ist NLP? Die Geschichte des NLP.

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Prüfung Computation, Programming

Objektorientierung: Klassen und Objekte

SEP 114. Design by Contract

Transkript:

5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting / Universität Karlsruhe (TH)

Was machen wir heute? 1 Rückblick 2 Allgemeines / Aufgabenblatt 2 3 Kontrollstrukturen Ausdrücke und Anweisungen If- und Switch-Anweisung Schleifen: For, While, Do-While 4 Verwendung von static 5 Schluss Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 2 / 28

Übersicht Rückblick 1 Rückblick 2 Allgemeines / Aufgabenblatt 2 3 Kontrollstrukturen 4 Verwendung von static 5 Schluss Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 3 / 28

Rückblick Was haben wir letzte Woche gemacht? Lösung des Übungsblattes besprochen Java-Programmierumgebung Lokale Variablen, Packages Fragen dazu? Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 4 / 28

Übersicht Allgemeines / Aufgabenblatt 2 1 Rückblick 2 Allgemeines / Aufgabenblatt 2 3 Kontrollstrukturen 4 Verwendung von static 5 Schluss Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 5 / 28

Allgemeines / Aufgabenblatt 2 Allgemeines Newsgroups sind nun auch ohne VPN erreichbar Musterlösung zum 1. Übungsblatt findet ihr im Wiki ab 1.12. gibt es Betreuungsstunden: Di + Do 14:00-15:30 Uhr R -143 (vor der ATIS auf der rechten Seite) Vorlesung nächste Woche beinhaltet neuen Stoff für alle! Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 6 / 28

Allgemeines / Aufgabenblatt 2 Hinweise zum Aufgabenblatt 2 Beim Rechnen auf Datentyp achten! 1 ist vom Typ int 1.0 ist vom Typ double Erinnerung: Abgabe Deckblattgenerator oder Name, Matrikelnummer, Gruppennummer (wir sind Gruppe 6!), Programmieren jeweils spätestens bis Freitag um 10 Uhr getackert in den Kasten im Keller des InfoBaus Übungsblätter sind selbstständig zu bearbeiten Noch Fragen zum 2. Aufgabenblatt? Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 7 / 28

Allgemeines / Aufgabenblatt 2 Wie schreibe ich eine Methode? Soll die Methode einen Wert berechnen und zurückgeben? Dann: Datentyp des Rückgabewertes vor den Methodennamen schreiben, return muss vorkommen (und immer erreicht werden). Soll die Methode nur Klassenattribute verändern und keinen Wert zurückgeben? Dann: void vor den Methodennamen schreiben, kein return Welche Werte benötigt die Methode, die nicht Attribute der Klasse sind? Diese müssen übergeben werden: void shift(int dx, int dy) {... Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 8 / 28

Übersicht Kontrollstrukturen 1 Rückblick 2 Allgemeines / Aufgabenblatt 2 3 Kontrollstrukturen Ausdrücke und Anweisungen If- und Switch-Anweisung Schleifen: For, While, Do-While 4 Verwendung von static 5 Schluss Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 9 / 28

Kontrollstrukturen Ausdrücke und Anweisungen Ausdrücke und Anweisungen Ausdrücke haben immer einen Typ und liefern einen Wert. Sie werden z. B. auf der rechten Seite von Zuweisungen (int x = Ausdruck;) oder bei return verwendet (return Ausdruck;). Anweisungen veranlassen eine Zustandsänderung und haben keinen Typ, z. B. Prozeduraufrufe (p1.shift(1.0, 2.0);) oder Zuweisungen (int x = Ausdruck;). Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 10 / 28

Kontrollstrukturen If- und Switch-Anweisung If-Anweisung Code if (Bedingung1) { Anweisungen1 else if (Bedingung2) { Anweisungen2... else { Anweisungen0 Wenn die Bedingung1 wahr ist, wird der Anweisungsblock Anweisungen1 ausgeführt, ist sie falsch, wird weitergeschaut Der else-zweig wird weggelassen, wenn der Anweisungsblock dort ansonsten leer wäre Die Bedingung ist immer vom Typ boolean Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 11 / 28

Kontrollstrukturen If- und Switch-Anweisung Switch-Anweisung Code switch (Ausdruck) { case wert1: Anweisungen1 break; case wert2: Anweisungen2 break;... case wertn: AnweisungenN break; default: Anweisungen0 Nach case muss ein konkreter Wert (Konstante) stehen Steht nach den Anweisungen kein break, werden auch noch die anderen Fälle überprüft. Das führt zu Unübersichtlichkeit und möglicherweise zu unangenehmen Seiteneffekten switch funktioniert nicht über Strings! Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 12 / 28

Aufgabe Kontrollstrukturen If- und Switch-Anweisung Aufgabe Schreibe eine Kontrollstruktur, die für die Noten 1, 2, 3, 4 und 5 die Entsprechungen sehr gut, gut, befriedigend, ausreichend und durchgefallen ausgibt. Die Note sei dabei in der Variable note vom Typ int gegeben. Eine Bedingung könnte also so aussehen: note == 2 Eine Anweisung so: Terminal.print( gut ); Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 13 / 28

Kontrollstrukturen Schleifen: For, While, Do-While For-Schleife Code for (Initialisierung; Bedingung; Schritt) { Anweisungen Beispiel Initialisierung wird einmal am Anfang ausgeführt Bedingung wird vor jedem Schleifendurchlauf ausgeführt Schritt wird nach jedem Schleifendurchlauf ausgeführt for (int i = 0; i < 10; i++) { Terminal.println(i); Was macht diese Schleife? Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 14 / 28

Kontrollstrukturen Schleifen: For, While, Do-While While-Schleife Code while (Bedingung) { Anweisungen Vor Beginn jedes Durchlaufs wird geprüft, ob die Bedingung gültig ist. Beispiel int summe = 0; while (summe < 100) { summe = summe + 10; Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 15 / 28

Kontrollstrukturen Schleifen: For, While, Do-While Do-While-Schleife Code do { Anweisungen while (Bedingung); Nach jedem Durchlaufs wird geprüft, ob die Bedingung gültig ist. Beispiel int summe = 0; do{ summe = summe + 10; while (summe < 100) Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 16 / 28

Kontrollstrukturen Schleifen: For, While, Do-While Schleifen und Arrays Schleifen eignen sich besonders gut zur Verwendung mit Arrays: Beispiel int summe = 0; int[] zahlen = {15, 7, 32, 48, 75; for (int idx = 0; idx < zahlen.length; idx++) { summe = summe + zahlen[idx]; Terminal.println(summe); Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 17 / 28

Kontrollstrukturen Schleifen: For, While, Do-While Aufgabe Aufgabe Schreibt eine Methode int quadratsumme()..., die die Zahlen von 1 bis 25 quadriert und aufsummiert, also 1*1 + 2*2 +... + 25*25 berechnet. Team 1) Verwendet eine For-Schleife Team 2) Verwendet eine While-Schleife Team 3) Verwendet eine Do-While-Schleife Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 18 / 28

Übersicht Verwendung von static 1 Rückblick 2 Allgemeines / Aufgabenblatt 2 3 Kontrollstrukturen 4 Verwendung von static 5 Schluss Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 19 / 28

Verwendung von static main-methode ( 13.1) class C {... public static void main(string[] args) {...... main-methode: Ausführung, wenn noch keine Objekte vorhanden Kein Objekt-Kontext (kein this!) verfügbar Von überall ohne Bezugsobjekt aufrufbar static auch allgemein für Methoden und Attribute... Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 20 / 28

Verwendung von static static in Java ( 13.1) Statische Attribute: Einmal pro Klasse (nicht einmal pro Objekt) Zugreifbar aus statischem und Objekt-Kontext ( globale Variable) Statische Methoden: Kein Objekt-Kontext (kein this) Direkter Zugriff nur auf statische Felder Können aber jederzeit Objekte erzeugen ( main) class C { int x; static int y; void foo() { x = 3; // ok! y = 5; // ok! static void bar() { x = 4; // Fehler! y = 6; // ok! public static void main(string[] args) { foo(); // Fehler! bar(); // ok! C c1 = new C(); C c2 = new C(); c1.foo(); // ok! Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 21 / 28

Verwendung von static static in Java Beispiel class C { int x; static int y; void foo() { x = 3; y = 5; static void bar() { y = 6; public static void main(string[] args) { bar(); C c1 = new C(); C c2 = new C(); c1.foo(); c2 c1 C c1 C c2 x 3 x 0 Class C y 5 Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 22 / 28

Verwendung von static Verwendung von static Faustregeln: Konstanten Immer static final, da unveränderlich Methoden static, wenn kein Zugriff auf Attribute nötig Utility-Klassen Objekte ohne eigenen Zustand: alle Methoden static, Konstruktor private Klasse final (nicht vererbbar) Lokale Variablen static-attribute kein Ersatz für lokale Variablen Parameter static-methode mit Objekt der Klasse als Parameter: NEIN! OOP Keine Objektorientierung mit static Einschränkung der Anwendbarkeit einer Klasse Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 23 / 28

Verwendung von static Zusammenfassung static Eigenschaften: Statische Attribute nur einmal pro Programm vorhanden Statische Methoden ohne Objekt aufrufbar Kein direkter Zugriff auf nicht-statische Attribute/Methoden Anwendung: Konstanten Methoden ohne Zugriff auf Attribute Utility-Klassen ohne Objekt-Zustand Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 24 / 28

Beispiel Verwendung von static planet.java Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 25 / 28

Übersicht Schluss 1 Rückblick 2 Allgemeines / Aufgabenblatt 2 3 Kontrollstrukturen 4 Verwendung von static 5 Schluss Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 26 / 28

Schluss Ausblick Was machen wir nächste Woche? Besprechung des 2. Übungsblattes Wiederholung Praktomat Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 27 / 28

Schluss Dennis Ewert (Gruppe 6) Programmieren 5. Tutorium WS 2008/2009 28 / 28