Element-wise operations: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: fixed a couple of syntax glitches, added personal tag) |
(Element-wise operations en FreeBASIC) |
||
Line 1,390: | Line 1,390: | ||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
<lang freebasic>Dim Shared As Double a(1,2) = {{7, 8, 7}, {4, 0, 9}} |
|||
Dim Shared As Double b(1,2) = {{4, 5, 1}, {6, 2, 1}} |
|||
Dim Shared As Double c(1,2) |
|||
Dim Shared As Double fila, columna |
|||
Dim Shared As String p |
|||
Sub list(a() As Double) |
|||
p = "[" |
|||
For fila = 0 To Ubound(a,1) |
|||
p &= "[" |
|||
For columna = 0 To Ubound(b,2) |
|||
p &= Str(a(fila, columna)) + ", " |
|||
Next columna |
|||
p = Left(p,Len(p)-2) + "]" |
|||
Next fila |
|||
p &= "]" |
|||
Print p; |
|||
End Sub |
|||
REM Matrix-Matrix: |
|||
Sub Mostrarmm(a() As Double, op As String, b() As Double, c() As Double) |
|||
list(a()) : Print " "; op; " "; : list(b()) : Print " = "; : list(c()) : Print |
|||
End Sub |
|||
Sub addmm(a() As Double, b() As Double, c() As Double) |
|||
REM adición |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(b,2) To Ubound(b,2) |
|||
c(fila, columna) = a(fila,columna) + b(fila,columna) |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub resmm(a() As Double, b() As Double, c() As Double) |
|||
REM sustracción |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(b,2) To Ubound(b,2) |
|||
c(fila, columna) = a(fila,columna) - b(fila,columna) |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub mulmm(a() As Double, b() As Double, c() As Double) |
|||
REM multiplicación |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(b,2) To Ubound(b,2) |
|||
c(fila, columna) = a(fila,columna) * b(fila,columna) |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub divmm(a() As Double, b() As Double, c() As Double) |
|||
REM división |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(b,2) To Ubound(b,2) |
|||
c(fila, columna) = a(fila,columna) / b(fila,columna) |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub powmm(a() As Double, b() As Double, c() As Double) |
|||
REM exponenciación |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(b,2) To Ubound(b,2) |
|||
c(fila, columna) = a(fila,columna) ^ b(fila,columna) |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
REM Matrix-Scalar: |
|||
Sub Mostrarms(a() As Double, op As String, b As Double, c() As Double) |
|||
list(a()) : Print " "; op; " "; Str(b); " = "; : list(c()) : Print |
|||
End Sub |
|||
Sub addms(a() As Double, b As Double, c() As Double) |
|||
REM adición |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(a,2) To Ubound(a,2) |
|||
c(fila, columna) = a(fila,columna) + b |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub resms(a() As Double, b As Double, c() As Double) |
|||
REM sustracción |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(a,2) To Ubound(a,2) |
|||
c(fila, columna) = a(fila,columna) - b |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub mulms(a() As Double, b As Double, c() As Double) |
|||
REM multiplicación |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(a,2) To Ubound(a,2) |
|||
c(fila, columna) = a(fila,columna) * b |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub divms(a() As Double, b As Double, c() As Double) |
|||
REM división |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(a,2) To Ubound(a,2) |
|||
c(fila, columna) = a(fila,columna) / b |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
Sub powms(a() As Double, b As Double, c() As Double) |
|||
REM exponenciación |
|||
For fila = Lbound(a,1) To Ubound(a,1) |
|||
For columna = Lbound(a,2) To Ubound(a,2) |
|||
c(fila, columna) = a(fila,columna) ^ b |
|||
Next columna |
|||
Next fila |
|||
End Sub |
|||
REM Matrix-Matrix: |
|||
addmm(a(), b(), c()) : Mostrarmm(a(), "+", b(), c()) |
|||
resmm(a(), b(), c()) : Mostrarmm(a(), "-", b(), c()) |
|||
mulmm(a(), b(), c()) : Mostrarmm(a(), "*", b(), c()) |
|||
divmm(a(), b(), c()) : Mostrarmm(a(), "/", b(), c()) |
|||
powmm(a(), b(), c()) : Mostrarmm(a(), "^", b(), c()) |
|||
Print |
|||
REM Matrix-Scalar: |
|||
addms(a(), 3, c()) : Mostrarms(a(), "+", 3, c()) |
|||
resms(a(), 3, c()) : Mostrarms(a(), "-", 3, c()) |
|||
mulms(a(), 3, c()) : Mostrarms(a(), "*", 3, c()) |
|||
divms(a(), 3, c()) : Mostrarms(a(), "/", 3, c()) |
|||
powms(a(), 3, c()) : Mostrarms(a(), "^", 3, c()) |
|||
Sleep</lang> |
|||
{{out}} |
|||
<pre>[[7, 8, 7][4, 0, 9]] + [[4, 5, 1][6, 2, 1]] = [[11, 13, 8][10, 2, 10]] |
|||
[[7, 8, 7][4, 0, 9]] - [[4, 5, 1][6, 2, 1]] = [[3, 3, 6][-2, -2, 8]] |
|||
[[7, 8, 7][4, 0, 9]] * [[4, 5, 1][6, 2, 1]] = [[28, 40, 7][24, 0, 9]] |
|||
[[7, 8, 7][4, 0, 9]] / [[4, 5, 1][6, 2, 1]] = [[1.75, 1.6, 7][0.6666666666666666, 0, 9]] |
|||
[[7, 8, 7][4, 0, 9]] ^ [[4, 5, 1][6, 2, 1]] = [[2401, 32768, 7][4096, 0, 9]] |
|||
[[7, 8, 7][4, 0, 9]] + 3 = [[10, 11, 10][7, 3, 12]] |
|||
[[7, 8, 7][4, 0, 9]] - 3 = [[4, 5, 4][1, -3, 6]] |
|||
[[7, 8, 7][4, 0, 9]] * 3 = [[21, 24, 21][12, 0, 27]] |
|||
[[7, 8, 7][4, 0, 9]] / 3 = [[2.333333333333334, 2.666666666666667, 2.333333333333334][1.333333333333333, 0, 3]] |
|||
[[7, 8, 7][4, 0, 9]] ^ 3 = [[343, 512, 343][64, 0, 729]]</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |