Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Ähnliche Dokumente
Programmierung I Arrays und Strings

Strings (Zeichenketten)

C-Kurs 2011: Arrays, Strings, Pointer

Arrays (Felder/Vektoren)

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Ulrich Stein

Abgeleitete Datentypen

5. Abgeleitete Datentypen

5. Abgeleitete Datentypen

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

Programmiersprachen Einführung in C

Zeichenketten. Peter Sobe

Grundlagen der Programmierung in C Klassen

Programmierkurs C++ Variablen und Datentypen

Einführung in die Programmiersprache C

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

C-Kurs 2010 Pointer. 16. September v2.7.3

Praxis der Programmierung

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Informatik I Das Typsystem (am Bsp. Python vs. C++)

Arrays,Strings&Pointer in C/C++

Informatik I Das Typsystem (am Bsp. Python vs. C++)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Rechnungen, wo kein sinnvoller Wert rauskommt Bsp.: 1/0, *0, sqrt(-1.0) Beispiel: Quadratische Gleichungen

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

Algorithmen und Datenstrukturen

Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C

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

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

9. Vektoren. (auch Felder/array)

Grundlagen der Programmierung in C++ Zusammengesetzte Typen

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

INE1 Mehr zu Funktionen Ausserdem: Strings (Saiten) Call by value, struct's Call by reference Array Parameter Strings und Stringfunktionen

2. Programmierung in C

Informatik für Mathematiker und Physiker Woche 7. David Sommer

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

F Zeiger, Felder und Strukturen in C

GI Vektoren

Zeichenketten (Strings)

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Felder in C. Felder stellen eine Reihung von Elementen gleichen Typs dar. Man spricht auch von Vektoren oder Arrays.

Einstieg in die Informatik mit Java

Elementare Datentypen in C++

INE1 Arrays, Zeiger, Datenstrukturen

einlesen n > 0? Ausgabe Negative Zahl

Propädeutikum. Dipl.-Inf. Frank Güttler

Schleifen Datenfelder (Arrays) Verzweigungen

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:

1. Definition. 2. Interne Speicherung der Zeichenketten. 3. Vereinbarung von Zeichenketten

c PROGRAMMIEREN Ein Kurs zum Selbststudium mit Musterlösungen Guido Krüger ADDISON-WESLEY PUBLISHING COMPANY

Probeklausur Name: (c)

Informatik I (D-MAVT)

Informatik I (D-ITET)

RO-Tutorien 3 / 6 / 12

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

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Arrays 115. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier

RO-Tutorien 15 und 16

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

2D-Arrays. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier

Arrays 120. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Angewandte Mathematik und Programmierung

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Variablen, Konstanten und Datentypen

Programmiersprachen Einführung in C

Kapitel 5: Funktionen. Inhalt

Grundlagen der Programmierung in C Funktionen

Algorithmen und Datenstrukturen II

Einführung in die Programmierung Wintersemester 2008/09

Programmier-Befehle - Woche 08

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Erste Java-Programme (Arrays und Schleifen)

C- Kurs 07 Höhere Datentypen

Inhalt. Peter Sobe 63. Felder in C

C++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

Herzlich willkommen!

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

+ C - Array (Vektoren, Felder)

Einführung Programmierpraktikum C Michael Zwick

Arrays. Einleitung. Deklarieren einer Array Variablen

8. Referenzen und Zeiger

U8 7. Übung U8 7. Übung

Informatik II. Woche 15, Giuseppe Accaputo

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer

Unterlagen. CPP-Uebungen-08/

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

2. Programmierung in C

Einführung Pointer. C-Kurs 2013, 2. Vorlesung. Nico Andy

Grundlagen der Programmierung in C++ Kontrollstrukturen

Algorithmen und Datenstrukturen. Funktionen in C. float a = sin(alpha); M. Herpers, Y. Jung, P. Klingebiel

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

Transkript:

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum floating struct union array char bool short int long float double long double G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 2 1

Problem Meßwertreihe einlesen, Mittelwert berechnen, von allen Werten abziehen, mittelwertbereinigte Reihe wieder rausschreiben Programm muß Reihe 2x durchgehen Lösung: Daten intern zunächst abspeichern, dann über diese 2x laufen Benötigt: Datenstruktur zur einfachen Verwaltung vieler Daten mit identischem Typ Lösung: neues Sprachkonstrukt G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 3 Arrays Wahrscheinlich häufigste Datenstruktur Zusammenhängender Speicherblock, der Folge von gleichartigen Elementen enthält (Bsp. Vektor) Deklaration: Typ arrayname[n]; wobei Typ ein bekannter Typ ist, n Konstante. Terminologie: Arrayname heißt "Array von Elementen des Typs T" Kurz "T-Array" (Bsp. "float-array") T selbst kann einfach oder wieder zusammengesetzt sein T heißt auch "Basistyp" G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 4 2

