Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.

Slides:



Advertisements
Ähnliche Präsentationen
Imperative Programmierung
Advertisements

Hochschule Fulda – FB ET Sommersemester 2010
Aufgabe: Wie stellt man eine for-Schleife durch eine while-Schleife dar ?
Forschungszentrum caesar
Funktionen und Module Einführung anhand des Beispiels Wörter sortieren Timm Grams Fachhochschule Fulda Fachbereich Elektrotechnik und Informationstechnik.
Sortieren I - Bubblesort -
Verzweigung oder bedingte Anweisung Weiter mit PP.
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
der Universität Oldenburg
Sequentielle Liste - Array
Sortierverfahren Richard Göbel.
SWITCH - Anweisung.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Dynamischer Speicher. Ein Vergleich aus dem täglichen Leben...
Funktionen.
Dynamischer Speicher und Struktur
Parameterübergabe von zweidimensionalen Feldern in Funktionen.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
V AdresseWert public static void main(...){ int[] v; v=new int[2]; } Was veranlasst diese Anweisung im Arbeitsspeicher ? Es wird im Arbeitsspeicher.
FOR Anweisung.
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
DO...WHILE Anweisung.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
ARRAY oder FELD oder VEKTOR
Processing: Arrays & Laden von Dateien Aufbauend auf dem Beispiel: File I/O LoadFile1.
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Einführung in die Programmiersprache C 1
Java programmieren mit JavaKara
Repetitorium PG : Gültigkeit, Sichtbarkeit & Operatorüberladung FH-Darmstadt, FB Informatik.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Einführung in die Programmiersprache C 4
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Programmbereich, zu dem eine Deklaration gehört Arten von Gültigkeitsbereichen -Namespace : Deklarationen von Klassen, Interfaces, Structs, Enums, Delegates.
Arrays / Felder Themen: Arrays / Felder / Vektoren Was soll das eigentlich? Erstellen von Arrays Arrays auslesen. Wie sie verwaltet werden.
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Sammlungsklassen Array.
Diskrete Mathematik I Vorlesung 2 Arrays.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Felder (Arrays).
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Physische Geographie Uni Augsburg Variablen-Arrays: mehrere Platzhalter in einer Variable: Ein Array ist eine (Feld-)Variable in der mehr als ein Wert.
Wiederholungen mit Zähler
Arrays (Eigenschaften)
Dynamisches Array als "verkettete Liste"
Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Implementieren von Klassen
Felder in der Informatik
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen. Beispiele sind Listen Tabellen Arrays können eine oder mehrere Dimen-sionen haben. (C) Harder 2007 16.01.2019

Beispiele eindimensionale Arrays Listen Vektoren zweidimensionale Arrays Tabellen Matrizen ein TicTacToe-Spielfeld ein Excel-Arbeitsbatt dreidimensionale Arrays „Zauber“würfel (C) Harder 2007 16.01.2019

Eindimensionale Arrays Listen sind Eindimensionale Arrays. Folgende Liste hat 5 Positionen Man muß zwischen der Position der Zelle und dem Inhalt der Zelle unterscheiden. In C hat die erste Zelle die Positionsnummer 0. Die Zelle an dieser Position enthält den Wert 9. Die letzte Zelle hat die Positionsnummer 4. Ihr Inhalt ist 8. (C) Harder 2007 16.01.2019

Deklaration einer Liste Die Beispielliste Liste wird durch folgende Anweisung deklariert: int Liste [5] ; Die Liste ist vom Typ int. Alle Elemente sind Integerwerte. Die Liste hat 5 Zellen. Die Zellen heißen Liste[0], Liste [1], Liste[2], Liste [3], Liste[4]. Die Liste kann bei der Deklaration durch das Aufzählen der Elementwerte durch die folgende Anweisung initialisiert werden. int Liste [ 5] = { 9, 1, 5, 3, 8 } ; (C) Harder 2007 16.01.2019

Wertzuweisung Zugriff auf die im Feld gespeicherten Werte z.B. wie folgt: x = Liste [0] ; // x wird der Wert 9 zugewiesen. y = Liste [4] ; // y wird der Wert 8 zugewiesen. x = Liste [5]; // Anweisung verursacht i. d. Regel einen Speicherzugriffsfehler, da auf Speicherbereich außerhalb des reservierten Bereichs zugegriffen wird. => Bei der Benutzung von Arrays liegt die Verantwortung über die Einhaltung der Bereichsgrenzen beim Programmierer ! (C) Harder 2007 16.01.2019

Eingabe Die Werte von Liste können mit einer Schleife ein-gelesen werden. Dazu deklarieren wir einen Positionszähler pos, der die Zellen von 0 bis 4 zählen kann. Es ist darauf zu achten, daß die letzte Position den Wert 4 hat, pos darf daher den Wert 5 nicht mehr annehmen. for (pos = 0; pos < 5; pos ++) { fflush (stdin) ; scanf (“%i“ , & Liste [ pos ] ) ; } (C) Harder 2007 16.01.2019

TAB-Abstand herstellen Ausgabe Die Werte von Liste können mit einer Schleife aus- gegeben werden. Dazu deklarieren wir einen Positionszähler pos, der die Zellen von 0 bis 4 zählen kann. Es ist darauf zu achten, daß die letzte Position den Wert 4 hat, pos darf daher den Wert 5 nicht mehr annehmen. for ( pos = 0 ; pos < 5 ; pos++ ) { printf ( ”%i” , Liste [pos] ) ; printf ( ”\t” ) ; } TAB-Abstand herstellen (C) Harder 2007 16.01.2019

