Übungspaket 23 Mehrdimensionale Arrays

Größe: px
Ab Seite anzeigen:

Download "Übungspaket 23 Mehrdimensionale Arrays"

Transkript

1 Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis: Bevor wir mit komplizierteren Themen wie Zeichenketten weiter machen, müssen wir noch eben eine kleine Übung zu mehrdimensionalen Arrays nachschieben. Mehrdimensionale Arrays sind eine einfache Erweiterung der eindimensionalen Arrays und eigentlich jedem aus der Mathematik als Matrizen bekannt. Insofern erwarten wir keine wesentlichen Probleme ;-)

2 Teil I: Stoffwiederholung Aufgabe 1: Wiederholung eindimensionaler Arrays Aus welchen Komponennten besteht eine Array-Definition (ohne Initialisierung)? 1. Elementtyp 2. Array-Name 3. Eckige Klammern [] 4. Array-Größe (innerhalb der []) Welche Indizes sind gültig, wenn wir ein Array der Größe n (z.b. 14) haben? 0.. n-1 Aufgabe 2: Aufbau mehrdimensionaler Arrays Wie werden die einzelnen Dimensionen eines mehrdimensionalen Arrays definiert? Bei der Definition eines mehrdimensionalen Arrays muss die Größe jeder einzelnen Dimension gesondert in eckigen Klammern angegeben werden. Wie wird auf die einzelnen Elemente eines mehrdimensionalen Arrays zugegriffen? Ein einzelnes Element erhält man, in dem man für jede einzelne Dimension einen konkreten Wert angibt. Wie werden die Elemente eines mehrdimensionalen Arrays in der Programmiersprache C im Arbeitsspeicher abgelegt? Die einzelnen Elemente werden zeilenweise im Arbeitsspeicher abgelegt. Beispiel: a[0][0], a[0][1],..., a[0][m-1], a[1][0],... a[n-1][0],..., a[n-1][m-1] Aufgabe 3: Speicherbelegung am Beispiel Nehmen wir an, wir hätten folgende Matrize: A = ( a11 a 12 a 13 a 21 a 22 a 23 ) Wie kann eine derartige Matrize in C umgesetzt werden? int A[ 2 ][ 3 ] Welche Indizes sind gültig? A[0][0], A[0][1], A[0][2], A[1][0], A[1][1], A[1][2] In welcher Reihenfolge werdne die einzelnen Elemente im Arbeitsspeicher abgelegt? A[0][0], A[0][1], A[0][2], A[1][0], A[1][1], A[1][2] Wie werden die Parameter a ij im Speicher angeordnet? a 11, a 12, a 13, a 21, a 22, a 23 Einführung in die Praktische Informatik, Wintersemester 2016/

3 Teil II: Quiz Aufgabe 1: Definition mehrdimensionaler Arrays In der folgenden Tabelle sind einige Definitionen vorgegeben. Das erste Beispiel ist bereits vorgegeben; vervollständige die freien Spalten: Definition Dimensionen Größe in Bytes gültige Indizes char c[2][4][2] (0..1) (0..3) (0..1) char c[3][3] (0..2) (0..2) char c[2][2][2][2] (0..1) (0..1) (0..1) (0..1) char c[1][2][1] (0..0) (0..1) (0..0) char c[ z - a ][2] (0..24) (0..1) char c[ z - a ][1] (0..24) (0..0) char c[3][7][2][3] (0..2) (0..6) (0..1) (0..2) Aufgabe 2: Implizit definierte Arrays Die Größe eines Arrays kann man auch implizit durch eine zusätzliche Initialisierung definieren. Gegeben seien die folgenden drei Definitionen: 1. int a[][] = {{0, 1, 2}, {3, 4, 5}}; 2. int b[][ 2 ] = {{0, 1}, {2, 3}, {4, 5}}; 3. int c[][ 2 ] = {0, 1, 2, 3, 4, 5}; Vervollständige die folgende Tabelle: Array explizite Definition a int a[ 2 ][ 3 ] b int b[ 3 ][ 2 ] c int c[ 3 ][ 2 ] 23-2 Wintersemester 2016/17, Einführung in die Praktische Informatik

