Das Deutsche Casio-Taschenrechner Forum wurde zum 31.12.2013 geschlossen und kann weiterhin als Nachschlagewerk verwendet werden.
Wer mehr erfahren möchte: Ein sehr guter Beitrag von Elias

Matrix als Tabelle

Hilfe beim Programmieren in Casio Basic.

Matrix als Tabelle

Beitragvon Anderesio » Di 22. Feb 2011, 13:35

Ich habe ein Problem.
Ich verwende die Matrix als eine Rechentabelle, wobei es sich um eine 7x7 Matrix handelt.
In der ersten 5x5 Dimension habe ich Zufallswerte generiert, mit folgenden Code (MatrixC [->] 7x7 ist bereits gegeben):

0 [->] A
1 [->] B
Do
A+1 [->] A
Int (Ran#*4) [->] Mat C[A,B]
If A=5 And B<5
Then 0 [->] A:B+1 [->] B
IfEnd
LpWhile A(un=)5 And B(un=)6

Dieser Part funktioniert noch reibungslos.
Es werden wie erwartet bis zu den Reihen 5 und Spalten 5, Zufallszahlen von 0 bis 3 ausgegeben.
Zur kontrolle hatte ich "Mat C [DISP] " verwendet.

Bei den nun folgenden Part soll jede Spalte für sich addiert und in der Matrix in der 6. Reihe ausgegeben werden.
Bsp.: Mat C[1,1]+Mat C[1,2]+Mat C[1,3]+Mat C[1,4]+Mat C[1,5] [->] Mat C[1,6]:Mat C[1,6] [DISP]

Da ich allerdings mir Speicher sparen möchte, und ich diesen Vorgang für jede Spalte hätte neu eingeben müssen, habe ich diesen Vorgang erneut in einer
Do-LpWhile-Schleife gepackt, welche direkt an der ersten Schleife anschließt:

0 [->] A
1 [->] B
Do
A+1 [->] A
Mat C[A,B]+Mat C[6,B] [->] Mat C[6,B]
If A=5 And B<5
Then 0 [->] A:B+1 [->] B
IfEnd
LpWhile A(un=)5 And B(un=)6

Nun stellt allerdings folgenden Problem:
Er hat für die erste Spalte: 0+1+2+0+2 = 41 berechnet.
Diese groben Rechenfehler zeigen sich auch in den anderen Spalten, obwohl ich innerhalb der Spalten eine einfache Addition versuchte.

Was habe ich in dieser Schleife falsch gemacht?

Ps.: Falls es jemanden interessieren sollte, ich habe den fx-975GA PLUS verwendet.
Genieße den heutigen Tag,
denn mit dem heutigen Tag,
beginnt der Rest deines Lebens
Benutzeravatar
Anderesio
 
Beiträge: 158
Registriert: Di 30. Nov 2010, 20:41
Taschenrechner:

Re: Matrix als Tabelle

Beitragvon Anderesio » Di 22. Feb 2011, 13:41

Ich korrigiere mich,
bei dem Bsp. sollte es folgend heißen:
Mat C[1,1]+Mat C[2,1]+Mat C[3,1]+Mat C[4,1]+Mat C[5,1] = Mat C[6,1]
Genieße den heutigen Tag,
denn mit dem heutigen Tag,
beginnt der Rest deines Lebens
Benutzeravatar
Anderesio
 
Beiträge: 158
Registriert: Di 30. Nov 2010, 20:41
Taschenrechner:

Re: Matrix als Tabelle

Beitragvon cfxm » Di 22. Feb 2011, 18:16

Könnte es vielleicht sein, dass in Mat C[6,B] noch ein alter Wert stand? Ich habe es nämlich mal getestet und es funktioniert.

PS: Schöner lässt sich das mit zwei verschachtelten For-Schleifen machen bzw. kann man auch die Anweisung "Mat->List()" mit dem Listenbefehl "Sum" kombinieren.
cfxm
 
Beiträge: 739
Registriert: Mi 1. Apr 2009, 19:39

Re: Matrix als Tabelle

Beitragvon Anderesio » Mi 23. Feb 2011, 00:31

Ahh...
Ich habe noch einmal nachgeschaut, und meine Matrix war wirklich noch nicht ganz leer :oops:
Nachdem ich sie mal geleert hatte funktionierte es wie erwünscht.
Das Programm hatte lediglich immer die alten Werte noch hinzuaddiert.
Genieße den heutigen Tag,
denn mit dem heutigen Tag,
beginnt der Rest deines Lebens
Benutzeravatar
Anderesio
 
Beiträge: 158
Registriert: Di 30. Nov 2010, 20:41
Taschenrechner:


Zurück zu Casio Basic (Alle Modelle, die dies unterstützen)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste