systematischen Verarbeitung von Informationen Was ist Informatik?

Ähnliche Dokumente
Einführung in die C++ Programmierung für Ingenieure

Infovorkurs, Teil III: Maschinenabstraktion & Ausblick

1 Vom Problem zum Programm

Die Programmiersprache C

Einführung in die Programmierung mit Java

Willkommen... Agenda für heute, 25. Februar, Studentinnen und Studenten der Studiengänge

Programmieren was ist das genau?

Grundlagen. Kapitel 1

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

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Modellierung und Programmierung 1

Informatik I. Übung 01. Olga Diamanti

Einführung in die Programmierung mit Java

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Kapitel 3. Mein erstes C-Programm

Einführung in die Programmierung mit Java

SWE1 / Übung 2 ( )

5. Programmieren mit Pascal

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg Universitätsstraße 31, Regensburg

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

Übungen zu C++ Kapitel 1

Erster Bug: eine Motte

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

Selber Programmieren

Einführung in die Programmierung WS 2014/ Algorithmus, Berechenbarkeit und Programmiersprachen 2-1

Informatik I Debugging

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Kapitel 11: Wiederholung und Zusammenfassung

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Programmiersprachen gestern, heute, morgen

1. Der Einstieg in Java

II.1.1. Erste Schritte - 1 -

VBA-Programmierung: Zusammenfassung

Objektorientiertes Programmieren für Ingenieure

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg Universitätsstraße 31, Regensburg

Geschichte der Informatik

2 Einfache Rechnungen

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Deklarationen in C. Prof. Dr. Margarita Esponda

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

1 Syntax von Programmiersprachen

5.4 Klassen und Objekte

2 Der Schnelleinstieg *

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Seite Seite 2

Im Original veränderbare Word-Dateien

Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer

2.4 Das erste C++-Programm *

Einführung in die Informatik

IT-Basics 2. DI Gerhard Fließ

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Objektorientierte Programmierung

Einführung in die Informatik I

Aufbau und Funktionsweise eines Computers

Programmierkurs Python I

Logik und diskrete Strukturen

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Die Programmiersprache Scheme... DrRacket: Die Programmierumgebung Sprache: Semantik. Sprache: Syntax

Definition: Algorithmus

Programmieren für Physiker: C++

JAVA als erste Programmiersprache Semesterkurs

Informatik und Informationstechnik (IT)

SOI Die Schweizer Informatikolympiade

3. Ziel der Vorlesung

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

Teil IV. Grundlagen der Programmierung

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Prinzipielle Ausführungsvarianten I

2 Grundlagen der Programmierung

Kapitel 2. Methoden zur Beschreibung von Syntax

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

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 Tel: 07531/ Oliver Haase Hochschule Konstanz 1

Tutorium Rechnerorganisation

Entwurf von Algorithmen - Kontrollstrukturen

Kapitel 3 Programmierung Lernen mit Scheme. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

Java-Vorkurs Wintersemester 15/16

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

Algorithmen und Programmierung

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

Programmierausbildung mehrsprachig von Anfang an eine erste Bilanz

Programmieren. Wie entsteht ein Programm

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Java Einführung Operatoren Kapitel 2 und 3

Ein erstes Java-Programm

3. Grundregeln für die Java-Programmierung

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

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

Brückenkurs / Computer

Programmieren in C Einführung

Grundlagen Programmierung

Einführung in die Programmierung

Python Programmieren. Variablen, Ausdrücke und Anweisungen

Transkript:

14 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen Bestandteile

Was ist Informatik? 15

Was ist Informatik? 15 Die Wissenschaft der systematischen Verarbeitung von Informationen,...

Was ist Informatik? 15 Die Wissenschaft der systematischen Verarbeitung von Informationen,...... insbesondere der automatischen Verarbeitung mit Hilfe von Digitalrechnern. (Wikipedia, nach dem Duden Informatik )

Informatik Computer Science 16 Computer science is not about machines, in the same way that astronomy is not about telescopes. Mike Fellows, US-Informatiker (1991)

Computer Science Informatik 17 Die Informatik beschäftigt sich heute auch mit dem Entwurf von schnellen Computern und Netzwerken...