4 Teil III: Fehlersuche Aufgabe 1: Arbeiten mit mehreren Zahlen Die folgenden Programmzeilen bewirken nichts sinnvolles, sondern dienen lediglich dem Einüben mehrdimensionaler Arrays. Doch auch hier hat Freizeitwindsurfer Dr. Surf ein paar kleine Fehler gemacht. Finde, beschreibe und korrigiere diese. 1 int i; 2 int a[ 2, 3, 4 ]; 3 int b[ 3 ][4 ; 5 ]; 4 int c[ 2 ][ 2 ]; 5 i = a[ 1, 1, 1 ]; 6 i = b[ 3 ][ 4 ][ 5 ]; 7 i = c[ 1 ][ 1 ][ 1 ]; Zeile Fehler Erläuterung Korrektur 2, statt [] Jede einzelne Dimension muss gesondert, in eckigen Klammern stehend, definiert werden. a[2][3][4] ; statt [] Jede einzelne Dimension muss gesondert, in eckigen Klammern stehend, definiert werden. b[3][4][5] , statt [] Auch bei Zugriff auf die einzelnen Elemente muss jede einzelne Dimension in eckigen Klammern notiert werden. b[3][4][5] falsche Indizes Die angegebenen Indizes sind ausserhalb der erlaubten Grenzen. Eine beispielhafte Korrektur verwendet jeweils die maximalen Werte. b[2][3][4] falsche Dimensionen Das Array c hat nur zwei und nicht drei Dimensionen. c[1][1] Programm mit Korrekturen: 1 int i; 2 int a[ 2 ][ 3 ][ 4 ]; 3 int b[ 3 ][ 4 ][ 5 ]; 4 int c[ 2 ][ 2 ]; 5 i = a[ 1 ][ 1 ][ 1 ]; 6 i = b[ 2 ][ 3 ][ 4 ]; 7 i = c[ 1 ][ 1 ]; Einführung in die Praktische Informatik, Wintersemester 2016/

5 Teil IV: Anwendungen In den ersten drei Aufgaben üben wir das Definieren und Initialisieren mehrdimensionaler Arrays. Anschließend diskutieren wir, wie mehrdimensionale Matrizen als Parameter an Funktionen übergeben werden können. Den Abschluss bildet eine kleine Anwendung. Aufgabe 1: Deklaration mehrdimensionaler Arrays Vervollständige in der folgenden Tabelle die fehlenden Definitionen: Elementtyp Größe Deklaration int int a[ 3 ][ 2 ][ 4 ] char 2 10 char b[ 2 ][ 10 ] double double d[ 4 ][ 1 ][ 5 ][ 2 ] Aufgabe 2: Implizit definierte Arrays 1. Definiere ein zweidimensionales Array mit zwei Zeilen à drei Spalten, in denen die Zahlen 1, 2, 3, 4, 5 und 6 stehen: int a[][ 3 ] = {{1, 2, 3 }, {4, 5, 6 }}; 2. Definiere ein zweidimensionales Array mit drei Zeilen à zwei Spalten, in denen der Reihe nach die Buchstaben a bis f stehen: char c[][ 2 ] = {{ a, b }, { c, d }, { e, f }}; 3. Definiere ein Array mit drei Zeilen à drei Spalten, in denen Zahlen 1.0 stehen: double d[][3] = {{1.0, 1.0, 1.0 },{1.0, 1.0, 1.0 },{1.0, 1.0, 1.0 }}; Aufgabe 3: Zugriff auf mehrdimensionale Arrays 1. Entwickle ein kleines Programm, das eine 3 3-Matrix definiert und wie folgt initialisiert: Die Diagonalelemente sollen als Wert die Zeilennummer erhalten, alle anderen den Wert Null. Zur Eigenkontrolle soll das Programm diese Matrix ausgeben. Beispiel: Wintersemester 2016/17, Einführung in die Praktische Informatik

6 1 # include <stdio.h> 2 3 # define N int main ( int argc, char ** argv ) 6 { 7 int i, j, a[ N ][ N ]; 8 for ( i = 0; i < N; i ++ ) 9 for ( j = 0; j < N; j ++ ) 10 a[ i ][ j ] = (i == j)? i + 1: 0; 11 for ( i = 0; i < N; i ++ ) 12 { 13 for ( j = 0; j < N; j ++ ) 14 printf ( "%d ", a[ i ][ j ] ); 15 printf ( "\n" ); 16 } 17 } 2. Schreibe ein Programm, das eine Matrix definiert, in der alle Elemente den Wert 1.0 haben. Zur Eigenkontrolle soll das Programm diese Matrix ausgeben. 1 # include <stdio.h> 2 3 # define N 4 4 # define M 1 5 # define K 2 6 # define L int main ( int argc, char ** argv ) 9 { 10 double d[ N ][ M ][ K ][ L ]; 11 int i, j, k, l; 12 for ( i = 0; i < N; i ++ ) 13 for ( j = 0; j < M; j ++ ) 14 for ( k = 0; k < K; k ++ ) 15 for ( l = 0; l < L; l ++ ) 16 d[ i ][ j ][ k ][ l ] = 1.0; 17 for ( i = 0; i < N; i ++ ) 18 for ( j = 0; j < M; j ++ ) 19 for ( k = 0; k < K; k ++ ) 20 for ( l = 0; l < L; l ++ ) 21 printf ( " %3.1 f ", d[i][j][k][l] ); 22 printf ( "\n" ); 23 } Einführung in die Praktische Informatik, Wintersemester 2016/

