Programming lesson
C++-Matrix-Manipulation und Zeiger: Ein Leitfaden für Assignment #09
Lerne, wie du in C++ eine 4×5-Matrix mit Menüsteuerung erstellst und Zeiger für Funktionen nutzt – praxisnah erklärt mit aktuellen Beispielen.
Einführung in die Matrix-Manipulation mit C++
In diesem Tutorial lernst du, wie du ein Programm schreibst, das eine 4×5-Matrix mit Benutzereingaben füllt und über ein Menü verschiedene Operationen ausführt – genau wie in der Aufgabenstellung Computer Science 1081 – Assignment #09. Du wirst Funktionen wie getTotal, getAverage und getRowTotal implementieren und dabei grundlegende Konzepte wie zweidimensionale Arrays und Zeiger anwenden. Die Beispiele sind aktuell (Mai 2026) und greifen Trends wie KI-gesteuerte Analysen auf – stell dir vor, du analysierst die Leistungsdaten eines Esports-Teams wie in einer Matrix.
Menügesteuerte Programme: Wie ein KI-Assistent
Ein menügesteuertes Programm ähnelt einem KI-Chatbot, der dir Optionen anbietet. Du wählst eine Aktion aus, das Programm führt sie aus, und dann kehrst du zum Menü zurück – so lange, bis du „Exit“ wählst. In deinem Assignment wird das mit einer while-Schleife realisiert. Hier ein einfaches Beispiel für die Menüstruktur:
int choice;
do {
cout << "1. Gesamtsumme\n2. Durchschnitt\n3. Exit\n";
cin >> choice;
switch(choice) {
case 1: // getTotal aufrufen
case 2: // getAverage aufrufen
case 3: cout << "Programm beendet.\n";
}
} while(choice != 3);
Die 4×5-Matrix: Daten wie in einer Tabelle
Eine Matrix ist wie eine Excel-Tabelle mit 4 Zeilen und 5 Spalten. Du deklarierst sie mit int matrix[4][5]; und füllst sie mit Werten des Benutzers. Stell dir vor, du speicherst die Punktzahlen von 4 Spielern in 5 Runden eines Gaming-Turniers – das ist eine typische Anwendung. Die Funktion getTotal summiert alle 20 Werte:
int getTotal(int arr[4][5]) {
int total = 0;
for(int i = 0; i < 4; i++)
for(int j = 0; j < 5; j++)
total += arr[i][j];
return total;
}
Durchschnitt berechnen: Wie ein KI-Modell
Der Durchschnitt aller Zellen wird mit getAverage ermittelt. Ähnlich wie ein KI-Modell den Mittelwert aus Trainingsdaten berechnet, addierst du alle Werte und teilst durch 20. Achte auf den Rückgabetyp double:
double getAverage(int arr[4][5]) {
return getTotal(arr) / 20.0;
}
Zeilen- und Spaltensummen: Gezielte Auswertung
Mit getRowTotal und getColumnTotal kannst du einzelne Zeilen oder Spalten summieren. Das ist nützlich, wenn du z.B. die Gesamtpunktzahl eines bestimmten Spielers (Zeile) oder einer Runde (Spalte) wissen willst. Die Funktionen nehmen einen zusätzlichen Integer-Parameter für den Index:
int getRowTotal(int arr[4][5], int row) {
int total = 0;
for(int j = 0; j < 5; j++)
total += arr[row][j];
return total;
}
Vergiss nicht die Fehlerprüfung: Der Index muss zwischen 0 und 3 (für Zeilen) bzw. 0 und 4 (für Spalten) liegen.
Höchsten und niedrigsten Wert in einer Zeile finden
Die Funktionen getHighestInRow und getLowestInRow durchlaufen eine bestimmte Zeile und suchen das Maximum bzw. Minimum. Das ist wie die Bestenliste in einem Spiel – wer hat die höchste Punktzahl? Beispiel:
int getHighestInRow(int arr[4][5], int row) {
int highest = arr[row][0];
for(int j = 1; j < 5; j++)
if(arr[row][j] > highest)
highest = arr[row][j];
return highest;
}
Zeiger in C++: Adressen statt Werte
Im zweiten Programm verwendest du Zeiger, um Werte direkt zu ändern. Eine Funktion wie doubleValues bekommt die Adresse einer Variablen und verdoppelt den Wert an dieser Adresse. Das ist wichtig, wenn du mehrere Werte in einer Funktion ändern willst. Beispiel:
void doubleValues(int *a, int *b, int *c) {
*a *= 2;
*b *= 2;
*c *= 2;
}
Hier werden die Werte der aufrufenden Variablen verdoppelt, weil wir mit Zeigern arbeiten. Die Funktion getValues liest Werte ein und speichert sie über Zeiger:
void getValues(int *a, int *b, int *c) {
cout << "Enter an integer: ";
cin >> *a;
// analog für b und c
}
Trend-Beispiel: Finanzdaten-Analyse wie eine KI-App
Stell dir vor, du entwickelst eine KI-gestützte App, die Aktienkurse analysiert. Die 4×5-Matrix könnte die Schlusskurse von 4 Aktien über 5 Tage darstellen. Mit den Funktionen berechnest du Gesamtsumme, Durchschnitt oder die teuerste Aktie pro Tag – genau wie in deinem Assignment. Das macht den Code praxisnah und zeigt, wie wichtig solche Grundlagen für moderne Anwendungen sind.
Fehlerbehandlung: Sicherheit wie in Banking-Apps
Dein Programm sollte falsche Eingaben abfangen – z.B. wenn der Benutzer eine Zeilennummer außerhalb des Bereichs eingibt. Verwende Schleifen, um solange nachzufragen, bis eine gültige Eingabe erfolgt. Das ist ähnlich wie bei einer Banking-App, die bei falscher PIN erneut nachfragt.
Vollständiges Beispiel für das erste Programm
Hier siehst du, wie die Hauptfunktion aussehen könnte – natürlich nur als Gerüst, denn die Aufgabenstellung verlangt eigene Implementierung:
int main() {
int matrix[4][5];
// Matrix füllen
for(int i = 0; i < 4; i++)
for(int j = 0; j < 5; j++) {
cout << "Wert für [" << i << "][" << j << "]: ";
cin >> matrix[i][j];
}
int choice;
do {
// Menü anzeigen
cout << "\n1. Gesamtsumme\n2. Durchschnitt\n3. Zeilensumme\n4. Spaltensumme\n5. Höchster Wert in Zeile\n6. Niedrigster Wert in Zeile\n7. Exit\n";
cin >> choice;
switch(choice) {
case 1: cout << "Gesamtsumme: " << getTotal(matrix) << endl; break;
case 2: cout << "Durchschnitt: " << getAverage(matrix) << endl; break;
case 3: {
int row;
cout << "Zeile (0-3): ";
cin >> row;
if(row >= 0 && row < 4)
cout << "Summe: " << getRowTotal(matrix, row) << endl;
else
cout << "Ungültige Zeile!\n";
break;
}
// weitere Fälle analog
case 7: cout << "Programm beendet.\n"; break;
default: cout << "Ungültige Auswahl!\n";
}
} while(choice != 7);
return 0;
}
Zusammenfassung und nächste Schritte
Mit diesem Tutorial hast du die Grundlagen für Assignment #09 verstanden: Du kannst eine Matrix mit Werten füllen, Menüs erstellen, Funktionen für Berechnungen schreiben und Zeiger einsetzen. Übe die Konzepte, indem du eigene kleine Programme schreibst – z.B. eine Notenverwaltung für deine Kurse. Viel Erfolg!