Imperative Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
Imperative Programmierung
Imperative Programmierung
der Universität Oldenburg
der Universität Oldenburg
3. Operatoren und Ausdrücke
Forschungszentrum caesar
Variablen und Datentypen
Zusammenfassung der Vorwoche
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
Imperative Programmierung
Imperative Programmierung
Objektorientierte Programmierung Definition von Klassen
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
Java: Objektorientierte Programmierung
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
Datentyp- umwandlung. Literale sind: Bezeichner mit einem festen Wert wie z.B:
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Java- Syntax.
Robotik mit LEGO Mindstorms
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Imperative Programmierung Funktionen und Parameter
Einführung in die Programmierung mit Java
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
Thema des Informatikkurses der Klasse 8
Das Java-Hamstermodell
Datenformate DVG Datenformate.
DVG Klassen und Objekte
Datenformate DVG Datenformate.
Einführung in die Programmierung Anweisungen und Datentypen


Wichtige Fachausdrücke in C
Grundkonzepte Java - Klassendefinition
Einführung in die Programmiersprache C 1
Java programmieren mit JavaKara
Informatik 1 Übung 2.
Repetitorium PG : Gültigkeit, Sichtbarkeit & Operatorüberladung FH-Darmstadt, FB Informatik.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Variablenkonzept Klassisch, in Java Basistyp
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Programmieren in C Grundlagen C 2
PHP: Operatoren und Kontrollstrukturen
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Grundlagen C 2
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Übersicht Nachtrag zu Ausdrücken
Anführungszeichen?! echo 'Apfel$atf'; // ergibt: Apfel$aft
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Einführung in die Programmierung mit Java
Variablen und Datentypen
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
 Präsentation transkript:

Imperative Programmierung Programmierkurs Java Teil Imperative Programmierung Unterrichtseinheit 10 Variablen (Hamster-Modell) Dr. Dietrich Boles

Ort der Variablendefinition Gültigkeitsbereich und Lebensdauer Gliederung Motivation Variablen Definition Initialisierung Ausdrücke Operatoren Zuweisung Operatoreneigenschaften Beispiel Ort der Variablendefinition Gültigkeitsbereich und Lebensdauer Codekonventionen Zusammenfassung