Beispiel: int a[8]; // 8 int's int a[2*4]; // dito Danach sieht a im Speicher so aus: a[0] a[1] a[2] a[7]???????????????? 0x1000 0x1020 Speicher ist also reserviert ("allocated"), aber nicht initialisiert! G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 5 Zugriff: arrayname[int-expr] wobei int-expr ein Ausdruck ist, der ein int liefert. Achtung Index läuft ab 0! D.h., die Elemente von int a[8] laufen von a[0],, a[7]. Kein Bounds-Checking! - Zugriff auf a[17] und a[-1] liefert höchstens ein Warnung vom Compiler! - Aber: Zugriff zur Laufzeit liefert evtl. Absturz! - I.A. erfolgt Zugriff über nicht-konstante int-expr, deren Wert man nicht kennt G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 6 3

Beispiel: int a[8]; // int-array mit 8 Elementen for ( int k = 0; k < 8; k ++ ) a[k] = k; // Initialisierung a[0] a[1] a[2] a[7] 00 01 02 03 04 05 06 07 G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 7 Mehrdimensionale Arrays Als Basistyp kann man wieder Array schreiben Beispiel: float a[6][4]; // matrix mit 6 Zeilen und 4 Spalten Allgemein: T arrayname[n 1 ][n 2 ] [n d ] deklariert d-dimensionales T-Array. Speicherlayout: Ein-dimensionales Array (logisch, da Hauptspeicher lineares Array ist) Die ersten n d Elemente entsprechen a[0] [0][0],, a[0] [0][n d -1] Die nächsten n d Elemente entsprechen a[0] [1][0],, a[0] [1][n d -1] Heißt "row-major ordering" a[0] [0] a[0] [1] a[0] [n d -1] a[1] [0] G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 8 4

Statische Initialisierung Syntax: int smallprimes[7] = { 2, 3, 5, 7, 11, 13, 17}; float rotmatrix[2][2] = { { cos(a), sin(a) }, { -sin(a), cos(a) } }; G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 9 Strings 2 Arten: "C-Strings" "C++ Strings" G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 11 5

C-Strings Ist ein 0-terminiertes Char-Array char s[6]; s[0] = 'h'; s[4] = 'o'; s[5] = '\0'; h e l l o \0 Initialisierung von Char-Arrays char s[] = "hello"; Compiler erzeugt automatisch Array passender Größe String-Konstante "hello" ist selbst 0-terminiert, also wird diese 0 mit ins Array kopiert. G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 12 Standard-Library-Funktionen zu C-Strings Bekommt man durch #include <string.h> char *strcpy( char *s1, const char *s2 ); char *strcat( char *s1, const char *s2 ); Copies the string s2 into the character array s1. The value of s1 is returned. Appends the string s2 to the string s1. The first character of s2 overwrites the terminating null character of s1. The value of s1 is returned. int strcmp( const char *s1, const char *s2 ); Compares the string s1 with the string s2. The function returns a value of zero, less than zero or greater than zero if s1 is equal to, less than or greater than s2, respectively. size_t strlen( const char *s ); Determines the length of string s. The number of characters preceding the terminating null character is returned. G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 13 6

Achtung: Kein Bounds-Checks! Verwende immer die strn -Variante, wenn möglich! Beispiel: char *strncpy( char *s1, const char *s2, size_t n ); Copies at most n characters of the string s2 into the character array s1. The value of s1 is returned. Weitere Funktionen: siehe man string Zeichenklassen: int isalpha( char c ); isalnum, isupper, isprint, isspace, Test, ob Zeichen einer bestimmten Klasse angehört. G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 14 Umwandlungen: atoi, atol, strtol, atof, strtod Umwandlung von String nach Zahl. sprintf( char *str, const char *format,... ); int toupper( char c ); int tolower( char c ); Umwandlung der built-in types nach String. Konvertierung zwischen lower-case und upper-case (gemäß dem aktuellen Locale) Einlesen / Ausgeben: printf(), puts, fprintf, fputs Ausgeben auf stdout bzw. einem anderen File gets, fgets, getchar, getc String bzw. Einzelnes Zeichen lesen. G. Zachmann Grundlagen der Programmierung in C - Arrays und Strings, Teil 1 15 7