-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgramm1.py
117 lines (98 loc) · 2.48 KB
/
Programm1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
start;
dim Reihen1, Spalten1 als float;
dim Reihen2, Spalten2 als float;
dim Reihen3, Spalten3 als float;
dim Mat1[5][5], Mat2[5][5], Mat3[5][5] als float;
dim option als float;
dim i, j, k als float; # These are iterators
def getAbmessungenMatrix1{
druck "Gib die Reihen und Spalten der Matrix 1 an";
eingabe Reihen1;
eingabe Spalten1;
return;
}
def getAbmessungenMatrix2{
druck "Gib die Reihen und Spalten der Matrix 2 an";
eingabe Reihen2;
eingabe Spalten2;
return;
}
def fillMatrix1{
druck "Daten fuer MAT1 einfuegen";
fur i <- 0 in Reihen1{
fur j <- 0 in Spalten1{
eingabe Mat1[i][j];
}
}
return;
}
def fillMatrix2{
druck "Daten fuer MAT2 einfuegen";
fur i <- 0 in Reihen2{
fur j <- 0 in Spalten2{
eingabe Mat2[i][j];
}
}
return;
}
def sumMats{
wenn (Reihen1 == Reihen2 && Spalten1 == Spalten2){
gosub fillMatrix1;
gosub fillMatrix2;
lass Reihen3 <- Reihen1;
lass Spalten3 <- Spalten1;
fur i <- 0 in Reihen3{
fur j <- 0 in Spalten3{
lass Mat3[i][j] <- Mat1[i][j] + Mat2[i][j];
}
}
druck "Antowort in Mat3";
druck Mat3;
}
sonst{
druck "Die Matrizen konnten nicht addiert werden";
}
return;
}
def multMats{
wenn (Spalten1 == Reihen2){
gosub fillMatrix1;
gosub fillMatrix2;
lass Reihen3 <- Reihen1;
lass Spalten3 <- Spalten2;
fur i <- 0 in Reihen3{
fur j <- 0 in Spalten3{
fur k <- 0 in Reihen2{ # oder Spalten1
lass Mat3[i][j] <- Mat3[i][j] + (Mat1[i][k] * Mat2[k][j]);
}
}
}
druck "Antowort in Mat3";
druck Mat3;
}
sonst{
druck "Die Matrizen konnten nicht multiplitziert werden";
}
return;
}
def main{
druck "AUFPASSEN Maximale Abmessungen 5 x 5";
tun{
gosub getAbmessungenMatrix1;
} solange((Reihen1 > 5) || (Spalten1 > 5) || Reihen1 <= 0 || Spalten1 <= 0);
tun{
gosub getAbmessungenMatrix2;
} solange (Reihen2 > 5 || Reihen2 <= 0 || Spalten2 > 5 || Spalten2 <= 0);
druck "Menue fuer Matrixoperationen";
druck "Druecken Sie 1 zum Summieren";
druck "Druecken Sie 2 zum Multiplizieren";
eingabe option;
wenn (option == 1){
gosub sumMats;
}
sonst{
gosub multMats;
}
return;
}
ende;