Grundlagen der Informatik 2. Typen

Ähnliche Dokumente
Ein- und Ausgabe (I/O)

Programmierkurs C++ Variablen und Datentypen

Grundlagen der Informatik 4. Kontrollstrukturen I

Grundlagen der Informatik 5. Kontrollstrukturen II

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

2. Programmierung in C

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Kap 2. Aufbau eines Programms Variablen, Konstanten und Deklarationen

Escape-Sequenzen. Dr. Norbert Spangler

Grundlagen der Informatik 11. Zeiger

Übersicht. Peter Sobe 1

Grundlagen der Informatik 6. Arrays I

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Projekt 3 Variablen und Operatoren

Elementare Datentypen in C++

Grundelemente von C++

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Kapitel 2. Elementare Datentypen, Konstanten und Variablen

Gestrige Themen. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen. Schleifen

Grundlagen der Informatik 2. Operatoren

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

JAVA-Datentypen und deren Wertebereich

Hochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.

Ein und Ausgabe Grundlagen C++ E/A System operiert über streams streams sind logische Geräte, die Informationen produzieren bzw. verbrauchen streams

Einstieg in die Informatik mit Java

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

In C++ kann man fünf Teilsprachen, die bezüglich Syntax und Semantik differieren, unterscheiden. Objektorientierte Erweiterungen von C

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Einführung in die Programmierung Wintersemester 2008/09

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

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Einführung in die Programmierung Wintersemester 2011/12

Einstieg in die Informatik mit Java

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue

Programmieren in C / C++ Grundlagen C 2

Unterlagen. CPP-Uebungen-08/

Funktionales C++ zum Ersten

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

C++ - Einführung in die Programmiersprache Variablen und Konstanten. Leibniz Universität IT Services Anja Aue

Der Umgang mit Zahlen. Ein wesentlicher Unterschied: int oder float. Beispiel: int oma, opa, summe; float messwert, mittel; char zeichen, z1, z2, c;

Ein erstes Java-Programm

Hydroinformatik I: Hello World

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Einfache Datentypen, Operatoren und Ausdrücke

Java I Vorlesung Imperatives Programmieren

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

2. Datentypen und Deklarationen

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Programmierkurs Java

C- Kurs 03 Ausdrücke und Operatoren

Grundlagen der Programmierung

Einstieg in die Informatik mit Java

Informatik I (D-MAVT)

Algorithmen zur Datenanalyse in C++

8. Referenzen und Zeiger

Programmiersprachen Einführung in C

5. Elementare Befehle und Struktogramme

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

3. Java - Sprachkonstrukte I

Klausur Informatik I WS 2006/2007

Wo sind wir? Übersicht lexikale Struktur von Java

Polymorphismus 179. Function.h. #include <string>

Kurze Einführung in die Programmiersprache C++ und in Root

Definition: Algorithmus

Kap 9. Bitoperationen und -strukturen

Dr. Monika Meiler. Inhalt

Abgeleitete Datentypen

Programmieren in C/C++ und MATLAB

Auswahlen (Selektionen)

Grundlegende Anweisungen in C++

Objektorientierte Programmierung mit C++ SS 2007

Angewandte Mathematik und Programmierung

Gestrige Themen. Erste Schritte in Linux. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen

5. Abgeleitete Datentypen

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

16. März 2016 artb5-v1.1

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

Elementare Konzepte von

Klausur Programmieren 1 SS 2017

Physische Datenstrukturen

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung!

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Algorithmen und Datenstrukturen

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

18. Bitmanipulationen. Bitoperationen Bitmasken

2.5 Primitive Datentypen

Einstieg in die Informatik mit Java

Programmiertechnik Skalare Typen,Variablen, Zuweisungen

Einführung in die Programmierung

Die Programmiersprache C

C++ Einführung. und Datenanalyse mit ROOT. Jörg Marks, Physikalisches Institut, INF 226

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

Programm-Ablauf. int main() // Beispiel- Struktur eines Programmes. prepare_everything(); read_input(); calculate_result(); write_output();

Transkript:

Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1