Computer Science Informatik 17 Die Informatik beschäftigt sich heute auch mit dem Entwurf von schnellen Computern und Netzwerken...... aber nicht als Selbstzweck, sondern zur effizienteren systematischen Verarbeitung von Informationen.

Algorithmus: Kernbegriff der Informatik 18 Algorithmus: Rezept zur systematischen Verarbeitung von Informationen

Algorithmus: Kernbegriff der Informatik Algorithmus: Rezept zur systematischen Verarbeitung von Informationen nach Muhammed al-chwarizmi, Autor eines arabischen Rechen-Lehrbuchs (um 825) Dixit algorizmi... (lateinische Übersetzung) 18

Der älteste überlieferte Algorithmus... 19

Der älteste überlieferte Algorithmus... 19... ist der Euklidische Algorithmus (aus Euklids Elementen, 3. Jh. v. Chr.)

Der älteste überlieferte Algorithmus... 19... ist der Euklidische Algorithmus (aus Euklids Elementen, 3. Jh. v. Chr.) Eingabe: zwei natürliche Zahlen a > b Ausgabe: grösster gemeinsamer Teiler ggt(a, b)

Der älteste überlieferte Algorithmus... 19 Algorithmus am Beispiel: a b a div b a mod b 1071 1029 1 42

Der älteste überlieferte Algorithmus... 19 Algorithmus am Beispiel: a b a div b a mod b 1071 1029 1 42

Der älteste überlieferte Algorithmus... 19 Algorithmus am Beispiel: a b a div b a mod b 1071 1029 1 42 1029 42 24 21

Der älteste überlieferte Algorithmus... 19 Algorithmus am Beispiel: a b a div b a mod b 1071 1029 1 42 1029 42 24 21

Der älteste überlieferte Algorithmus... 19 Algorithmus am Beispiel: a b a div b a mod b 1071 1029 1 42 1029 42 24 21 42 21 2 0

Der älteste überlieferte Algorithmus... 19 Algorithmus am Beispiel: a b a div b a mod b 1071 1029 1 42 1029 42 24 21 42 21 2 0

Der älteste überlieferte Algorithmus... 19 Algorithmus am Beispiel: a b a div b a mod b 1071 1029 1 42 1029 42 24 21 42 21 2 0 ggt = 21

Informatik EDV-Kenntnisse 20 EDV-Kenntnisse: Anwenderwissen Umgang mit dem Computer Bedienung von Computerprogrammen (für Texterfassung, Email, Präsentationen,... )

Informatik EDV-Kenntnisse 20 Informatik: Grundlagenwissen Wie funktioniert ein Computer? Wie schreibt man ein Computerprogramm?

ETH: Pionierin der modernen Informatik 1950: ETH mietet Konrad Zuses Z4, den damals einzigen funktionierenden Computer in Europa. 21

22 ETH: Pionierin der modernen Informatik 1956: Inbetriebnahme der ERMETH, entwickelt und gebaut an der ETH von Eduard Stiefel.

ETH: Pionierin der modernen Informatik 1958 1963: Entwicklung von ALGOL 60 (der ersten formal definierte Programmiersprache), unter anderem durch Heinz Rutishauer, ETH 23

ETH: Pionierin der modernen Informatik 1964: Erstmals können ETH-Studierende selbst einen Computer programmieren (die CDC 1604, gebaut von Seymour Cray). Die Klasse 1964 heute (mit einigen Gästen) 24

ETH: Pionierin der modernen Informatik 1964: Erstmals können ETH-Studierende selbst einen Computer programmieren (die CDC 1604, gebaut von Seymour Cray). Niklaus Wirth (* 1934) 24

ETH: Pionierin der modernen Informatik 25 1968 1990: Niklaus Wirth entwickelt an der ETH die Programmiersprachen Pascal, Modula-2 und Oberon und 1980 die Lilith, einen der ersten Computer mit grafischer Benutzeroberfläche.

Computer Konzept Eine geniale Idee: Universelle Turingmaschine (Alan Turing, 1936) Alan Turing 26