7 Aufgabe 4: Mehrdimensionale Arrays als Parameter Mehrdimensionale Arrays können in ihrer generischen Form leider nicht so einfach als Parameter an Funktionen übergeben werden, wie wir dies bei eindimensionalen Parametern kennengelernt haben. Bevor du weiter liest, überlege dir zunächst wie dies bei eindimensionalen Arrays war und warum es bei mehrdimensionalen Arrays nicht so direkt geht. Bei eindimensionalen Arrays haben wir immer den Array-Namen, der die Adresse des ersten Elementes repräsentiert, sowie die Array-Größe übergeben. Und schon war alles gut, da wir die einzelnen Elemente nacheinander im Speicher vorgefunden haben. Mehrdimensionale Arrays werden auch elementweise im Speicher abgelegt, doch müssen wir mehrere Dimensionen berücksichtigen. Zur Erinnerung: eine 2 3-Matrix hat folgendes Speicherabbild: m[0][0] m[0][1] [0][2] m[1][0] m[1][1] m[1][2] Gegeben sei die Definition: char c[ 3 ][ 3 ]. Vervollständige folgende Tabelle: Ausdruck Resultat sizeof(c[ 1 ][ 0 ]) 1 sizeof(c[ 0 ][ 0 ]) 1 sizeof(c[ 4 ][ 5 ]) 1 Ausdruck Resultat sizeof(c[ 0 ]) 3 sizeof(c[ 1 ]) 3 sizeof(c) 9 Gegeben sei nun folgendes Programm: 1 # include <stdio.h> 2 3 char f( char m [][], int size ) 4 { 5 } 6 7 int main ( int argc, char ** argv ) 8 { 9 char c[ 3 ][ 3 ]; 10 f( c, 9 ); 11 } Hierzu haben wir nun folgende Fragen: Ist die Syntax dieses Programms korrekt? Nein. Falls nein, welche Zeilen sind problematisch? Die Zeilen 3 und 10. Falls nein, worin liegt das Problem? Welchen Typ hat der Parameter c? Die Parameter m und c sind inkompatibel. char (*)[ 3 ] Zeiger auf drei char 23-6 Wintersemester 2016/17, Einführung in die Praktische Informatik

8 Was wird der Compiler anmeckern und was bzw. wie können wir das Problem beheben? Die beiden Matrizen (Parameter) c und m sind inkompatibel bzw. der Parameter m ist nicht vollständig spezifiziert. Da es sich um ein zweidimensionales Array handelt, muss der Compiler die Zeilenlänge (also die Zahl der Spalten) wissen, denn sonst weiß er nicht, wo c[1] im Arbeitsspeicher anfängt. Wir müssen also angeben, wie lang eine Zeile ist. Dies erreichen wir mittels der Definition int f( char m[][ 3 ], int size ), in der der Parameter size die Zahl der Zeilen spezifiziert. Wir haben zwar nun die Möglichkeit, die Funktion f mit Matritzen unterschiedlicher Zeilenzahl aufzurufen, doch müssen sie alle eine Zeilenlänge von genau drei Zeichen besitzen. Eine interessante Frage bleibt nun, ob wir nicht dennoch eine Funktion schreiben können, die beliebige quadratische Matrizen initialisieren kann? Die Antwort ist recht einfach: Wir wissen, wie auch ein mehrdimensionales Array im Arbeitsspeicher abgelegt wird und wir wissen, wie wir das erste Element eines beliebigen Arrays erhalten. Um beides zusammenzubringen, können wir innerhalb der Funktion ein eindimensionales Array betrachten, das wir durch eigene Berechnungen rekonstruieren. Lange Rede kurzer Sinn, hier kommt ein kleines Beispiel zur Initialisierung von n n-diagonalmatritzen: 1 # include <stdio.h> 2 3 void dig_ init ( int * p, int n ) 4 { 5 int i, j; 6 for ( i = 0; i < n; i ++ ) 7 for ( j = 0; j < n; j ++ ) 8 p[ i + j * n ] = (i == j)? 1: 0; 9 } int main ( int argc, char ** argv ) 12 { 13 # define SIZE 3 14 int a[ SIZE ][ SIZE ]; 15 int i, j; 16 dig_init ( & a[ 0 ][ 0 ], SIZE ); 17 for ( i = 0; i < SIZE ; i ++ ) 18 { 19 for ( j = 0; j < SIZE ; j ++ ) 20 printf ( "%d ", a[ i ][ j ] ); 21 printf ( "\n" ); 22 } 23 } Einführung in die Praktische Informatik, Wintersemester 2016/

