Einführung
In diesem Labor lernen Sie, wie Sie zwei Matrizen in einem C-Programm subtrahieren. Das Labor umfasst die folgenden Schritte:
Zuerst lernen Sie, wie Sie die Dimensionen und Elemente zweier Matrizen über Benutzereingaben zu lesen. Sie erstellen ein C-Programm, das den Benutzer auffordert, die Anzahl der Zeilen und Spalten sowie die Elemente der beiden Matrizen einzugeben.
Als Nächstes implementieren Sie die Matrixsubtraktion, bei der Sie die entsprechenden Elemente der beiden Matrizen subtrahieren und das Ergebnis in einer neuen Matrix speichern. Schließlich lernen Sie, wie Sie die resultierende Matrix ausgeben.
Dimensionen und Elemente einlesen
In diesem Schritt lernen Sie, wie Sie die Matrixdimensionen und -elemente über Benutzereingaben in einem C-Programm zur Matrixsubtraktion lesen. Wir erstellen ein Programm, das es Benutzern ermöglicht, die Größe und die Werte zweier Matrizen einzugeben.
Erstellen Sie zunächst eine neue C-Datei für unser Matrixsubtraktionsprogramm:
cd ~/project
nano matrix_subtraction.c
Fügen Sie nun den folgenden Code zur Datei hinzu:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int rows, cols;
int matrix1[MAX_SIZE][MAX_SIZE];
int matrix2[MAX_SIZE][MAX_SIZE];
// Matrixdimensionen einlesen
printf("Geben Sie die Anzahl der Zeilen ein: ");
scanf("%d", &rows);
printf("Geben Sie die Anzahl der Spalten ein: ");
scanf("%d", &cols);
// Elemente der ersten Matrix eingeben
printf("Geben Sie die Elemente der ersten Matrix ein:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Geben Sie das Element [%d][%d] ein: ", i, j);
scanf("%d", &matrix1[i][j]);
}
}
// Elemente der zweiten Matrix eingeben
printf("Geben Sie die Elemente der zweiten Matrix ein:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Geben Sie das Element [%d][%d] ein: ", i, j);
scanf("%d", &matrix2[i][j]);
}
}
return 0;
}
Beispielausgabe:
Geben Sie die Anzahl der Zeilen ein: 2
Geben Sie die Anzahl der Spalten ein: 2
Geben Sie die Elemente der ersten Matrix ein:
Geben Sie das Element [0][0] ein: 5
Geben Sie das Element [0][1] ein: 6
Geben Sie das Element [1][0] ein: 7
Geben Sie das Element [1][1] ein: 8
Geben Sie die Elemente der zweiten Matrix ein:
Geben Sie das Element [0][0] ein: 1
Geben Sie das Element [0][1] ein: 2
Geben Sie das Element [1][0] ein: 3
Geben Sie das Element [1][1] ein: 4
Kompilieren und ausführen des Programms:
gcc matrix_subtraction.c -o matrix_subtraction
./matrix_subtraction
Codeerklärung:
- Wir definieren eine maximale Matrixgröße von 100x100 mit
MAX_SIZE. rowsundcolsspeichern die Dimensionen der Matrizen.- Zwei 2D-Arrays
matrix1undmatrix2werden erstellt, um Matrixelemente zu speichern. scanf()wird verwendet, um Matrixdimensionen und -elemente über Benutzereingaben zu lesen.- Geschachtelte Schleifen werden verwendet, um Elemente für beide Matrizen einzugeben.
Entsprechende Elemente subtrahieren
In diesem Schritt lernen Sie, wie Sie entsprechende Elemente zweier Matrizen subtrahieren und das Ergebnis in einer neuen Matrix speichern. Wir erweitern das vorherige Programm, um die Matrixsubtraktion durchzuführen.
Öffnen Sie die vorhandene Datei und ändern Sie den Code:
cd ~/project
nano matrix_subtraction.c
Aktualisieren Sie den Code mit der Matrixsubtraktionslogik:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int rows, cols;
int matrix1[MAX_SIZE][MAX_SIZE];
int matrix2[MAX_SIZE][MAX_SIZE];
int result[MAX_SIZE][MAX_SIZE];
// Matrixdimensionen einlesen
printf("Geben Sie die Anzahl der Zeilen ein: ");
scanf("%d", &rows);
printf("Geben Sie die Anzahl der Spalten ein: ");
scanf("%d", &cols);
// Elemente der ersten Matrix eingeben
printf("Geben Sie die Elemente der ersten Matrix ein:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Geben Sie das Element [%d][%d] ein: ", i, j);
scanf("%d", &matrix1[i][j]);
}
}
// Elemente der zweiten Matrix eingeben
printf("Geben Sie die Elemente der zweiten Matrix ein:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Geben Sie das Element [%d][%d] ein: ", i, j);
scanf("%d", &matrix2[i][j]);
}
}
// Entsprechende Elemente subtrahieren
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
result[i][j] = matrix1[i][j] - matrix2[i][j];
}
}
return 0;
}
Beispielausgabe:
Geben Sie die Anzahl der Zeilen ein: 2
Geben Sie die Anzahl der Spalten ein: 2
Geben Sie die Elemente der ersten Matrix ein:
Geben Sie das Element [0][0] ein: 5
Geben Sie das Element [0][1] ein: 6
Geben Sie das Element [1][0] ein: 7
Geben Sie das Element [1][1] ein: 8
Geben Sie die Elemente der zweiten Matrix ein:
Geben Sie das Element [0][0] ein: 1
Geben Sie das Element [0][1] ein: 2
Geben Sie das Element [1][0] ein: 3
Geben Sie das Element [1][1] ein: 4
Codeerklärung:
- Ein neues 2D-Array
resultwird erstellt, um die Ergebnisse der Subtraktion zu speichern. - Geschachtelte Schleifen iterieren durch jedes Matrixelement.
result[i][j]wird berechnet, indem entsprechende Elemente vonmatrix1undmatrix2subtrahiert werden.- Die Subtraktion folgt den elementweisen Regeln der Matrixsubtraktion.
Kompilieren Sie das Programm:
gcc matrix_subtraction.c -o matrix_subtraction
Die Ergebnismatrix ausgeben
In diesem Schritt lernen Sie, wie Sie die resultierende Matrix nach der Subtraktion ausgeben. Wir werden das vorherige Programm modifizieren, um die Ergebnisse der Subtraktion anzuzeigen.
Öffnen Sie die vorhandene Datei und aktualisieren Sie den Code:
cd ~/project
nano matrix_subtraction.c
Aktualisieren Sie den Code mit der Logik zum Ausgeben der Matrix:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int rows, cols;
int matrix1[MAX_SIZE][MAX_SIZE];
int matrix2[MAX_SIZE][MAX_SIZE];
int result[MAX_SIZE][MAX_SIZE];
// Matrixdimensionen einlesen
printf("Geben Sie die Anzahl der Zeilen ein: ");
scanf("%d", &rows);
printf("Geben Sie die Anzahl der Spalten ein: ");
scanf("%d", &cols);
// Elemente der ersten Matrix eingeben
printf("Geben Sie die Elemente der ersten Matrix ein:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Geben Sie das Element [%d][%d] ein: ", i, j);
scanf("%d", &matrix1[i][j]);
}
}
// Elemente der zweiten Matrix eingeben
printf("Geben Sie die Elemente der zweiten Matrix ein:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Geben Sie das Element [%d][%d] ein: ", i, j);
scanf("%d", &matrix2[i][j]);
}
}
// Entsprechende Elemente subtrahieren
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
result[i][j] = matrix1[i][j] - matrix2[i][j];
}
}
// Die resultierende Matrix ausgeben
printf("\nResultierende Matrix nach der Subtraktion:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
Kompilieren und ausführen des Programms:
gcc matrix_subtraction.c -o matrix_subtraction
./matrix_subtraction
Beispielausgabe:
Geben Sie die Anzahl der Zeilen ein: 2
Geben Sie die Anzahl der Spalten ein: 2
Geben Sie die Elemente der ersten Matrix ein:
Geben Sie das Element [0][0] ein: 5
Geben Sie das Element [0][1] ein: 6
Geben Sie das Element [1][0] ein: 7
Geben Sie das Element [1][1] ein: 8
Geben Sie die Elemente der zweiten Matrix ein:
Geben Sie das Element [0][0] ein: 1
Geben Sie das Element [0][1] ein: 2
Geben Sie das Element [1][0] ein: 3
Geben Sie das Element [1][1] ein: 4
Resultierende Matrix nach der Subtraktion:
4 4
4 4
Codeerklärung:
- Eine neue verschachtelte Schleife wurde hinzugefügt, um die
result-Matrix auszugeben. printf("%d ", result[i][j])gibt jedes Element aus.- Ein zusätzliches
printf("\n")erzeugt nach jeder Zeile eine neue Zeile. - Die Ausgabe zeigt die Matrix mit den subtrahierten Werten.
Zusammenfassung
In diesem Labor haben Sie gelernt, wie man in einem C-Programm zur Matrixsubtraktion die Matrixdimensionen und -elemente über Benutzereingaben liest. Das Programm ermöglicht es Benutzern, die Größe und die Werte von zwei Matrizen einzugeben, die dann in zwei zweidimensionalen Arrays gespeichert werden. Dieser Schritt bildet die Grundlage für den folgenden Schritt, bei dem die entsprechenden Elemente der beiden Matrizen subtrahiert und die resultierende Matrix ausgegeben wird.
Das Programm fordert den Benutzer auf, die Anzahl der Zeilen und Spalten einzugeben, und führt ihn dann durch die Eingabe der Elemente der ersten und zweiten Matrix. Dies stellt sicher, dass das Programm Matrizen unterschiedlicher Größe korrekt verarbeiten und die Eingabedaten für die weitere Verarbeitung speichern kann.