TAB-Abstand herstellen Liste.cpp #include <stdio.h> void main ( ) { int Liste [5] ; int pos = 0 ; for ( pos = 0 ; pos < 5 ; pos++ ) fflush (stdin) ; scanf ( ”%i” , & Liste [pos] ) ; } printf ( ”%i” , Liste [pos] ) ; printf ( ”\t” ) ; TAB-Abstand herstellen (C) Harder 2007 16.01.2019

Zweidimensionale Arrays (C) Harder 2007 16.01.2019

Zweidimensionale Arrays Ein zweidimensionales (3,4)-Array ist wie folgt aufgebaut: zeilenpos = 0 spaltenpos = 0 3 Zeilen: 0, 1, 2 zeilenpos = 2 spaltenpos = 3 4 Spalten: 0, 1, 2, 3 (C) Harder 2007 16.01.2019

Deklaration eines zweidimensionalen Arrays Die Beispieltabelle Tabelle wird durch folgende Anweisung deklariert int Tabelle [3][4] ; Die Tabelle ist vom Typ int. Ihre Elemente sind Integerwerte. Die Tabelle hat 12 Zellen. Die Feldelemente von Tabelle heißen Tabelle [0][0], Tabelle [0][1], Tabelle [0][2], Tabelle [0][3], .... Tabelle [2][3]. Die Tabelle kann bei der Deklaration durch das Aufzählen der Elementwerte durch die folgende Anweisung initialisiert werden: int Tabelle [ 3] [ 4] = { 3, 2, 4, 3, 6, 1, 4, 5, 6, 7, 8, 1 } ; (C) Harder 2007 16.01.2019

Schleife Die Eingabe der Elemente von Tabelle kann z.B. durch eine verschachtelte Schleife erfolgen. . Dazu deklarieren wir einen Zeilenzähler zeilenpos, der die Zeilen von 0 bis 2 zählen kann. Es ist darauf zu achten, daß die letzte Position der Zeile den Wert 2 hat. Dazu deklarieren wir einen Positionszähler spaltenpos, der die Spalten von 0 bis 3 zählen kann. Es ist darauf zu achten, daß die letzte Position der Spalte den Wert 3 hat. Die äußere Schleife durchläuft die Zeilen, die innere die Spalten von Tabelle. (C) Harder 2007 16.01.2019

Ende eingelesene Zeile Eingabe Die Werte von Tabelle werden durch folgende Schleife zeilenweise eingelesen for ( zeilenpos = 0 ; zeilenpos < 3 ; zeilenpos++ ) { for ( spaltenpos = 0 ; spaltenpos < 4 ; spaltenpos++ ) fflush (stdin) ; scanf (“%i“ , &Tabelle [zeilenpos] [spaltenpos] ) ; } Ende eingelesene Zeile (C) Harder 2007 16.01.2019

Formatierte Ausgabe Die Werte von Tabelle werden durch folgende Schleife zeilenweise ausgegeben: for ( zeilenpos = 0; zeilenpos < 3 ; zeilenpos++ ) { for ( spaltenpos = 0; spaltenpos < 4 ; spaltenpos++ ) printf (“%i“ , Tabelle [zeilenpos] [spaltenpos] ) ; printf ( “\t“ ) ; } printf ( “\n“ ) ; Ende der Ausgabezeile erreicht Zeilenumbruch erzeugen (C) Harder 2007 16.01.2019

C Quellcode #include <stdio.h> void main ( ) { int Tabelle [3] [4] ; int zeilenpos = 0 , spaltenpos = 0 ; for ( zeilenpos = 0; zeilenpos < 3 ; zeilenpos ++ ) for ( spaltenpos = 0; spaltenpos < 4 ; spaltenpos ++ ) fflush ( stdin ) ; scanf ( ”%i” , & Tabelle [zeilenpos ] [spaltenpos ] ) ; } for (zeilenpos = 0; zeilenpos < 3 ; zeilenpos ++ ) for (spaltenpos = 0; spaltenpos < 4 ; spaltenpos ++ ) printf ( ”%i” , Tabelle [zeilenpos ] [spaltenpos ] ) ; printf ( ”\t” ) ; printf ( ”\n” ) ; (C) Harder 2007 16.01.2019

Aufgaben Aufgaben (1) Schreiben Sie ein C-Programm. Das Programm soll ein aus Integerwerten bestehendes (3,4)-Array einlesen und dann wahlweise eine bestimmte Zeile, eine bestimmte Spalte oder das gesamte Array ausgeben. (2) Schreiben Sie ein C-Programm. Das Programm soll ein aus Integerwerten bestehendes (3,4)-Array einlesen und prüfen, ob ein bestimmter int-Wert (z.B. 5) ein Element des Arrays ist. Ist dies der Fall, soll die Position (Zeile, Spalte) des betreffenden Elements ausgegeben werden. (3) Schreiben Sie ein C-Programm. Das Programm soll ein aus Integerwerten bestehendes (3,4)-Array einlesen. Das Programm soll den größten Wert des Arrays finden. Das Maximum und seine Position (Zeile, Spalte) sind auszugeben ! (C) Harder 2007 16.01.2019