Wiederholung // root calculation #include <iostream> #include <cmath> using namespace std; void main() { const double precision = 1.0e-3; double x,a; // input cout << "\n input a = "; cin >> a; // plausibility check if ( a <= 0 ) cout << "\n a must be > 0!"; else { // calculate root x = a; do // loop begin x = x - (x*x-a)/(2*x); while ( abs(x*x-a) > precision ); // loop end // result cout << "\n root of " << a << " = " << x; } } Grundlagen der Informatik (Alex Rempel) 2

Eingangsdaten, Resultat, Zwischenergebnisse? Beispiel Wurzelberechnung: Eingangsdaten: Genauigkeit, Eingangszahl Zwischenergebnisse: Zahlen Resultat: Zahl Typen? Grundlagen der Informatik (Alex Rempel) 3

Eingangsdaten, Resultat, Zwischenergebnisse? Beispiel Wurzelberechnung: Eingangsdaten: Genauigkeit, Eingangszahl Zwischenergebnisse: Zahlen Resultat: Zahl Typen? Genauigkeit: reelle Zahl (Gleitkomma) Eingangszahl: ganze positive Zahl Zwischenergebnisse: reelle Zahlen (Gleitkomma) Resultat: reelle Zahl (Gleitkomma) Grundlagen der Informatik (Alex Rempel) 4

Eingangsdaten, Resultat, Zwischenergebnisse? Beispiel Wurzelberechnung: Eingangsdaten: Genauigkeit, Eingangszahl Zwischenergebnisse: Zahlen Resultat: Zahl Welche variabel? Welche konstant? Grundlagen der Informatik (Alex Rempel) 5

Eingangsdaten, Resultat, Zwischenergebnisse? Beispiel Wurzelberechnung: Eingangsdaten: Genauigkeit, Eingangszahl Zwischenergebnisse: Zahlen Resultat: Zahl Welche variabel? Welche konstant? Genauigkeit: Gleitkomma-Zahl, konstant Eingangszahl: ganze positive Zahl, variabel Zwischenergebnisse: Gleitkomma-Zahl(!), variabel Resultat: Gleitkomma-Zahl, variabel Grundlagen der Informatik (Alex Rempel) 6

Typen: Wahrheitswert und Ganzzahlen Typ Bits Min (signed) Max (signed) Min (unsigned) Max (unsigned) bool 8 - - (0) false (255) true char 8-128 127 0 255 short int 16-32.768 32.767 0 65535 int 32-2.147.483.648 2.147.483.647 0 4.294.967.295 long int 32-2.147.483.648 2.147.483.647 0 4.294.967.295 Menschen rechnen in 10ern, Maschinen in Bits 1 Bit [0..1] (=> Zweiersystem) 2 Bits [0..3], 3 Bits [0..7], 4 Bits [0..15] 8 Bits = 1 Byte Grundlagen der Informatik (Alex Rempel) 7

Numerische Basen dezimal 794(10) => 7*10^2 + 9*10^1 + 4*10^0 = 794(10) oktal 1432(8) => 1*8^3 + 4*8^2 + 3*8^1 + 2*8^0 = 794(10) hexadezimal 31A(16) => 3*16^2 + 1*16^1 + 10*16^0 = 794(10) binär 1100011010(2) => 1*2^9 +... 0*2^0 = 794(10) 2-er Systeme: binär, oktal, hex, aber nicht dezimal binär: 1100011010 oktal: 1 100 011 010 => 1432 hex: 11 0001 1010 => 31A Grundlagen der Informatik (Alex Rempel) 8

Typen: Gleitkommazahlen Typ Bits Min Max float 32 3.4*10^-38 3.4*10^38 double 64 1.7*10^-308 1.7*10^308 long double 80 1.2*10^-4932 1.2*10^4932 Gleitkommazahl? Beispiel Begrenzung: 3 Ziffern hinter dem Komma (Mensch: 0.12*0.12 = 0.0144) Fixkomma: 0.120*0.120 = 0.014 Gleitkomma: 1.2e-1*1.2e-1 = 1.44e-2 Grundlagen der Informatik (Alex Rempel) 9