Computer Umsetzung Z1 Konrad Zuse (1938) ENIAC John Von Neumann (1945) Konrad Zuse John von Neumann 27

Speicher für Daten und Programm 28 Folge von Bits aus {0, 1}. Programmzustand: Werte aller Bits. Zusammenfassung von Bits zu Speicherzellen (oft: 8 Bits = 1 Byte).

Speicher für Daten und Programm 28 Jede Speicherzelle hat eine Adresse. Random Access: Zugriffszeit auf Speicherzelle (nahezu) unabhängig von ihrer Adresse.

Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist... 3 Uniprozessor Computer bei 1GHz 29

Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist... 30 m arbeitet ein heutiger Desktop-PC mehr als 100 3 Uniprozessor Computer bei 1GHz 29

Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist... 30 m = mehr als 100.000.000 Instruktionen arbeitet ein heutiger Desktop-PC mehr als 100 Millionen Instruktionen ab. 3 3 Uniprozessor Computer bei 1GHz 29

Inhalt dieser Vorlesung 30 Systematisches Problemlösen mit Algorithmen und der Programmiersprache C++. Also: nicht nur, aber auch Programmierkurs.

Programmieren Mit Hilfe einer Programmiersprache wird dem Computer eine Folge von Befehlen erteilt, damit er genau das macht, was wir wollen. Die Folge von Befehlen ist das (Computer)-Programm. The Harvard Computers, Menschliche Berufsrechner, ca.1890 33

Warum Programmieren? 34 Da hätte ich ja gleich Informatik studieren können...

Warum Programmieren? 34 Es gibt doch schon für alles Programme...

Warum Programmieren? 34 Programmieren interessiert mich nicht...

Warum Programmieren? 34 Weil Informatik hier leider ein Pflichtfach ist...

Warum Programmieren? 34...

Darum Programmieren! 35 Jedes Verständnis moderner Technologie erfordert Wissen über die grundlegende Funktionsweise eines Computers.

Darum Programmieren! 35 Programmieren (mit dem Werkzeug Computer) wird zu einer Kulturtechnik wie Lesen und Schreiben (mit den Werkzeugen Papier und Bleistift)

Darum Programmieren! 35 Programmieren ist die Schnittstelle zwischen Elektrotechnik und Informatik der interdisziplinäre Grenzbereich wächst zusehends.

Darum Programmieren! 35 Programmieren macht Spass!

Programmiersprachen 36 Sprache, die der Computer "versteht", ist sehr primitiv (Maschinensprache). Einfache Operationen müssen in viele Einzelschritte aufgeteilt werden. Sprache variiert von Computer zu Computer.

Höhere Programmiersprachen 36 darstellbar als Programmtext, der von Menschen verstanden werden kann vom Computermodell unabhängig ist Abstraktion!

Warum C++? 37 Andere populäre höhere Programmiersprachen: Java, C#, Objective-C, Modula, Oberon,...

Warum C++? 37 Andere populäre höhere Programmiersprachen: Java, C#, Objective-C, Modula, Oberon,... Allgemeiner Konsens Die Programmiersprache für Systemprogrammierung: C C hat erhebliche Schwächen. Grösste Schwäche: fehlende Typsicherheit.

Warum C++? 38 Over the years, C++ s greatest strength and its greatest weakness has been its C-Compatibility B. Stroustrup

Deutsch vs. C++ 39 Deutsch Es ist nicht genug zu wissen, man muss auch anwenden. (Johann Wolfgang von Goethe) C++ // computation int b = a a; // b = a^2 b = b b; // b = a^4

Syntax und Semantik 40 Programme müssen, wie unsere Sprache, nach gewissen Regeln geformt werden. Syntax: Zusammenfügungsregeln für elementare Zeichen (Buchstaben). Semantik: Interpretationsregeln für zusammengefügte Zeichen.

Syntax und Semantik 40 Entsprechende Regeln für ein Computerprogramm sind einfacher, aber auch strenger, denn Computer sind vergleichsweise dumm.

41 C++: Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell.

41 C++: Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. Syntaktisch und semantisch korrekt.