9 Aufgabe 5: Matrixmultiplikation Als kleine Zusatz- bzw. Abschlussaufgabe beschäftigen wir uns mit der Multiplikation einer Matrix mit einem Vektor. 1. Vorbetrachtungen In der Mathematik ist das Resultat R der Multiplikation einer Matrix A mit einem Vektor V wie folgt definiert: 2. Aufgabenstellung 1 a a 1m A =..... a n1... a nm, V = v 1. v m, R = R = A V mit m r i = a ik r k i=k Entwickle eine Funktion mat mul(), die eine n m Matrix A mit einem Vektor V der Länge m multipliziert und das Ergebnnis in einem Vektor R der Länge n ablegt. In der ersten Variante soll die Funktion mat mul() wissen, dass die Zeilenlänge der Matrix A genau m ist. Als Elementtyp soll double verwendet werden. 3. Pflichtenheft Aufgabe : Entwicklung einer Funktion zur Multiplikation einer n m Matrix mit einem Vektor Eingabe : keine, da ein Testfall vorgegeben wird Ausgabe : das Ergebnis der Multiplikation Sonderfälle : keine Funktionsköpfe : void mat mul(double a[][ M ], double v[], double r[]) 4. Testdaten Zum Test unseres Programm können wir das folgende Beispiel verwenden: R = 5. Implementierung r 1 r 2 r 3 = = Da wir die einzelnen Definitionen und Algorithmen bereits besprochen haben, können wir gleich mit der Kodierung fortfahren Wintersemester 2016/17, Einführung in die Praktische Informatik r 1. r n

10 6. Kodierung Unsere beispielhafte Kodierung sieht wie folgt aus: 1 # include <stdio.h> 2 3 # define N 3 4 # define M void mat_mul ( double a [][ M ], double v[], double r[] ) 7 { 8 int i, j; 9 for ( i = 0; i < N; i ++ ) 10 for ( r[ i ] = 0.0, j = 0; j < M; j ++ ) 11 r[ i ] += a[ i ][ j ] * v[ j ]; 12 } void prt_vec ( double v[], int size ) 15 { 16 int i; 17 for ( i = 0; i < size ; i ++ ) 18 printf ( " %4.1 f ", v[ i ] ); 19 printf ( "\n" ); 20 } void prt_mat ( double v [][ M], int size ) 23 { 24 int i; 25 for ( i = 0; i < size ; i ++ ) 26 prt_vec ( v[ i ], M ); 27 } int main ( int argc, char ** argv ) 30 { 31 double a [][ M] = {{ 1.0, 0.0, 0.0 }, { 1.0, , 0.0 }, { 1.0, 1.0, 1.0 }}; 33 double v[] = { 1.0, 2.0, 3.0 }, r[ N ]; 34 mat_mul ( a, v, r ); 35 printf ( " Matrix A:\n" ); prt_mat ( a, M ); 36 printf ( " Vektor V: " ); prt_vec ( v, M ); 37 printf ( " Vektor R: " ); prt_vec ( r, N ); 38 } Anmerkungen: Die Funktion prt vec() dient nur der Ausgabe eines Vektors. Da in unserem Fall die Matrix A aus N Vektoren der Länge M besteht, können wir diese Funktion auch in prt mat() verwenden. Einführung in die Praktische Informatik, Wintersemester 2016/

11 7. Aufgabenstellung 2 Das Ziel dieser letzten Teilaufgabe ist es, die Funktionen mat mul() und prt mat() so umzuschreiben, dass sie für beliebige zweidimensionale Matrizen funktionieren. Dabei können wir auf die Ergebnisse der Aufgabe 4 zurückgreifen, die bereits diskutiert hat, wie mittels der Größenparameter die zweidimensionale Struktur einer Matrize rekonstruiert werden kann. 8. Pflichtenheft Aufgabe : Verallgemeinerung der beiden bereits entwickelten Funktionen mat mul() und prt mat() Funktionsköpfe : void mat mul( double *a, double *v, double *r, int n, int m ) void prt mat( double *v, int n, int m ) 9. Testdaten Zum Test unseres Programm können wir wieder das folgende Beispiel verwenden: R = 10. Implementierung r 1 r 2 r 3 = = Da wir die einzelnen Definitionen und Algorithmen bereits besprochen haben, können wir gleich mit der Kodierung fortfahren. Die bestehende Implementierung müssen wir nur um die korrekte Adressberechnung erweitern Wintersemester 2016/17, Einführung in die Praktische Informatik

