Elementare Datentypen in C++

Ähnliche Dokumente
Unterlagen. CPP-Uebungen-08/

4.2 Programmiersprache C

Probeklausur Name: (c)

Algorithmen zur Datenanalyse in C++

Herzlich willkommen!

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

+ C - Array (Vektoren, Felder)

9. Vektoren. (auch Felder/array)

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

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

RO-Tutorien 3 / 6 / 12

Grundlagen der Informatik 2. Typen

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung

Programmierkurs C++ Variablen und Datentypen

Variablen, Konstanten und Datentypen

Escape-Sequenzen. Dr. Norbert Spangler

Arrays (Felder/Vektoren)

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

GI Vektoren

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

RO-Tutorien 15 und 16

ÜBUNGS-BLOCK 7 LÖSUNGEN

Informatik I - Übung 2 Programmieren in Eclipse

Kapitel 2. Elementare Datentypen, Konstanten und Variablen

2. Programmierung in C

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

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

Hydroinformatik I: Hello World

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Tag 4 Repetitorium Informatik (Java)

Hello World! Eine Einführung in das Programmieren Variablen

10 Die Programmiersprache C99: Zusammenfassung

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

Projekt 3 Variablen und Operatoren

Einführung in die Programmiersprache C

Numerische Methoden und Algorithmen in der Physik

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

Vorlesungsprüfung Programmiersprache 1

2.1 Fundamentale Typen

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Ganze Zahlen, Ausdrücke Variablen/Konstanten

2. Programmierung in C

Grundlagen von C# - 1

Vorkurs C++ Programmierung

2. Programmierung in C

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

II ELEMENTARES PROGRAMMIEREN IN C++

Vorkurs Informatik WiSe 16/17

2 Sprachelemente von C und C++

2. Programmierung in C

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

Wertebereich und Genauigkeit der Zahlendarstellung

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Tag 4 Repetitorium Informatik (Java)

Ausgabe:

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

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

Funktionen: Rückgabewert

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

Programmierung mit C Zeiger

Informationsverarbeitung im Bauwesen

Programmieren in C/C++ und MATLAB

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

Rechenzentrum. Programmieren in C. Simone Knief Rechenzentrum der CAU

Grundlagen der Objektorientierten Programmierung - Statische Arrays

Grundlagen und Konzepte von C Datenstrukturen

Zeiger, Arrays und Strings in C und C++

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

Objektorientierte Programmierung mit C++ SS 2007

Transkript:

Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum

char Der char Datentyp ist groß genug, um ein Zeichen, des auf dem System benutzten Zeichensatzes, zu speichern Typischerweise: 1 Zeichen = 8 Bit = 1 Byte Es hängt von Compiler ab, ob ein char vorzeichenbehaftet ist oder nicht z.b. char a = 'a';

ASCII Tabelle 1/2 Zeichen werden als char gespeichert, wobei jedes Zeichen einem numerischen Wert entspricht auf den meisten Systemen sind Zeichen 1 Byte gross und die Zuordnung der Zahlenwerte zu den Zeichen wird über eine Tabelle erledigt die am weitest verbreitete Tabelle ist die ASCII Tabelle (American Standard Code for Information Interchange)

ASCII Tabelle 2/2 Auf den meisten Linux/Unix Sytemen kann man die ASCII Tabelle mit dem Befehl man ascii ansehen Die Tabelle enthält 128 Zeichen Die Buchstaben A-Z haben die Werte 65-90 Die Buchstaben a-z haben die Werte 97-122 Die Ziffern 0-9 haben die Werte 48-57

char Definition char a='0'; char a=48; char b='a'; char b=65; b+=2; // b = 67 = 'C'

(unsigned ) short int short int = short = signed short = signed short int wenn nicht anders angegeben ist ein short int immer vorzeichenbehaftet z.b. unsigned short x = 12;

(unsigned ) long int long int = signed long int = long wenn nicht anders angegeben ist ein long int immer vorzeichenbehaftet z.b. Long x = -341245671L;

(unsigned) long long int long long int = long long wenn nicht anders angegeben ist ein long long int immer vorzeichenbehaftet ist eine Erweiterung zu C und nicht C++!!! die meisten C++ Compiler stellen den Datentyp dennoch zur Verfügung, auch wenn er manchmal anders heisst

float / double / long double float, double and long double = Gleitkommazahlen Werte sind immer vorzeichenbehaftet z.b. float f = 3.14159f; double d = 3.14159; long double ld = 3.14159L;

sizeof mit sizeof kann man die Grösse eines Objektes oder eines Datentyps in Byte ermitteln. zwei Notationen sizeof(name des Datentyps) sizeof VARIABLENNAME

sizeof Beispiel Größen der Datentypen in GCC 4.0.1 auf MacOS X 10.4: short boolsize=sizeof(bool); // 1 short charsize=sizeof(char); // 1 short shortsize=sizeof(short); // 2 short intsize=sizeof(int); // 4 short longsize=sizeof(long); // 4 short longlongsize=sizeof(long long); // 8 short floatsize=sizeof(float); // 4 short doublesize=sizeof(double); // 8 short longdblsize=sizeof(long double); // 16

Größenbeschränkungen der einfachen Datentypen sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long) sizeof(*) = sizeof(unsigned *) = sizeof(signed *) sizeof(float) <= sizeof(double) <= sizeof(long double)

void Pseudodatentyp es gibt keine Objekte vom Typ void z.b. void v; // das ist falsch void wird zum Beispiel benutzt, um anzugeben, dass eine Funktion keinen Rückgabewert besitzt.

Was sind Funktionen? Eine Funktion ist ein in sich geschlossener, wiederverwendbarer Programmteil, der eine bestimmte Aufgabe erfüllt. Funktionen können Argumente übernehmen und einen Wert zurückliefern.

