Informatik I Tutorium WS 07/08

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Ein erstes Java-Programm

Java-Vorkurs Wintersemester 15/16

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Einführung in die Java- Programmierung

Prinzipielle Ausführungsvarianten I

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Modul 122 VBA Scribt.docx

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

II.1.1. Erste Schritte - 1 -

Primitive Datentypen

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

Informatik I Tutorium WS 07/08

5. Tutorium zu Programmieren

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Java Einführung Methoden in Klassen

Einführung in die Java- Programmierung

2 Einfache Rechnungen

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

Javakurs für Anfänger

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

1 Polymorphie (Vielgestaltigkeit)

Propädeutikum zur Programmierung

Kapitel 6. Vererbung

Prinzipien der Softwareentwicklung S. Strahringer

Einführung in die Java- Programmierung

Kapitel 6. Vererbung

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Distributed Computing Group

Algorithmen und Datenstrukturen 07

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

Die Programmiersprache C

Einfache Rechenstrukturen und Kontrollfluss II

Kapitel 6. Vererbung

Einführung in VisualBasic for Applications. Stefan Mahlitz

2. Einfache Java-Programme Grundlagen der Programmierung 1 (Java)

Software Engineering Klassendiagramme Einführung

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Programmieren Tutorium

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

Primitive Datentypen. Dr. Wolfgang Süß Thorsten Schlachter

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

PIWIN 1 Übung Blatt 5

Einführung in die C++ Programmierung für Ingenieure

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Übungen Informatik I. JAVA - Eclipse. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 1

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Dr. Monika Meiler. Inhalt

Java Einführung Programmcode

Propädeutikum zur Programmierung

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Datenbankanwendungsprogrammierung Crashkurs Java

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Programmierung in C. Grundlagen. Stefan Kallerhoff

Java Programmierung auf der Konsole / unter Eclipse

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

SWE1 / Übung 2 ( )

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

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

Informatik I WS 07/08 Tutorium 24

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Sie müssen den Test bis 20:00 Uhr am Abgabetag dieses Übungszettels absolviert haben.

Java-Schulung Grundlagen

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

Computeranwendung und Programmierung (CuP)

Themen. Web Service - Clients. Kommunikation zw. Web Services

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

Javakurs 2013 Objektorientierung

3 Objektorientierte Konzepte in Java

Probeklausur: Programmierung WS04/05

KV Software Engineering Übungsaufgaben SS 2005

Erster Kontakt mit Java und Pseudocode

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

OO Programmierung in Java

Entwicklungsrichtlinien. 6. Mai 2015

Themen der Übung. Java. Java installieren. Java installieren. Installation (Fortsetzung)

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

5.4 Klassen und Objekte

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel:

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

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Kapitel 11: Wiederholung und Zusammenfassung

Informationsverarbeitung im Bauwesen

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

Propädeutikum zur Programmierung

Vorlesung Informatik II

Let s get started with Java

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

Algorithmen und Datenstrukturen

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Programmierkurs: Delphi: Einstieg

Transkript:

Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 12 Tutor: Jens Kehne Tutorium 4: Dienstag 20. November 2007

Agenda des heutigen Tutoriums Übersicht heute Rückblick Java Datentypen, Casts Methoden, Schleifen UML-Aktivitätsdiagramm 2

Rückblick Aufgabenstellungen genau lesen! Antworten begründen kann nie schaden. Abschreiben fällt auf! Nächstes Mal gibts Ärger! 3

Java Datentypen, Casts

Einführung: Typen und Operationen Jede Programmiersprache besitzt Variablen in denen sich Zahlen (und Buchstaben) abspeichern lassen Jede Variable hat einen bestimmten Typ Zum Beispiel: Zahl: int Buchstabe: string Operationen benötigen Variablen von bestimmten Typen Beispiel: Variable a (Zahl), Variable b (Buchstabe) Macht a * b Sinn? Die Operation und der Typ der Operanten bestimmt den Typ des Ergebnisses 5

Typen und Operationen Operator Anwendung Beschreibung + op1 + op2 Addiert op1 und op2 - op1 - op2 Subtrahiert op2 von op1 * op1 * op2 Multipliziert op1 mit op2 / op1 / op2 Dividiert op1 durch op2 % op1 % op2 Berechnet den Rest aus der Division op1 durch op2 ++ op1++, ++op1 Inkrementierung von op1 um 1 Typen Es bestehen folgende Standardtypen für ganze Zahlen in Java: Byte 8-Bit-Zahl -2 7... 2 7-1 (-128... 127) short 16-Bit-Zahl -2 15... 2 15-1 (-32768... 32767) int 32-Bit-Zahl -2 31... 2 31-1 (-2.147.483.648... 2.147.483.647) long 64-Bit-Zahl -2 63... 2 63-1 6

Wertebereiche von Typen visualisiert Long Int Short Datentyp hat größeren Wertebereich Byte Datentypen haben kleinern Wertebereich 7