12 11. Kodierung Unsere beispielhafte Kodierung sieht wie folgt aus: 1 # include <stdio.h> 2 3 # define N 3 4 # define M void mat_ mul ( double * a, double * v, double * r, 7 int n, int m ) 8 { 9 int i, j; 10 for ( i = 0; i < n; i ++ ) 11 for ( r[ i ] = 0.0, j = 0; j < m; j ++ ) 12 r[ i ] += a[ i * m + j ] * v[ j ]; 13 } void prt_ vec ( double * v, int size ) 16 { 17 int i; 18 for ( i = 0; i < size ; i ++ ) 19 printf ( " %4.1 f ", v[ i ] ); 20 printf ( "\n" ); 21 } void prt_ mat ( double * v, int n, int m ) 24 { 25 int i; 26 for ( i = 0; i < n; i ++ ) 27 prt_vec ( v + i * m, m ); 28 } int main ( int argc, char ** argv ) 31 { 32 double a [][ M] = {{ 1.0, 0.0, 0.0 }, { 1.0, , 0.0 }, { 1.0, 1.0, 1.0 }}; 34 double v[] = { 1.0, 2.0, 3.0 }, r[ N ]; 35 mat_mul ( & a[ 0 ][ 0 ], v, r, N, M ); 36 printf ( " Matrix A:\n" ); prt_mat (& a [0][0], N, M); 37 printf ( " Vektor V: " ); prt_vec ( v, M ); 38 printf ( " Vektor R: " ); prt_vec ( r, N ); 39 } Einführung in die Praktische Informatik, Wintersemester 2016/

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Übungspaket 14 Eindimensionale Arrays

Übungspaket 14 Eindimensionale Arrays Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,

Mehr

Übungspaket 9 Logische Ausdrücke

Übungspaket 9 Logische Ausdrücke Übungspaket 9 Logische Ausdrücke Übungsziele: Skript: 1. Umgang mit logischen Vergleichs- und Verknüpfungsoperatoren 2. Bilden einfacher und komplexer logischer Ausdrücke Kapitel: 22 Semester: Wintersemester

Mehr

Übungspaket 20 Zeiger und Zeigervariablen

Übungspaket 20 Zeiger und Zeigervariablen Übungspaket 20 Zeiger und Zeigervariablen Übungsziele: Skript: 1. Definition von Zeigervariablen 2. Verwendung von Zeigern 3. Arrays und Adressberechnungen Kapitel: 45 und 46 Semester: Wintersemester 2017/18

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Übungspaket 20 Zeiger und Zeigervariablen

Übungspaket 20 Zeiger und Zeigervariablen Übungspaket 20 Zeiger und Zeigervariablen Übungsziele: Skript: 1. Definition von Zeigervariablen 2. Verwendung von Zeigern 3. Arrays und Adressberechnungen Kapitel: 45 und 46 Semester: Wintersemester 2017/18

Mehr

Übungspaket 10 Fallunterscheidungen

Übungspaket 10 Fallunterscheidungen Übungspaket 10 Fallunterscheidungen Übungsziele: Skript: 1. Umgang mit der einfachen Fallunterscheidung, 2. sowie mehrfachen Fallunterscheidung und 3. problemangepasster Auswahl Kapitel: 24 und 25 Semester:

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 1 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char,. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 9 bis 31 sowie 4, 5 und

Mehr

Übungspaket 25 Kommandozeilenargumente

Übungspaket 25 Kommandozeilenargumente Übungspaket 25 Kommandozeilenargumente Übungsziele: Skript: 1. Umgang mit argc/argv 2. argc/argv als Schnittstelle von Programm und Betriebssystem 3. Vereinfachtes Testen mit argc/argv Kapitel: 51 und

Mehr

Übungspaket 8 Datentyp int

Übungspaket 8 Datentyp int Übungspaket 8 Datentyp int Übungsziele: Skript: 1. Umgang mit dem Datentyp int, 2. Deklarationen von int-variablen, 3. int-konstanten 4. und int-rechenoperationen. Kapitel: 21 Semester: Wintersemester

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Übungspaket 4 Klassifikation von Dreiecken

Übungspaket 4 Klassifikation von Dreiecken Übungspaket 4 Klassifikation von Dreiecken Übungsziele: Skript: 1. Selbstständiges Entwickeln eines ersten Programms 2. Anwenden der Methoden des Software Life Cycles 3. Programmentwurf durch Anwendung