Aufbau einer Funktion Funktionen besitzen: einen Namen einen Rückgabewert eine Liste von Argumenten einen Funktionskörper double meinefunktion(int zahl1,int zahl2) {... }

Allgemeines zu Funktionen Werden meist aufgeteilt in eine Deklaration und in eine Definition. Jede Funktion für die ein Rückgabewert deklariert wurde, muss ein Objekt dieses Typs mit der return Anweisung zurückliefert werden Es darf mehrere return Anweisungen in einer Funktion geben und sie dürfen an beliebigen Stellen stehen

Funktionsnamen Funktionsnamen müssen mit einem Buchstaben oder einem Unterstrich (_) beginnen, der Rest darf aus Buchstaben Zahlen und Untertrichen bestehen. Funktionsnamen dürfen nicht identisch sein mit irgendwelchen C++ Schlüsselwörtern wie z.b. double oder class

Funktionssignatur Die Kombination aus dem Namen und der Argumentenliste bezeichnet man als die Signatur der Funktion double meinefunktion(int,double,char); Der Rückgabewert ist nicht Teil der Signatur! Es darf keine zwei Funktionen mit derselben Signatur in einem Programm geben

Funktionsdeklaration Eine Funktion muss deklariert werden bevor man sie benutzen kann. Die Argumente in der Argumentenliste dürfen Namen haben, es ist aber nicht zwingend notwendig. Die Argumentenliste darf leer sein. Soll eine Funktion keinen Wert zurückliefern, hat sie den Rückgabewert void.

Deklarations Beispiele int meinefunktion(); int meinefunktion(void); void meinezweitefunktion(int a); void meinezweitefunktion(int); double divide(int,int);

Funktionsdefinition Definition sieht aus wie Deklaration, nur wird der Funktionskörper anstelle das Semikolons angegeben. Eine Funktion darf genau einmal in einem Programm definiert werden Die Argumente in der Argumentenliste müssen Namen haben, wenn sie im Funktionskörper benutzt werden Funktionen mit Rückgabetyp void brauchen keine return Anweisung

Funktionsdefinition - Beispiel int meinefunktion(double x) {... return EIN_INT; } die return Anweisung kann an beliebiger Stelle im Funktionskörper stehen. es kann auch mehrere return Anweisung in einem Funktionskörper geben.

Benutzen von Funktionen unsigned int fakultaet(unsigned int zahl) {... } int main() { int x=6; std::cout << x <<! << = ; std::cout << fakultaet(x) << \n ; return 0; }

Felder (Arrays) Datenstruktur um eine Menge gleichartiger Objekte zu speichern. Felder können beliebig viele Dimensionen haben. Um ein Feld zu deklarieren werden hinter den Variablennamen noch eckige Klammern geschrieben. In den Klammern steht die Länge des Feldes Bei mehrdimensionale Feldern gibt man so viele Klammerpaare an, wie das Feld Dimensionen besitzt.

Deklaration von Feldern int a[5]; char c[5]; int a[2][2]; float c[3][3][4];

Deklaration und Initialisierung von Feldern int a[5]={2,4,6,8,10}; c[4]={'t','e','s','t'}; int a[2][2]={{1,2},{3,4}}; // folgendes ist auch gültig, //sollte man aber nicht machen int a[2][2]={1,2,3,4};

Deklaration und Initialisierung von Feldern Wird ein Feld bei der Deklaration gleichzeitig initialisiert, so kann man die Größe der äußersten Dimension weglassen z.b. int a[]={1,2,3,4}; // int a[4]={1,2,3,4} int a[][]={{1,2},{3,4}}; // falsch int a[][2]={{1,2},{3,4}}; // richtig

Zugriff auf Felder Einzelne Elemente werden über ihren Index im Feld angesprochen. Das erste Element hat den Index 0. z.b. int a[]={1,2,3,4,5}; int x=a[2]; ++x; a[4]=x;

C Strings (char Felder) Zeichenkette in C sind eindimensionale Felder vom Typ char. C Strings sind 0 terminiert, d.h. enden mit dem Zeichen '\0' es gibt eine Reihe von Funktionen, um solchen Zeichenketten zu manipulieren (#include <string.h>) Das Arbeiten mit C Strings birgt gewisse Sicherheitsrisiken (e.g. Pufferüberlauf)

Deklaration and Initialisierung eines C Strings char s[]= Test ; char s[]={'t','e','s','t','\0'}; char s[]={'t','e','s','t', 0 };

Einfache Eingabe mit cin entsprechend der Ausgabe mit cout gibt es in iostream auch ein Objekt, um Daten von der Tastatur einzulesen (cin) z.b. int x=0; std::cin >> x;

Einlesen einer Zeichenkette von der Tastatur char nachname[20]; std::cin >> nachname; Die Eingabe wird mit RETURN beendet und alles bis zum ersten Leerzeichen-Zeichen (whitespace, tab, return) wird in der Variable nachname gespeichert.

Pufferüberlauf char nachname[20]; std::cout << Nachname: ; std::cin >> nachname; Leutheusser-Schnarrenberger

Eingabe mit getline Das Objekt cin verfügt über eine Methode mit der sich eine ganze Zeile einlesen lässt. Der Methode werden zwei Argumente übergeben 1) die C String Variable, in die die Zeichenkette gespeichert werden soll 2) wieviele Zeichen die Funktion lesen soll Sicherer als über >>-Operator in Verbindung mit C Strings Liest eine ganze Zeile mit Leerzeichen (whitespaces)

getline - Beispiel #include <iostream> int main() { char name[200]; std::cout << Name: ; std::cin.getline(name,200); std::cout << Sie heissen ; std::cout << name <<.\n ; return 0; }