+ C - Array (Vektoren, Felder)

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

Elementare Datentypen in C++

Inhalt. Peter Sobe 63. Felder in C

GI Vektoren

2. Programmierung in C

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

Tag 4 Repetitorium Informatik (Java)

Anregungen zu Übung 2

2. Programmierung in C

Probeklausur Name: (c)

Felder, Zeiger und Adreßrechnung

Arrays (Felder/Vektoren)

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

INHALTSVERZEICHNIS. 1 Strukturierte Datentypen. 1.1 String. 1.2 Array (Feld) 1.3 Record. 1.4 Set. 2. Erweiterungen in Pascal

Tag 4 Repetitorium Informatik (Java)

Ausgabe:

Übungspaket 23 Mehrdimensionale Arrays

Grundlagen der Objektorientierten Programmierung - Statische Arrays

Grundlagen und Konzepte von C Datenstrukturen

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

9. Vektoren. (auch Felder/array)

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

Übungspaket 23 Mehrdimensionale Arrays

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

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

Mehrdimensionale Arrays

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

Wertebereich und Genauigkeit der Zahlendarstellung

Variablen, Konstanten und Datentypen

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

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

1. Referenzdatentypen: Felder und Strings

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Algorithmen und Datenstrukturen

Viel Erfolg bei der Bearbeitung der Aufgaben!

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

Übungspaket 14 Eindimensionale Arrays

Objektorientierte Programmierung OOP Programmieren mit Java

Zeiger: Der Adressoperator &

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

Programmieren in C/C++ und MATLAB

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

RO-Tutorien 3 / 6 / 12

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

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

Erste Java-Programme (Arrays und Schleifen)

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

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

Modellierung und Programmierung 1

Programmierung mit C Zeiger

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

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

Programmierkurs C++ Datenstrukturen Seite 1

Martin Unold INFORMATIK. Geoinformatik und Vermessung

INE1 Arrays, Zeiger, Datenstrukturen

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

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

Rechenzentrum. Programmieren in C. Simone Knief Rechenzentrum der CAU

einlesen n > 0? Ausgabe Negative Zahl

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

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

2. Programmierung in C

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

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

Programmierung mit C Felder; Array

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

Unterlagen. CPP-Uebungen-08/

Sprachkonstrukte Verzweigungen und Array-Strukturen

Algorithmen und ihre Programmierung

4.2 Programmiersprache C

Java Referenzdatentypen genauer betrachtet

Schleifen Datenfelder (Arrays) Verzweigungen

ÜBUNGS-BLOCK 7 LÖSUNGEN

Informatik Vorkurs - Vorlesung 2

Transkript:

+ C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein Programm erstellen soll, was den Durchschnittsverbrauch eines PKW berechnet, muss das Programm die gefahrenen km sowie die getankten Liter pro Tankfüllung in Variablen speichern. Dafür kann man ein Array (Vektor; Matrix; Feld) einsetzen. Ein Array ist eine Ansammlung von Variablen gleichen Typs und gleichen Namens. Die einzelnen Elemente dieser Arrays werden über einen Index angesprochen. {mospagebreak title= * Deklaration u. Initalisierung} Deklaration eines Arrays (Erzeugung eines Arrays) Die Erzeugung eines Arrays geschieht entsprechend der Deklaration von Variablen der Standarddatentypen wie int, float, u.s.w. Der Unterschied ist nur die Klamma hinter dem Variablenname. Syntax: Datentyp Arrayname[Anzahl] Der Datentyp gibt an, was für Informationen in dem Array gespeichert werden können. Der Arrayname ist der Name des Arrays (frei wählbar), der im Programm genutzt wird. Die Anzahl in den eckigen Klammern gibt an, wie viel Elemente das Array haben soll. Folgende Deklaration würde ein Array für 8 Int-Werte erzeugen: Index 5 6 7 Byte 8 6 8

Deklaration Bedeutung int array[] = {,,,,5,6,7,8}; Int-Array für Zahlen 5 6 7 8 Um sich eine bildliche Vorstellung von einem Array zu machen, könnte man es mit einem Schrank vergleichen, der eine entsprechende Anzahl an Schubladen besitzt, die jeweils einen Wert aufnehmen kann. Zurück zu unserem Tank-Programm. Damit könnte man für das Beispielprogramm zwei Arrays aufbauen, um die Liter- und die km-werte zu speichern. float liter[5], km[5]; Initialisierung eines Arrays Bei der Deklaration kann man Arrays auch Werte zuweisen. Dies geschieht durch Angabe der gewünschten Werte zwischen zwei geschweiften Klammern und einem Zuweisungsoperator. (Global deklarierte Arrays werden automatisch auf initialisiert.) Beispiele: int a[] = {}; // Initialisierung des gesamten Arrays auf. int a[] = {}; // Initialisierung der ersten Zelle des Arrays auf // und der Rest auf. int a[] = {,9,8}; // Initialisierung der ersten Zellen des Arrays auf, 9, 8 // und der Rest auf.

