Inhalt. Peter Sobe 63. Felder in C

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

2. Programmierung in C

2. Programmierung in C

Interne Darstellung von Gleitkommazahlen

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

+ C - Array (Vektoren, Felder)

Felder (1) Allgemeines

2. Programmierung in C

Übungspaket 23 Mehrdimensionale Arrays

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Programmiersprachen Einführung in C

Programmieren in C/C++ und MATLAB

9. Vektoren. (auch Felder/array)

C- Kurs 07 Höhere Datentypen

Einstieg in die Informatik mit Java

Übungspaket 23 Mehrdimensionale Arrays

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

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

2. Programmierung in C

Einstieg in die Informatik mit Java

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang

Felder fester Länge (1)

Arrays (Felder/Vektoren)

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

GI Vektoren

Algorithmen und Datenstrukturen II

Übungspaket 14 Eindimensionale Arrays

Zeiger (engl. Pointer)

Dynamischer Speicher

Dr. Monika Meiler. Inhalt

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Arrays, Zeiger und Funktionen (call by reference)

Praxis der Programmierung

Das folgende Programm demonstriert, wie man Speicheradressen von Variablen ermittelt.

Dr. Monika Meiler. Inhalt

F Zeiger, Felder und Strukturen in C

2. Programmierung in C

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

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Praxis der Programmierung

Ausgabe:

Elementare Datentypen in C++

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

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

6. Zeiger Allgemeines Definition eines Zeigers

Kapitel 2/3: Darstellung von Information / Kontrollstrukturen. Inhalt. Zusammengesetzte Datentypen Wiederholungen (in Programmen)

Einführung in die Programmierung

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

1 Statische Felder. Hinweise zur Speicherung von Feldern in C++ und C

Einstieg in die Informatik mit Java

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

Inhalt. 4.9 Typen, Variable und Konstante

Vorkurs C++ Programmierung

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

2. Programmierung in C

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

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

Wertebereich und Genauigkeit der Zahlendarstellung

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

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Algorithmen und Datenstrukturen

Kapitel 8. Adressen und Zeiger

Auswahlen (Selektionen)

Reihungen und Prozeduren

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

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

Kapitel 6. Programmierkurs. 6.0 Felder (Arrays) Deklaration von Feldern. Felder (Arrays) Mehrdimensionale Arrays. Birgit Engels, Anna Schulze WS 07/08

Aufgaben zur Klausurvorbereitung / Musterlösung

Zeiger in C und C++ Zeiger in Java und C/C++

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden

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

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.

Projekt Systementwicklung

Programmierung mit C Zeiger

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

C-Arrays vs. C++-Container

3. Exkurs in weitere Arten der Programmierung

Abgeleitete Datentypen

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

Algorithmen und Datenstrukturen

Dr. Monika Meiler. Inhalt

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.

Operatoren (1) Operatoren (2)

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

C++ Teil 6. Sven Groß. 23. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 15

Arrays,Strings&Pointer in C/C++

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

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

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

Dr. Monika Meiler. Inhalt

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

Inhalt. 4.8 Strukturen in C

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik

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

2. Programmierung in C

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein

Transkript:

Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Streuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern 4.6 Zeichen und Zeichenketten 4.7 Funktionen Peter Sobe 63 Felder in C Felder stellen eine Reihung von Elementen gleichen Typs dar. Man spricht auch von Vektoren oder arrays. Durch die Reihung (hintereinander speichern) wird eine Ordnungsrelation über die Nummer (Position) des Elementes festgelegt. Über diese Nummer (Index) wird dabei auch der Zugriff zum betreffenden Element vorgenommen. In C hat das 1.Element die Nummer 0! Element 0 Element 1 Element 2 Element n-1 In C werden Felder durch die Verwendung der Indexklammern [ ] gekennzeichnet: Beispiel: int vektor[10]; R.Großmann / P. Sobe 64

