Suche
Suche Menü

Arrays

Hier sind Übungen im Zusammenhang mit Arrays zusammengestellt. Beim Lösen der Aufgaben könnte der alternative Array-Zugriff hilfreich sein.

Array-Minimum

Es soll eine Funktion entwickelt werden, welche aus einem eindimensionalen int-Array den kleinsten Wert ermittelt. Der Prototyp dazu ist unten dargestellt. Eine übliche Vorgehensweise ist es, zunächst den ersten Wert des Feldes als Minimum anzusehen; danach werden alle weiteren Werte damit verglichen. Ist der Wert kleiner als das Minimum, wird der Minimum-Wert aktualisiert. Der Parameter *x ist der Zeiger auf das Array und size die Größe des Feldes. Rückgabewert ist das Minimum.

 

int arrayMin(int *x, int size);

Array-Zugriff

Schreibe eine Funktion, welche ein Feld beliebiger Größe über einen Zeiger mit Werten füllt. Die Werte können fortlaufend sein. Dazu soll eine zweite Funktion geschrieben werden, welche ein Feld beliebiger Größe und Dimension auf dem Bildschirm ausgibt. Wie an den Prototypen zu erkennen ist, handelt es sich um int-Felder, deren Größe in den Parametern rows und cols übergeben wird. Die Bildschirm-Ausgabe zeigt eine 3×3 Matrix.

 

1 2 3
4 5 6
7 8 9

void fillArray(int *x,int rows, int cols);

void printArray(int *x, int rows, int cols);

Array-Sort

Es ist eine Funktion zu schreiben, welche ein int-Array sortiert. Die enthaltenen Zahlen sollen der Größe nach angeordnet werden. Hilfreich dafür kann die Array-Minimum-Funktion sein. Diese sollte modifiziert werden, sodass sie nur den Index des Minimums eines bestimmten Bereichs des Arrays liefert. Zum Testen kann die Funktion fillArray() verwendet werden, welche derart abgeändert wird, sodass sie ein Feld mit Zufallszahlen füllt. Hier nun die Prototypen der zu schreibenden Funktionen.

 

int arrayMinIndex(int *x, int start, int size);

void arraySort(int *x, int size);

Matrix-Addition

Eine Matrix wird beim Programmieren mit einem Array dargestellt. Bei der mathematischen Matrix-Addition müssen beide Matrizen die gleiche Größe haben (Spalten und Zeilen). Ein Wert aus der Matrix A wird mit dem Wert an der gleichen Position aus Matrix B addiert und an dieselbe Position der Ergebnis-Matrix geschrieben, siehe Beispiel-Ausgabe.

 

 A		B
 1 2 3		1 2 3
 4 5 6		4 5 6
 7 8 9		7 8 9

 C
 2 4 6
 8 10 12
 14 16 18

Schreibe eine Funktion, die 2 Matrizen addiert und das Ergebnis in eine dritte Matrix schreibt. Die Zeiger *a und *b im Prototyp sind die zu addierenden Matrizen, diese verweisen auf ein int-Array. Der Zeiger *c ist das Ergebnis-Array, ebenfalls vom Typ int. Die Parameter rows und cols geben die Größe der Arrays in Zeilen und Spalten an. Zum Testen sind die Funktionen fillArray() und printArray() aus der vergangenen Übung nützlich.

void matrixAdd(int *a, int *b, int *c, int rows, int cols);