Resultate: Typen und Operationen in Java Größter Typ bestimmt Ergebnistyp der Operation Beispiel: long + int = long Ergebnistyp von arithmetischen Operationen ist (ohne weitere Angaben) int Auch die Addition von zwei Byte Variablen führt zum Ergebnistyp int! 8

Ausdrücke - AUFGABENSTELLUNG UND ÜBUNGSTHEMEN Gegeben seien folgende Variablendeklarationen in Java: long a = 3; int b = 4; short c = 5; byte d = 6; Welchen Wert liefern die folgenden Ausdrücke und von welchem Typ sind sie? d / b * a 3 (long) c + b * (d + 1) 33 (int) d / (c - 1) * b / 2 2 (int) d % b 2 (int) - c % b -1 (int) c++ % d 5 (int) a) Typen und Operationen b) Beispielprogramm mit Typkonflikten 9

Beispielprogramm mit Typkonflikten public class Test { public static void main (String[] arg) { long a = 7; // declare variables int b = 2; short c = 1; byte d = 0; byte e = 1; d = c++; d = e + d++; d = d++; d = c; b = c++ * d; // assign the arithmetic expression to b b = d * a; // assign the arithmetic expression to b b = a - a; // assign the arithmetic expression to b b = b / d; // assign the arithmetic expression to b } } Welche Fehler sind in diesem Programm enthalten? 10

Beispielprogramm mit Typkonflikten public class Test { public static void main (String[] arg) { long a = 7; // declare variables int b = 2; short c = 1; byte d = 0; byte e = 1; d = c++; d = e + d++; d = d++; d = c; b = c++ * d; // assign the arithmetic expression to b b = d * a; // assign the arithmetic expression to b b = a - a; // assign the arithmetic expression to b b = b / d; // assign the arithmetic expression to b } } Welche Fehler sind in diesem Programm enthalten? www.cm-tm.uka.de/info1 Info1-Team (Prof. Abeck) 11

Zuweisungen - AUFGABENSTELLUNG UND ÜBUNGSTHEMEN Gegeben seien dieselben Variablendeklarationen wie in Aufgabe 1.1. Welche der folgenden Zuweisungen sind in Java erlaubt? Geben Sie eine entsprechende Begründung. long a = 3; int b = 4; short c = 5; byte d = 6; a) Typkonversion b) Anwendung im Beispielprogramm a) a = b + 3 * (d + 1); b) b = c * c; c) c = b / 3; d) d = (byte) a + b; e) d = (byte) (a + b); f) d = d + d; ja ja nein nein ja nein 12

Typkonversion Was macht Typkonversion? Variablentyp Speicher (Block jeweils 1 Byte = 8 Bit) long int short byte Wie verwendet man Typkonversion im Programm? byte b = 0; long l = 65536; b = (byte) l +1; 13

Anwendung im Beispielprogramm public class Test { public static void main (String[] arg) { long a = 7; int b = 2; short c = 1; byte d = 0; byte e = 1; d = c++; b = c++; d = e + d++; d = d++; d = c; b = c++ * d; b = d * a; b = a - a; b = b / d; } } Wie kann man die Fehler beheben? // declare variables // assign the arithmetic expression to b // assign the arithmetic expression to b // assign the arithmetic expression to b // assign the arithmetic expression to b 14

Anwendung im Beispielprogramm public class Test { public static void main (String[] arg) { long a = 7; int b = 2; short c = 1; byte d = 0; byte e = 1; d = (byte)c++; b = c++; d = (byte)(e + d++); d = (byte)d++; d = (byte)c; b = (int)(c++ * d); b = (int)(d * a); b = (int)(a - a); b = (int)(b / d); } } // declare variables // assign the arithmetic expression to b // assign the arithmetic expression to b // assign the arithmetic expression to b // assign the arithmetic expression to b 15

In/Out-Klassen im IPO Die In-/Out-Klassen findet man hier: Sonstiges 16

Ausgabe mit Out.java Ziel: Erstellen einer Bildschirmausgabe Folgende Methoden bietet die Klasse an: Out.print(x); Out.println(x); Der Parameter x kann ein String, byte, short, integer oder long sein. Ein String kann durch Verkettung von Zeichenketten und Variablen erstellt werden. Beispiel: int i = 1; String s ="Der Wert von i ist:" + i; Out.print(s); Alternativ: Out.print("Der Wert von i ist:" + i); 17

Eingaben mit In.java Ziel: Einlesen einer Benutzereingabe Folgende Methode bietet die Klasse an: In.readInt(); // reads an integer In.readLine(); // reads a Sting Beispiel: int i; String s; i = In.readInt(); s = In.readLine(); 18

Aufbau eines Java-Programms public class InOutExample{ public static void main (String[] argv){ } } Folgendes Programm soll erstellt werden: Zwei Zahlen sollen eingelesen, addiert und ausgegeben werden. 19

Aufbau eines Java-Programms public class InOutExample{ public static void main (String[] argv){ int a; int b; int c; a = In.readInt(); b = In.readInt(); c = a + b; Out.println(c); } } 20

