Professional Documents
Culture Documents
Es simetrica
Es cuadrada
Transpuesta
Sume
reste
multiplique
La clase
OrderedCollection subclass: #Matriz
instanceVariableNames: 'filas columnas'
classVariableNames: ''
poolDictionaries: ''
category: 'MisClases'
Los metodos
Mtodos de Clase
new: unEntero
^ self new: unEntero por: unEntero
new: rows por: cols
| ret |
ret := super new: rows.
ret inicializar: rows @ cols.
Los metodos
Mtodos de Instancia
columnas
^ columnas
en: unPar
| row col |
row := unPar x.
col := unPar y.
^ (super at: row) at: col
Los metodos
Mtodos de Instancia
en: unPar poner: unValor
| row col |
row := unPar x.
col := unPar y.
^ (super at: row) at: col put: unValor
esCuadrada
^ filas = columnas
Los metodos
Mtodos de Instancia
esSimetrica
| ret cuentaFila cuentaCol |
self esCuadrada ifFalse: [^ false].
cuentaFila := 1.
cuentaCol := 1.
ret := self transpuesta.
Filas timesRepeat: [columnas
timesRepeat:
Los metodos
Mtodos de Instancia
filas
^ filas
inicializar: unPar
filas := unPar x.
columnas := unPar y.
1 to: filas do:[:cuentaFila | self add: (Array new: columnas).
1 to: columnas do:[:cuentaCol | (super at: cuentaFila)
at:cuentaCol put:0]]
Los metodos
Mtodos de Instancia
transpuesta
| ret |
ret := Matriz new: self columnas por: self filas.
1 to:filas do:[:cuentaFila | 1 to:columnas do:[:cuentaCol | ret
en:cuentaCol@cuentaFila
poner: (self en: cuentaFila @ cuentaCol)]].
^ret
Los metodos
Mtodos de Instancia
*unaMatriz
|sumfilcolcol2m1xm2|
fil:=selffilas.obtenerelnumerodecolumnasdelobjetoreceptor
col:=selfcolumnas.obtenerelnumerodecolumnasdelobjetoreceptor
col2:=unaMatrizcolumnas.obtenerelnumerodecolumnasdeunaMatriz
m1xm2:=Matriznew:filpor:col2.secrealamatrizdetamofilxcol2
1to:fildo:[:contafil|
1to:col2do:[:contacol| m1xm2en:contafil@contacolponer:0.
1to:coldo:[:contaK|
sum:=(m1xm2en:contafil@contacol)
+((selfen:contafil@contaK)
*(unaMatrizen:contaK@contacol)).
(m1xm2at:contafil)at:contacolput:sum]]].
^m1xm2
Los metodos
Mtodos de Instancia
+unaMatriz
|sumfilcol|
fil:=selffilas.
col:=selfcolumnas.
1to:fil do:[:contafil|1to:coldo:
[:contacol|sum:=(selfen:contafil@
contacol)+(unaMatrizen:contafil@
contacol).
(superat:contafil)at:contacolput:
sum]]
Los metodos
Mtodos de Instancia
unaMatriz
|restafilcol|
fil:=selffilas.
col:=selfcolumnas.
1to:fildo:
[:contafil|1to:coldo:
[:contacol|resta:=(selfen:contafil@contacol)
(unaMatrizen:contafil@contacol).
(superat:contafil)at:contacolput:resta]]