Deklaration von Feldern in C Felder als eine spezielle Datenstruktur müssen deklariert werden. Die Deklarationsanweisung legt den Namen des Feldes, die Anzahl der Elemente und den Typ der Elemente fest. Beispiel: float a[10]; a ist der Name des Feldes 10 ist die Anzahl der Elemente (a 0 a 1 a 2... a 9 ) float ist der Typ der Elemente R.Großmann / P. Sobe 65 Deklaration von Feldern in C float a[10]; Man beachte, dass die Anzahl der Elemente eine Konstante sein muss. D.h. sind von Fall zu Fall unterschiedliche Elementanzahlen vorhanden, so muss trotzdem das Feld mit einer konstanten, max. notwendigen Elementeanzahl deklariert werden. Innerhalb dieser maximalen Anzahl kann jeweils mit unterschiedlich vielen Elementen gearbeitet werden. Der Speicherplatz ist für die maximale Anzahl reserviert, aber es werden aktuell ggf. weniger Elemente belegt. R.Großmann / P. Sobe 66

Initialisierung von Feldelementen / Zugriff auf Feldelemente Feldelemente können in der Deklarationsanweisung mit Werten belegt werden. Beispiel: float a[10]={-3.22,0.0,1,-7.234,55.5,6.6,-0.77,8,0.09,3; Der Zugriff auf die Elemente eines Feldes erfolgt über den Index (Positionsnummer) des Elementes. Dieser Index wird in der Indexklammer angegeben. Beispiel: es soll auf das 7.Element von a zugegriffen werden: x = a[6]; (da das 1.Element den Index 0 hat, ist 6 der Index des 7.Elementes) Bei Zugriffen auf Feldelemente ist stets zu prüfen, ob der Index in den Deklarationsgrenzen des Feldes liegt. R. Großmann / P. Sobe 67 Beispiel eines Feldprogramms #include <stdio.h> #include <math.h> //arithmetisches Mittel einer Messreihe void main() { int i,n; float a[50],s; printf("\neingabe Anzahl=");scanf("%d",&n); // n<=50 printf("\neingabe des Vektors:\n"); for (i=0;i<n;i++) //Eingabe der n Feldelemente { printf("a[%2d]=",i); scanf("%f", &a[i] );; //auch hier ist der &-Operator zu s=0; //verwenden for (i=0;i<n;i++) s=s+a[i]; //Zählschleifen sind die typischen s=s/n; //Steuerfluss-Konstr. für Felder printf("\n arithmetisches Mittel=%f \n",s); R.Großmann / P. Sobe 68

Mehrdimensionale Felder Mehrdimensionale Felder (z.b. Matrizen als 2-dimensionale Felder in der Mathematik) werden analog zum eindimensionalen Fall deklariert. Eine zusätzliche Dimension wird durch eine weitere Indexklammer angegeben. Beispiel: float matrix[3][4]; dies ist eine Matrix mit 3 Zeilen und 4 Spalten. Der Zeilenindex wird immer zuerst variiert. Diese Matrix hat die Struktur: a 00 a 01 a 02 a 03 a 10 a 11 a 12 a 13 a 20 a 21 a 22 a 23 R.Großmann / P. Sobe 69 Initialisierung mehrdimensionaler Felder / Zugriff auf Elemente Mehrdimensionale Felder können auch in der Deklarationsanweisung initialisiert werden. Dabei muss die Verarbeitungsreihenfolge Zeile -> Spalte usw. beachtet werden. Beispiel: float matrix[3][4]={ {1,2,3,4, {5,6,7,8, {9,10,11,12 ; dies ist eine Matrix mit 3 Zeilen und 4 Spalten. Der Zugriff auf Elemente erfolgt analog durch Angabe der Folge der Indexklammern in der Reihenfolge Zeile, Spalte, usw.. Da die Indizierung mit Null beginnt, selektiert die Angabe matrix[2][3] die dritte Zeile, und darin das vierte Element, also 12. R.Großmann / P. Sobe 70

Mehrdimensionale Felder - Beispiel Beispiel Matrix-Transposition: #define N 10 float matrix[n][n]; float t; int zeile, spalte; // Eingabe Matrix // for(zeile=0; zeile<n; zeile++) { for(spalte=zeile+1;spalte<n; spalte++) { // Tausch matrix[zeile][spalte] mit matrix[zeile_neu][spalte_neu] // wobei zeile_neu = spalte und spalte_neu = zeile t = matrix[zeile][spalte]; matrix[zeile][spalte] = matrix[spalte][zeile]; matrix[spalte][zeile] = t; R.Großmann / P. Sobe 71