Typen: Wahrheitswerte (bool) Logischer Wert 'true' oder 'false' Echter Wert 'true =!0' und 'false=0' 3, 9A, -44 sind also alles 'true' Werte Typen: leerer Typ (void) wenn keine Typangabe möglich Typen: Character (char) Steht für eine Zahl (Byte) Zahl ist gleichzeitig ein Zeichen aus der ASCII Tabelle Grundlagen der Informatik (Alex Rempel) 10

Grundlagen der Informatik (Alex Rempel) 11

Grundlagen der Informatik (Alex Rempel) 12

Typen: Zeichenkette (string) Voraussetzung: '#include <string>' Speichert und modifiziert ganze Zeichenketten "lolcat" "EIT" "qwerty1234" "@.-" etc. Typen: Aufzählung (enum) Eigendefinierte ganzzahlige Aufzählungen, z.b: 'enum grades {one,two,three,four,five,six};' Deutung: 'one' ist Ganzzahl 0, 'six' ist Ganzzahl 5 Dient u.a. zur besseren Lesbarkeit von Code Grundlagen der Informatik (Alex Rempel) 13

Typ Bits Min (signed) Max (signed) Min (unsigned) Max (unsigned) bool 8 - - (0) false (1..255) true char 8-128 127 0 255 short int 16-32.768 32.767 0 65535 int 32-2.147.483.648 2.147.483.647 0 4.294.967.295 long int 32-2.147.483.648 2.147.483.647 0 4.294.967.295 Typ Bits Min Max float 32 3.4*10^-38 3.4*10^38 double 64 1.7*10^-308 1.7*10^308 long double 80 1.2*10^-4932 1.2*10^4932 Die Angaben sind implementierungsabhängig (siehe limits.h und float.h) Grundlagen der Informatik (Alex Rempel) 14

Namensgebung Regeln 2. Typen muss mit Unterstrich oder Buchstaben anfangen besteht aus Unterstrichen, Buchstaben und Ziffern Groß- und Kleinschreibung ist relevant C++ Schlüsselwörter sind verboten Empfehlung Unterstrich am Beginn vermeiden aussagekräftige, beschreibende Namen verwenden 'counter' statt 'cnt', 'zinssatz' statt 'zins' u.s.w. Grundlagen der Informatik (Alex Rempel) 15

Deklaration und Zuweisung Genauigkeit: Gleitkomma-Zahl, konstant (0.001) Konstante: modifier 'const' vor dem Typ const double precision = 1.0e-3; const double precision = 0.001; Eingangszahl: ganze positive Zahl, variabel unsigned int input = 0; unsigned int input (0); Zwischenergebnisse: Gleitkomma-Zahl(!), variabel double x = 0; double x = input; Resultat: Gleitkomma-Zahl, variabel double result = 0; Grundlagen der Informatik (Alex Rempel) 16

Literalen (Literale in 'int x = 4;' ist die '4') Numerisch 0 (int) -043(int, oktal) 0xA4 (int, hex) 0.3 (double) -1.8e5 (double) 11.4f (float) Zeichen: '0' (char) '\23' (char, oktal) '\n' (char, newline) Zeichenketten: "here be dragons!" Wahrheitswerte: true false u.w. (probiert verschiedene mit einfacher Ausgabe aus) Grundlagen der Informatik (Alex Rempel) 17

Speicher, Speicherbedarf Speicher komplett Grundlagen der Informatik (Alex Rempel) 18

Speicher, Speicherbedarf Speicher komplett Speicher Prozess Grundlagen der Informatik (Alex Rempel) 19

Speicher, Speicherbedarf Wert Adresse 0 1 2 3... 00 FF 45 A2 Speicher Prozess Kleinster Wert ist ein Byte Adresse 32b oder 64b Adressraum begrenzt Anfangswerte sind zufällig Deswegen bei Deklaration immer zuweisen! Grundlagen der Informatik (Alex Rempel) 20

Speicher, Speicherbedarf Deklaration: Variable bekommt automatisch freien Speicher zugewiesen Adresse ist in der Variable enthalten Zuweisung: Speicher unter der Adresse der Variable wird beschrieben Beispiel: Variable 'c', Größe ein Byte unsigned char c; Adresse: 2 Inhalt: 0x45 (69 'E') c = '0'; Adresse: 2 Inhalt: 0x30 (48 '0') Grundlagen der Informatik (Alex Rempel) 21

Speicher, Speicherbedarf Deklaration: Variable bekommt automatisch freien Speicher zugewiesen Adresse ist in der Variable enthalten Zuweisung: Speicher unter der Adresse der Variable wird beschrieben Beispiel: Variable 'c', Größe ein Byte unsigned char c; Adresse: 2 Inhalt: 0x45 (69 'E') c = '0'; Adresse: 2 Inhalt: 0x30 (48 '0') c = c + 1; Adresse: 2 Inhalt: 0x31 (49 '1') c = c + 250; Adresse:? Inhalt:? Grundlagen der Informatik (Alex Rempel) 22

Speicher, Speicherbedarf Deklaration: Variable bekommt automatisch freien Speicher zugewiesen Adresse ist in der Variable enthalten Zuweisung: Speicher unter der Adresse der Variable wird beschrieben Beispiel: Variable 'c', Größe ein Byte unsigned char c; Adresse: 2 Inhalt: 0x45 (69 'E') c = '0'; Adresse: 2 Inhalt: 0x30 (48 '0') c = c + 1; Adresse: 2 Inhalt: 0x31 (49 '1') c = c + 250; Adresse: 2 Inhalt: 0x2B (43 '+') Überschreitung des Wertebereichs Grundlagen der Informatik (Alex Rempel) 23

Speicher, Speicherbedarf Deklaration: Variable bekommt automatisch freien Speicher zugewiesen Adresse ist in der Variable enthalten Zuweisung: Speicher unter der Adresse der Variable wird beschrieben Beispiel: Variable 'n', Größe vier Bytes unsigned int n; Adresse: 1 Inhalt: 0xA3000348 Adresse 1: zeigt auf das erste Byte, reserviert aber 3 dazu 'n' belegt also Adressen 1..4 Grundlagen der Informatik (Alex Rempel) 24

Ein-/Ausgabe C: 'stdio.h' Funktionen veraltet, nicht komfortabel, fehleranfällig immer noch in vielen Programmen vorhanden C++: 'iostream' stream-basiert 'cout <<' Ausgabe (überladener Operator) d.h. Typumwandlung erfolgt automatisch 'cout << dsomething << ilolcats << 42 << endl;' 'cin >>' Eingabe (überladener Operator) Eingabe muss zum Argumententyp passen sonst Zeichenkette nicht weiter gelesen 'cin >> dsomething >> ilolcats;' (Eingabe: 89.97 42) Grundlagen der Informatik (Alex Rempel) 25

Ein-/Ausgabe Shift-Ketten ('... <<... <<...') Unterschiedliche Compiler führen die Kette in unterschiedliche Richtungen aus Beispiel: 'int x = 12;' 'cout << x << " : " (x=x*3);' Ausgabe A: '36 : 36' (rechts nach links) Ausgabe B: '12 : 36' (links nach rechts) Grundlagen der Informatik (Alex Rempel) 26

Ein-/Ausgabe Formatierungen Durch Manipulatoren direkt im Stream dec, oct, hex flush endl alles danach: dezimal, oktal oder hexadezimal Puffer leeren bzw. jetzt ausgeben Ausgabe von '\n' (Zeilenumbruch) und flush Aufruf setw(int n) einmalig für folgende Ausgabe: minimale Ausgabebreite setprecision(int n) Ausgabegenauigkeit setfill(char c) Fülle bis angegebener Größe mit c Grundlagen der Informatik (Alex Rempel) 27

Formatierungen Beispiele: 2. Typen Ein-/Ausgabe 'cout << setw(10) << setfill('0') << 42 << endl;' 'cout << setw(6) << setprecision(4) << 4.24242 << endl;' Oberen zwei Zeilen direkt nacheinander: Probiert verschiedene Formatierungen selbst aus Grundlagen der Informatik (Alex Rempel) 28