int a[] = {,}; // Initialisierung der zweiten Zellen des Arrays auf // und der Rest auf. {mospagebreak title= * Wertzuweisung} Wertzuweisung Bei der Wertzuweisung benötigt man beim Array nicht nur den Namen des Arrays, sondern auch den Index des entsprechenden Elements, dem man den Wert zuweisen möchte. Der Index, um an die einzelnen Werte zu kommen, läuft dabei von bis (Anzahl-). Um den ersten Liter-Wert in dem Array zu speichern, wären folgende Anweisungen möglich: liter[] =.; oder scanf("%f", &liter[]); und für den letzten Wert: liter[59] =.; oder scanf("%f", &liter[59]); Arrays werden oft mit Schleifen verwendet. Wenn man z.b. jedem Element des Arrays ein bestimmten Wert zuordnen möchte. Dabei ist besonders darauf zu achten, das man durch die Schleifen nicht aus dem Array läuft, das heißt einen Index benutzt der nicht deklariert wurde. {mospagebreak title= * Größe des Array} Größe eines arrays Um die Größe eines Arrays zu bestimmen, kann man auf die sizeof()-funktion zurückgreifen. Die sizeof()-funktion ermittelt den Speicherbedarf einer Variablen. Dies gilt auch für Arrays. Folgendes Programm bestimmt die Anzahl der Elemente eines Arrays, in dem es den Speicherbedarf des Arrays durch den Speicherbedarf des Array-Datentyps teilt. #include <stdio.h> void main() {

int anzahl, array[]; anzahl = sizeof(array) / sizeof(int); printf("im Array können %d Zahlen gespeichert werden.\n", anzahl); } Bildschirmausgabe: Im Array können Zahlen gespeichert werden. {mospagebreak title= * Mehrdimensionale Arrays} Mehrdimensionale Arrays Beim Programmieren benötigt man häufig mehrdimensionale Arrays, wie zum Beispiel zwei-, drei- oder n-dimensionale Arrays. Deklaration Die Deklaration eines zweidimensionalen Arrays sähe wie folgt aus: datentyp arrayname [zeilen] [spalten] Der Datentyp gibt an, was für Informationen in dem Array gespeichert werden können. Der Arrayname ist der Name des Arrays (frei wählbar), der im Programm genutzt wird. Die Zeilen in den eckigen Klammern gibt an, wie viel Zeilen das Array haben soll. Die Spalten in den eckigen Klammern gibt an, wie viel Spalten das Array haben soll. Beispiel: int array [] [5]; Spalte Zeile

/ / / / / / / / / / / / / / / / / / / /

Auch hier könnte man sich das Array wie einen Schrank vorstellen, nur das dieser Schrank nicht nur eine Reihe von Schubladen besitzt sondern. Initialisierung: Die Werteübergabe beim zweidimensionalen Array ist ähnlich wie die beim eindimensionalen. Beispiel: int array [] [5] = { {,,,,5}, {,,,,5}, {,,,,5}, {,,,,5} }; Spalte Zeile

5 5 5 5 Wertzuweisung: Bei der Wertzuweisung benötigt man beim zweidimensionalen Array nicht nur den Namen des Arrays, sondern auch den Index für die Zeile und den Index der Spalte des entsprechenden Elements, dem man den Wert zuweisen möchte. Der jeweilige Index läuft dabei von bis (Anzahl-). array[][] = ; // Erstes Element (Spalte- u. Zeile-Index gleich ) oder scanf("%f", &array[][]); // Letztes Element (Zeilen-Index gleich ) // (Spalten-Index gleich ) {mospagebreak title= * Textarray} Textarray Ein weiteres eindimensionales Array, was sehr häufig verwendet wird, ist das Array des Datentyps char. Jede char- Variable kann genau ein Zeichen speichern. Wenn man nun Wörter oder ganze Sätze speichern möchte, braucht man ein

Array von chars. Die Deklaration eines solchen Textarrays kann wie folgt geschehen: Index 5 6 7 8 9 Byte 5 6 7 8 9 Deklaration Bedeutung char text[]; Textarray für 9 Buchstaben char text[] = "Hallo";

Textarray für 5 Buchstaben H a l l o \ char text[] = "Hallo"; Textarray für 9 Buchstaben H a l l o \ Dabei ist das letzte Byte des Textes immer das Textabschlusszeichen \ (ASCII-Null). Damit können in einem Array text[] maximal 9 Buchstaben gespeichert werden. Wird die Anzahl der Elemente beim Array angegeben und durch eine geschweifte Klammer dem Array Werte übergeben, werden überschüssige Werte abgeschnitten. siehe auch Zeichenketten.