41 C++: Fehlerarten illustriert an deutscher Sprache DasAuto fuh r zu sxhnell.

41 C++: Fehlerarten illustriert an deutscher Sprache DasAuto fuh r zu sxhnell. Syntaxfehler: Wortbildung.

41 C++: Fehlerarten illustriert an deutscher Sprache Rot das Auto ist.

41 C++: Fehlerarten illustriert an deutscher Sprache Rot das Auto ist. Syntaxfehler: Satzstellung.

41 C++: Fehlerarten illustriert an deutscher Sprache Man empfiehlt dem Dozenten nicht zu widersprechen

41 C++: Fehlerarten illustriert an deutscher Sprache Man empfiehlt dem Dozenten, nicht zu widersprechen. Syntaxfehler: Satzzeichen fehlen.

41 C++: Fehlerarten illustriert an deutscher Sprache Sie ist nicht gross und rothaarig.

41 C++: Fehlerarten illustriert an deutscher Sprache Sie ist nicht gross und rothaarig. Syntaktisch korrekt aber mehrdeutig. [kein Analogon]

41 C++: Fehlerarten illustriert an deutscher Sprache Die Auto ist rot.

41 C++: Fehlerarten illustriert an deutscher Sprache Die Auto ist rot. Syntaktisch korrekt, doch semantisch fehlerhaft: Falscher Artikel. [Typfehler]

41 C++: Fehlerarten illustriert an deutscher Sprache Das Fahrrad gallopiert schnell.

41 C++: Fehlerarten illustriert an deutscher Sprache Das Fahrrad gallopiert schnell. Syntaktisch und grammatikalisch korrekt! Semantisch fehlerhaft. [Laufzeitfehler]

41 C++: Fehlerarten illustriert an deutscher Sprache Manche Tiere riechen gut.

41 C++: Fehlerarten illustriert an deutscher Sprache Manche Tiere riechen gut. Syntaktisch und semantisch korrekt. Semantisch mehrdeutig. [kein Analogon]

Syntax und Semantik von C++ 42 Syntax Was ist ein C++ Programm? Ist es grammatikalisch korrekt? Semantik Was bedeutet ein Programm? Welchen Algorithmus realisiert ein Programm?

Was braucht es zum Programmieren? 44 Editor: Programm zum Äandern, Erfassen und Speichern von C++-Programmtext Compiler: Programm zum Übersetzen des Programmtexts in Maschinensprache

Was braucht es zum Programmieren? 44 Computer: Gerät zum Ausführen von Programmen in Maschinensprache Betriebssystem: Programm zur Organsiation all dieser Abläufe (Dateiverwaltung, Editor-, Compiler- und Programmaufruf)

Das erste C++ Programm 45 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

Programmstruktur 46 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Kommentare // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

Programmstruktur 46 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> Include Directive int main() Funktionsdeklaration der main-funktion { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

Kommentare und Layout Kommentare hat jedes gute Programm, dokumentieren, was das Programm wie macht und wie man es verwendet und werden vom Compiler ignoriert. Syntax: Doppelslash // bis Zeilenende. Ignoriert werden vom Compiler ausserdem Leerzeilen, Leerzeichen, Einrückungen, die die Programmlogik widerspiegeln (sollten) 47

Kommentare und Layout 48 Dem Compiler ist s egal... #include <iostream> int main(){std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; int b = a * a; b = b * b; std::cout << a << "^8 = " << b*b << ".\n";return 0;}

Kommentare und Layout 48 Dem Compiler ist s egal... #include <iostream> int main(){std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; int b = a * a; b = b * b; std::cout << a << "^8 = " << b*b << ".\n";return 0;}... uns aber nicht!

Anweisungen (Statements) 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

Anweisungen 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Ausdrucksanweisungen // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

Anweisungen Werte und Effekte 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input Effekt: Ausgabe des Strings Compute... std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Effekt: Eingabe einer Zahl und Speichern in a } // computation Effekt: Speichern des berechneten Wertes von a*a in b int b = a a; // b = a^2 b = b b; // b = a^4 Effekt: Speichern des berechneten Wertes von b*b in b // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0; Effekt: Rückgabe des Wertes 0 Effekt: Ausgabe des Wertes von a und des berechneten Wertes von b*b