Motivation Motivation: Notwendige Voraussetzungen: Programm: Der Hamster soll bis zur nächsten Wand laufen, dabei alle Körner einsammeln, die er findet, und an der Wand genauso viele Körner ablegen, wie er eingesammelt hat. Notwendige Voraussetzungen: Gedächtnis ( Speicher) Zählen/Rechnen/Vergleichen ( Operationen) Programm: *1:"gefundene Anzahl ist 0"; while (vornFrei()) { vor(); while (kornDa()) { nimm(); *2:"erhöhe gefundene Anzahl um 1"; } while ( *3:"gefundene Anzahl größer als 0 ist" ) { gib(); *4:"erniedrige gefundene Anzahl um 1";

Variablen / Definition (1) Notwendig für *1: Reservierung von Speicherplatz ( Variablendefinition) Festlegung eines Namens ( Variablendeklaration) Festlegung des Typs ( Datentypen) Initialer Wert ( Initialisierung) hier: int anzahl = 0; Variablendeklaration/-definition: Deklaration: Bekanntgabe eines Namens für den Speicherbereich an den Compiler Definition: Reservierung von Platz im Hauptspeicher Hauptspeicher Programm Daten "Gedächtnis"

Variablen / Definition (2) Syntax: <Variablendefinition> ::= <Typ> <Bezeichner> "=" <Ausdruck> {"," <Bezeichner> "=" <Ausdruck>} ";" <Typ> ::= "int" Semantik: Es wird Speicherplatz zum Speichern einer Zahl angelegt und initialisiert. Beispiele: int anzahl = 0; int koelnischWasser = 4711; int eins = 1, zwei = 2, drei = 3;

Variablen / Initialisierung int: Zeichenketten aus dezimalen 29 oktalen (führende 0): 035 hexadezimalen Ziffern (führendes 0x): 0x1D Initialisierung von Variablen mit Hilfe von Literalen bzw. Ausdrücken Literale: Typ-spezifische Konstanten

Ausdrücke / Motivation Notwendig für *2 , *3 und *4 im Beispiel auf Folie 3: Operationen ( Mathematik) Operatoren Operanden Sinn und Zweck: Berechnung neuer Werte aus alten Werten Beispiel: int anzahl = 0; anzahl = anzahl + 1; Operator Operand Operand

Ausdrücke / Definition Ausdruck: Verarbeitungsvorschrift, deren Ausführung einen Wert liefert können mit Hilfe von Operatoren zu komplexeren Ausdrücken verknüpft werden Syntax: <Ausdruck> ::= <Literal> | <Variablenname> | "(" <Ausdruck> ")" | <unär-Op> <Ausdruck> | <Ausdruck> <binär-Op> <Ausdruck> Semantik: Literal: liefert Wert des Literals Variablenname: liefert den aktuell in der Variablen gespeicherten Wert

Ausdrücke / Operatoren (1) geliefert wird die berechnete Zahl +: positives Vorzeichen +9876 -: negatives Vorzeichen -2345 +: Addition 12 + 98 (= 110) -: Subtraktion 12 - 98 (= -86) *: Multiplikation 6 * 5 (= 30) /: Ganzzahl-Division 7 / 3 (= 2) %: Restbildung (modulo) 7 % 3 (= 1)

Ausdrücke / Operatoren (2) geliefert wird boolescher Wert (true, false) ==: Gleichheit 4 == 5 (= false) !=: Ungleichheit 6 != 7 (= true) <: Kleiner -2 < 1 (= true) <=: Kleiner-Gleich 3 <= 3 (= true) >: Größer 3 > 3 (= false) >=: Größer-Gleich 1 >= -1 (= true)

Ausdrücke / Zuweisung (1) Motivation: Änderung von Variablenwerten Syntax: <Zuweisung> ::= <Variablenname> "=" <Ausdruck> ";" Semantik: Der Ausdruck wird berechnet und der berechnete Wert in der Variablen gespeichert. Der alte Wert der Variablen geht verloren. Beispiele: int schritte = 3; // Initialisierung schritte = 5; // Zuweisung schritte = schritte + 1; schritte = 5 * (schritte -2);

Ausdrücke / Zuweisung (2) Schema: int zahl = 4; zahl number int number = 12; zahl = zahl + number / 5;

Ausdrücke / Zuweisung (3) Abkürzungen: i++ i = i + 1 ++i i-- i = i - 1 --i i += <expr> i = i + (<expr>) i -= <expr> i = i - (<expr>) i *= <expr> i = i * (<expr>) i /= <expr> i = i / (<expr>) i %= <expr> i = i % (<expr>)

Ausdrücke / Operatoren / Eigenschaften Präzedenz (absteigend): Abänderung der Präzedenz mit Hilfe von Klammern Assoziativität: wichtig bei Operatoren gleicher Präzedenz alle unären Operatoren sind rechts-assoziativ alle binären Operatoren außer den Zuweisungsop. sind links-assoziativ Zuweisungsoperatoren sind rechts-assoziativ Postfix-Operatoren ++, -- Multiplikationsoperatoren *, /, % Additionsoperatoren +, - Gleichheitsoperatoren ==, != Zuweisungsoperatoren =, +=, *=, ...

Beispiel Motivation: Programm: Der Hamster soll bis zur nächsten Wand laufen, dabei alle Körner einsammeln, die er findet, und an der Wand genauso viele Körner ablegen, wie er eingesammelt hat. Programm: void main() { int anzahl = 0; while (vornFrei()) { vor(); while (kornDa()) { nimm(); anzahl = anzahl + 1; } while (anzahl > 0) { gib(); anzahl = anzahl - 1;

Ort der Variablendefinition zwei Varianten von Variablendefinitionen: als Definition (globale Variable) als Anweisung (lokale Variable) int schritte = 0; void main() { void main() { int schritte = 0; while (vornFrei()) { while (vornFrei()) { vor(); vor(); schritte++; schritte++; } } } }

Gültigkeitsbereich und Lebensdauer (1) Gültigkeitsbereich einer Variablen: Der Teil eines Programms, in dem eine Variable genutzt werden kann. bei lokalen Variablen: beschränkt sich auf den Block, in dem die Variable definiert wurde. beginnt ab der Stelle der Definition. bei globalen Variablen: umfasst das gesamte Programm. Ausnahmen: eigener Initialisierungsausdruck und Initialisierungsausdrücke vorher definierter globaler Variablen. Allgemein: Im Gültigkeitsbereich einer Variablen darf keine neue Variable gleichen Namens definiert werden; Ausnahme: Gleichnamige globale und lokale Variablen sind erlaubt (lokale überladen globale Variablen)

Gültigkeitsbereich und Lebensdauer (2) Lebensdauer einer Variablen: Zeitspanne, während der Speicherplatz für eine Variable reserviert ist. bei lokalen Variablen: beginnt bei ihrer Definition und endet nach der vollständigen Abarbeitung des Blockes, in dem sie definiert wurde bei globalen Variablen: umfasst die gesamte Ausführungszeit des Programms

Gültigkeitsbereich und Lebensdauer (3) Aufgabe: Der Hamster soll bis zur nächsten Wand laufen, dabei alle Körner einsammeln, die er findet, und an der Wand genauso viele Körner ablegen, wie er eingesammelt hat. Korrektes Programm mit globaler Variable anzahl: void sammle() { while (kornDa()) { nimm(); anzahl = anzahl + 1; } void legeAb() { while (anzahl > 0) { gib(); anzahl = anzahl - 1; int anzahl = 0; void main() { sammle(); while (vornFrei()) { vor(); } legeAb();

Gültigkeitsbereich und Lebensdauer (4) Aufgabe: Der Hamster soll bis zur nächsten Wand laufen, dabei alle Körner einsammeln, die er findet, und an der Wand genauso viele Körner ablegen, wie er eingesammelt hat. Fehlerhaftes Programm mit zwei lokalen Variablen anzahl: void sammle() { int anzahl = 0; while (kornDa()) { nimm(); anzahl = anzahl + 1; } } void legeAb() { while (anzahl > 0) { gib(); anzahl = anzahl - 1; void main() { sammle(); while (vornFrei()) { vor(); } legeAb();

Codekonventionen Variablenname: Anfangsbuchstabe klein; Anfangsbuchstaben neuer Wortbestandteile groß Variablenname: aussagekräftig !!! Variablen möglichst einzeln deklarieren keine gleichnamigen globalen und lokalen Variablen verwenden vor und hinter binären Operatoren ein Leerzeichen

Zusammenfassung Variable: logischer Speicherplatz zur Speicherung eines Wertes Ausdruck: Verarbeitungsvorschrift, deren Ausführung einen Wert liefert boolescher Ausdruck: geliefert wird Wahrheitswert arithmetischer Ausdruck: geliefert wird Zahl Operatoren: Verknüpfung von Ausdrücken Zuweisung: Änderung des in einer Variablen gespeicherten Wertes Gültigkeitsbereich: Teil eines Programms, in dem auf eine Variable zugegriffen werden kann Lebensdauer: Zeitspanne, während der Speicherplatz für eine Variable reserviert ist