Mehr

Übungspaket 13 Der Datentyp double

Übungspaket 13 Der Datentyp double Übungspaket 13 Der Datentyp double Übungsziele: Skript: 1. Umgang mit dem Datentyp double, 2. Deklarationen von double-variablen, 3. double-konstanten 4. und double-rechenoperationen. Kapitel: 32 Semester:

Mehr

Übungspaket 7 Angemessenes Formatieren von C-Programmen

Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungsziele: Skript: 1. Gute Layout-Struktur durch Einrücken. Richtiges Verwenden von Kommentaren Kapitel: 19 Semester: Wintersemester 016/17 Betreuer:

Mehr

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungsziele: Skript: 1. Funktionen mit Zeigern als Parameter 2. Emulation von Variablenparametern 3. Funktionen mit Arrays als Parameter 4.

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

Übungspaket 24 Zeichenketten

Übungspaket 24 Zeichenketten Übungspaket 24 Zeichenketten Übungsziele: Skript: 1. Verständnis über die interne Repräsentation von Zeichenketten 2. Arbeiten mit Zeichenketten 3. Definition konstanter Zeichenketten 4. Verwendung diverser

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungsziele: Skript: In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Übungspaket 4 Funktionszeiger

Übungspaket 4 Funktionszeiger Übungspaket 4 Funktionszeiger Übungsziele: Literatur: 1. Verstehen von Funktionszeigern. 2. Anwenden von Funktionszeigern. C-Skript 1, Kapitel: 85 Semester: Wintersemester 2017/18 Betreuer: Kevin, Peter

Mehr

Übungspaket 32 Einfach verkettete, sortierte Liste

Übungspaket 32 Einfach verkettete, sortierte Liste Übungspaket 32 Einfach verkettete, sortierte Liste Übungsziele: Skript: 1. Aufbau einer einfach verketteten, sortierten Liste 2. Traversieren von Listen 3. Vereinfachung durch ein Dummy-Element Kapitel:

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Übungspaket 8 Datentyp int

Übungspaket 8 Datentyp int Übungspaket 8 Datentyp int Übungsziele: Skript: 1. Umgang mit dem Datentyp int, 2. Deklarationen von int-variablen, 3. int-konstanten 4. und int-rechenoperationen. Kapitel: 21 Semester: Wintersemester

Mehr

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder

Mehr

Felder (1) Allgemeines

Felder (1) Allgemeines Felder (1) Allgemeines Gleichartige Daten, wie Tabelle von Zahlen, Datumswerten, Namen etc. Felder (engl. Array) stellen einen Verbundtyp dar, in dem mehrere Daten desselben Typs gespeichert werden Oft

Mehr

Übungspaket 28 Module und getrenntes Übersetzen

Übungspaket 28 Module und getrenntes Übersetzen Übungspaket 28 Module und getrenntes Übersetzen Übungsziele: Skript: 1. Verteilen von Programmteilen auf mehrere Dateien 2. Richtige Verwendung der Header-Dateien 3. Richtiger Umgang mit dem C-Compiler

Mehr

Übungspaket 22 Rekursive Funktionsaufrufe

Übungspaket 22 Rekursive Funktionsaufrufe Übungspaket 22 Rekursive Funktionsaufrufe Übungsziele: Skript: 1. Technische Voraussetzungen für rekursive Funktionsaufrufe 2. Umsetzung mathematisch definierter Rekursionen in entsprechende C-Programme

Mehr

+ C - Array (Vektoren, Felder)

+ C - Array (Vektoren, Felder) + 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

Mehr

Felder, Zeiger und Adreßrechnung

Felder, Zeiger und Adreßrechnung Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche

Mehr

WiMa-Praktikum 1. Woche 8

WiMa-Praktikum 1. Woche 8 WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

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

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet. C Zweidimensionale Arrays Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Zweidimensionale Arrays: Bisher konnten wir in Variablen einfache

Mehr

Mehrdimensionale Arrays

Mehrdimensionale Arrays Mehrdimensionale Arrays Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Eindimensionale Arrays haben wir bereits kennen gelernt. Es gibt aber auch mehrdimensionale Arrays. Die sind auch sehr notwendig, denken

Mehr

Übungspaket 3 Mein erstes Programm: Fläche eines Rechtecks

Übungspaket 3 Mein erstes Programm: Fläche eines Rechtecks Übungspaket 3 Mein erstes Programm: Fläche eines Rechtecks Übungsziele: Skript: 1. Der Software Life Cycle im Überblick. Umgang mit Editor und Compiler 3. Editieren und Starten eines eigenen Programms

Mehr