Anweisungen 49 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0; Rückgabeanweisung

49 Anweisungen (Variablen)deklarationen // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; Typnamen std::cin >> a; Deklarationsanweisungen // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b b << ".\n"; return 0;

Verhalten eines Programmes 50 Zur Compilationszeit: vom Compiler akzeptiertes Programm (syntaktisch korrektes C++) Compiler-Fehler

Verhalten eines Programmes 50 Zur Laufzeit: korrektes Resultat inkorrektes Resultat Programmabsturz Programm terminiert nicht (Endlosschleife)

Variablen 57 repräsentieren (wechselnde) Werte, haben Name Typ Wert Adresse sind im Programmtext "sichtbar".

Variablen 57 repräsentieren (wechselnde) Werte, haben Name Typ Wert Adresse sind im Programmtext "sichtbar". Beispiel int a; definiert Variable mit Name: a Typ: int Wert: (vorerst) undefiniert Addresse: durch Compiler (und Linker, Laufzeit) bestimmt

Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0;

Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() Linker Operand (Ausgabestrom) Rechter Operand (String) { Ausgabe-Operator // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0;

Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Rechter Operand (Variablenname) Eingabe-Operator // computation int b = a Linker a; // Operand b = a^2(eingabetrom) b = b b; // b = a^4 } // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0;

Operatoren und Operanden 59 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; } // computation int b = a a; // b = a^2 b = b b; // b = a^4 Zuweisungsoperator // output b b, i.e., a^8 std::cout << a << "^8 = " << b * b << ".\n"; return 0; Multiplikationsoperator

Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; Variablenname, primärer Ausdruck } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 Variablenname, primärer Ausdruck // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; Literal, primärer Ausdruck

Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> Zusammengesetzer Ausdruck int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 Zusammengesetzer Ausdruck // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

Ausdrücke (Expressions) 60 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; Zweifach // b = a^2 zusammengesetzter Ausdruck b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; Vierfach zusammengesetzter Ausdruck

L-Werte und R-Werte 63 L-Wert ( Links vom Zuweisungsoperator ) Ausdruck mit Adresse Wert ist der Inhalt an der Speicheradresse entsprechend dem Typ des Ausdrucks.

L-Werte und R-Werte 63 L-Wert ( Links vom Zuweisungsoperator ) Ausdruck mit Adresse Wert ist der Inhalt an der Speicheradresse entsprechend dem Typ des Ausdrucks. L-Wert kann seinen Wert ändern (z.b. per Zuweisung). Beispiel: Variablenname, weitere Beispiele etwas später...

L-Werte und R-Werte 64 R-Wert ( Rechts vom Zuweisungsoperator ) Jeder L-Wert kann als R-Wert benutzt werden (aber nicht umgekehrt).

L-Werte und R-Werte 64 R-Wert ( Rechts vom Zuweisungsoperator ) Jeder L-Wert kann als R-Wert benutzt werden (aber nicht umgekehrt). Jedes e-bike kann als normales Fahrrad benutzt werden, aber nicht umgekehrt.

L-Werte und R-Werte 64 R-Wert ( Rechts vom Zuweisungsoperator ) Jeder L-Wert kann als R-Wert benutzt werden (aber nicht umgekehrt). Darüber hinaus: Ausdruck der kein L-Wert ist Beispiel: Literal 0 R-Wert kann seinen Wert nicht ändern.

L-Werte und R-Werte 65

L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; // b = a^2 b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; L-Wert } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 L-Wert // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; R-Wert

L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> L-Wert int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; } // computation int b = a a; // b = a^2 b = b * b; // b = a^4 R-Wert // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0;

L-Werte und R-Werte 66 // Program: power8.cpp // Raise a number to the eighth power. #include <iostream> int main() { // input std::cout << "Compute a^8 for a =? "; int a; std::cin >> a; // computation int b = a a; L-Wert // b = a^2 b = b * b; // b = a^4 } // output b b, i.e., a^8 std::cout << a<< "^8 = " << b * b << ".\ n"; return 0; L-Wert