Programmierrichtlinien Programmierrichtlinien dienen dazu, Quelltext verständlich zu halten Wichtige Richtlinien (bis jetzt, NICHT vollständig): Bezeichnende Variablennamen (englisch!) Treffende Kommentare (englisch!) Unsinn: i++; // increment i Sinnvoll: vor größeren Codeblöcken die spezifiziert etwas berechnen Kommentar und zwischendrin Schritte erklären! Wenn Programmierrichtlinien nicht eingehalten werden Punktabzug! Mindestens genauso wichtig: Code so einfach wie möglich halten: 3 übersichtlich und schnell nachvollziehbare Zeilen sind mehr wert als 1 Zeile die scheinbar genial ist! 21

Java Methoden, Funktionen, Prozeduren, Schleifen

Methoden Methoden sind benannte Anweisungsfolgen dienen zur Zerlegung und Modularisierung eines Programms können parametrisiert oder auch parameterlos sein werden als Funktion oder Prozedur bezeichnet Was ist der Unterschied zwischen Funktionen und Prozeduren? Funktionen geben einen Wert zurück, Proz. nicht! Was besagt das Schlüsselwort void? Leer, nichts keine Rückkgabe Was bedeutet folgende Methodendeklaration? public static int max(int a, int b)

Namenskonventionen Namenskonventionen zu Methodennamen beginnen mit einem Kleinbuchstaben beginnen mit einem Verb falls aus mehren Wörtern gebildet, beginnen die Folgewörter mit einem Großbuchstaben Namenskonventionen zu Klassennamen beginnen mit einem Großbuchstaben falls aus mehren Wörtern gebildet, beginnen die Folgewörter mit einem Großbuchstaben Generell alle Namen und Kommentare auf Englisch!

Schleifen Ziel: Gewisse Berechnungen sollen wiederholt ausgeführt werden, bis eine bestimmte Bedingung eintritt Dieses Ziel wird u.a. durch die while-schleife (Abweisschleife) erreicht Syntax der while-schleife while (<Schleifenbedingung>) <Schleifenrumpf> als EBNF-Regel WhileStatement = "while" "(" Expr ")" Statement. durch die Bildung eines Blocks können beliebig viele Anweisungen den Schleifenrumpf bilden

Kubikwurzel einer Zahl - AUFGABENSTELLUNG UND ÜBUNGSTHEMEN Erstellen Sie ein Java-Programm, welches die Kubikwurzel der float-zahl x berechnet. Die Berechnung soll mittels der Näherungsformel von Newton erfolgen: y i x 2 * yi 1 2 y y i ist der Näherungswert der Kubikwurzel nach dem i-ten Schritt. Beginnen Sie mit y 0 =x/3. Die Iteration soll so lange fortgesetzt werden, bis sich y i und y i-1 um weniger als 1.0E-5 unterscheiden. Prüfen Sie diese Bedingung mittels Math.abs(y i - y i-1 ) < 1.0E-5. 3 i 1 a) Methoden b) Namenskonventionen c) Schleifen

Lösung: Kubikwurzel einer Zahl class Root { static float calcroot3(float x) { // this function calculates the cubic root of a given float value float y1 = x / 3; // start with y1 == x / 3 float y0 = 0; // and with y0 == 0 while (Math.abs(y0 - y1) > 1.0E-5) { // loop until yo - y1 < 1.0E-5 y0 = y1; // set y0 the old y1 y1 = (2 * y0 + x / (y0 * y0)) / 3; // calculate a new y1 } return y1; // return result } public static void main(string[] arg) { Out.print("Geben Sie eine Zahl ein: "); // Print text to the console float x = In.readFloat(); // read the value x from the console Out.println("Kubikwurzel von " + x + " ist " // print the cubic root of the value + calcroot3(x)); using the function root3 } }

UML-Aktivitätsdiagramm

UML (Unified Modelling Language): Zur Planung und Strukturierung von Software Produkten Anwendungsfall Diagramm: Beschreibt im groben die Umgebung und den Einsatzzweck des Systems Aktivitätsdiagramm Beschreibt die Abfolge von Aktionen/Handlungen bei einer bestimmten Tätigkeit

Ablauf zur Nutzung der Pool-Räume im Rechenzentrum RZ-Account holen RZ-Account testen [Account funktioniert] [Account funktioniert nicht] Aufgaben im Pool lösen Aufgaben abrufen Aufgaben vorführen

Fragen? Questions? Fragen? Fragen? Questions? Fragen? Ques Fragen? Questions? Fragen? Questions? Fragen? Questions? Fragen? Questions? Fragen? Questions? Fragen? Questions? Questions? Fragen? Questions? estions? Fragen? Questions? Fragen? Questions? 31

Bis bald 32

Credits Erstellung und Zusammenstellung des Materials: Christian Maier (Zusammenstellung) Stephan Kessler (Überarbeitung und Erweiterung) 33