Übungspaket 7 Angemessenes Formatieren von C-Programmen

Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungsziele: Skript: 1. Gute Layout-Struktur durch Einrücken. Richtiges Verwenden von Kommentaren Kapitel: 19 Semester: Wintersemester 018/19 Betreuer:

Mehr

Sprachkonstrukte Verzweigungen und Array-Strukturen

Sprachkonstrukte Verzweigungen und Array-Strukturen Sprachkonstrukte Verzweigungen und Array-Strukturen Dr. Beatrice Amrhein Überblick Verzweigungen o if/else o switch/case Array-Strukturen o Vektoren und Matrizen 2 Verzweigungen 3 Verzweigungen: if/else

Mehr

Inhalt. Peter Sobe 63. Felder in C

Inhalt. Peter Sobe 63. Felder in C 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

Mehr

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungsziele: Skript: 1. Funktionen mit Zeigern als Parameter 2. Emulation von Variablenparametern 3. Funktionen mit Arrays als Parameter 4.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 3.3 Mehrdimensionale Arrays W. Tasin, M.Sc. Fakultät 04 tasin@hm.edu Allgemeines (1) Ein Feld (Array) kann seinerseits als Komponente wieder ein Array besitzen. Es wird

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 2 Arrays und Pointer Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät statische Arrays Deklaration (eindimensional): /* 40

Mehr

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

Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier Vektoren 105 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten Kapitel 7 Zusammengesetzte Datentypen, Vektoren, Zeichenketten 1 Gliederung Kapitel 7 Zusammengesetzte Datentypen 7.1 Vektoren 7.2 Sortieren eines Vektors 7.3 Mehrdimensionale Felder 7.4 Umgang mit ein-/zweidimensionalen

Mehr

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

Felder in C. Felder stellen eine Reihung von Elementen gleichen Typs dar. Man spricht auch von Vektoren oder Arrays. Felder in C Felder stellen eine Reihung von Elementen gleichen Typs dar. Man spricht auch von Vektoren oder Arrays. Durch die Reihung (hintereinander speichern) kann ein Element über seine Nummer (Index)

Mehr

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

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208.  ZHAW, M. Thaler, K. Rege, G. Pointer und Arrays INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Variable Speicherplatz Datenwert über Name ansprechbar hat Typ hat Adresse (Speicheradresse)

Mehr

C- Kurs 07 Höhere Datentypen

C- Kurs 07 Höhere Datentypen C- Kurs 07 Höhere Datentypen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa?k.uni- leipzig.de Universität Leipzig Ins?tut für Informa?k Technische Informa?k Höhere Datentypen Überblick Höhere Datentypen Werden

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation

Mehr

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungsziele: Skript: 1. Definieren einer dynamischen Datenstruktur 2. Dynamische Speicher Speicherallokation 3. Implementierung eines

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10 Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2009/10 22. Februar 2010 Aufgabe 1 2 3 4 5 6 7 Summe mögliche Punkte 15 15 20 15 20 20 15 120 erreichte Punkte Note: Hinweise: Diese

Mehr

Viel Erfolg bei der Bearbeitung der Aufgaben!

Viel Erfolg bei der Bearbeitung der Aufgaben! Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen

Mehr

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

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang.   WS 07/08 Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende

Mehr

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

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

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

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

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

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang Reihungen Martin Wirsing in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang http://www.pst.informatik.uni-muenchen.de/lehre/ws0506/infoeinf/ WS 05/06 2 Ziele Die Datenstruktur der Reihungen

Mehr

Übungspaket 5 Abstrakte Programmierung

Übungspaket 5 Abstrakte Programmierung Übungspaket 5 Abstrakte Programmierung Übungsziele: Skript: 1. Strukturierung einer gegebenen Aufgabe, 2. Bearbeitung von Arbeitsabläufen des alltäglichen Lebens mittels Struktogrammen 3. und der Methode

Mehr

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

2D-Arrays. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert 2D-Arrays InE1 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Matrix 2-dimensionales Array Beispiel #include int main(void) { int i, j; int matrix[3][5]; // 3

Mehr

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

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner. Grundlegende Deklarationen Seite 1 von 6 Jedes Programm benötigt Objekte. Ein Objekt ist ein reservierter Bereich im Systemspeicher in welchem Informationen abgelegt werden. Informationen sind z.b. Zahlen,

Mehr

Projekt Systementwicklung

Projekt Systementwicklung Projekt Systementwicklung Coding Idiome in C: Zeiger und Felder Prof. Dr. Nikolaus Wulff Coding Idiome Viele Dinge in der Informatik sind allgemein gültig, unabhängig von der verwendeten Plattform und

Mehr

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte

Mehr

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

Arrays 115. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier Arrays 115 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list

Mehr

1. Aufgabe (6 Punkte)

1. Aufgabe (6 Punkte) Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 1.2.2008 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011 Kompaktkurs Einführung in die Programmierung Klausur Seite 1/10 Name, Vorname, Unterschrift: Matrikelnummer: Wichtig: Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek

Mehr

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

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

Arrays 120. 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 Arrays 120 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list

Mehr

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

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein Datenfelder (Arrays) Vektoren, Matrizen, Tabellen Dr. Beatrice Amrhein Überblick Eindimensionale Arrays o Deklaration, Initialisierung, Zugriff Mehrdimensionale Arrays o Deklaration, Initialisierung, Zugriff

Mehr

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

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Übersicht 1 Was sind? 2 Vereinbarung von n 3 Erzeugen von n 4 Zugriff auf Feldkomponenten 5 Mehrdimensionale 6 als Objekte, Referenzen Kopieren

Mehr

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

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Ende SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll im

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Hydroinformatik I: Referenzen und Zeiger

Hydroinformatik I: Referenzen und Zeiger Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar

Mehr

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

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in  angegeben waren; z.b. als Formatstring in der printf()-funktion: Zeichenketten (Strings) Seite 1 von 11 Zeichenketten(Strings) sind wichtige Bestandteile fast eines jeden Programms. Beispiele sind Eingabe von Namen oder Adressen, Ausgabe von Meldetexten oder Bearbeitung

Mehr

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6. Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom 31.5. bis zum 4.6.2010 (KW 22) Organisatorisches Diese Woche führen wir Methoden ein und behandeln

Mehr

Übungspaket 13 Der Datentyp double

Übungspaket 13 Der Datentyp double Übungspaket 13 Der Datentyp double Übungsziele: Skript: 1. Umgang mit dem Datentyp double, 2. Deklarationen von double-variablen, 3. double-konstanten 4. und double-rechenoperationen. Kapitel: 32 Semester:

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

Übungspaket 22 Rekursive Funktionsaufrufe

Übungspaket 22 Rekursive Funktionsaufrufe Übungspaket 22 Rekursive Funktionsaufrufe Übungsziele: Skript: 1. Technische Voraussetzungen für rekursive Funktionsaufrufe 2. Umsetzung mathematisch definierter Rekursionen in entsprechende C-Programme

Mehr

Schleifen Datenfelder (Arrays) Verzweigungen

Schleifen Datenfelder (Arrays) Verzweigungen Schleifen Datenfelder (Arrays) Verzweigungen Vektoren, Matrizen, Tabellen for, while, foreach, if-else und switch-case Dr. Beatrice Amrhein Überblick Schleifen o for, while, foreach Eindimensionale Arrays

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung

Mehr

Schriftlicher Test zu C (90 Minuten) VU Einführung ins Programmieren für TM. 1. Oktober 2012

Schriftlicher Test zu C (90 Minuten) VU Einführung ins Programmieren für TM. 1. Oktober 2012 Familienname: Vorname: Matrikelnummer: Aufgabe 1 (2 Punkte): Aufgabe 2 (3 Punkte): Aufgabe 3 (2 Punkte): Aufgabe 4 (3 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (1 Punkte): Aufgabe 7 (2 Punkte): Aufgabe

Mehr

*** Viel Erfolg! ***

*** Viel Erfolg! *** Hochschule München, FK 03 SS 2016 Ingenieurinformatik C-Programmierung Zulassung geprüft: Bachelorstudiengang: Studienbeginn vor WS13/14 (Kombinationsprüfung) ** Studienbeginn ab WS13/14 bis WS15/16 **

Mehr

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

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

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

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Übungspaket 1 Grundlagen: von der Hardware zum Programmieren

Übungspaket 1 Grundlagen: von der Hardware zum Programmieren Übungspaket 1 Grundlagen: von der Hardware zum Programmieren Übungsziele: Skript: 1. Die Bedeutung des Programmierens für mein Studium und meine spätere Berufstätigkeit 2. Was ist eine erfolgreiche Lernstrategie?

Mehr

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

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Übungspaket 6 Arbeiten mit Syntaxdiagrammen

Übungspaket 6 Arbeiten mit Syntaxdiagrammen Übungspaket 6 Arbeiten mit Syntaxdiagrammen Übungsziele: Skript: Verstehen, Anwenden und Erstellen von Syntaxdiagrammen Kapitel: 20 Semester: Wintersemester 2017/18 Betreuer: Kevin, Theo, Thomas und Ralf

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ 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

Mehr