ForNext
Only Do What Only You Can Do
051. 多次元配列の受け渡し
VBScript
JScript
Perl
更新日 : 2010.10.18
sub mat_add { ($ma, $mb, $mc) = @_; foreach $i(0..1) { foreach $j(0..2) { $$mc[$i][$j] = $ma[$i][$j] + $mb[$i][$j]; } } } @ma = ([1, 2, 3], [4, 5, 6]); @mb = ([6, 3, 4], [5, 1, 2]); @mc = ([], []); &mat_add(\@ma, \@mb, \@mc); foreach $i(0..1) { foreach $j(0..2) { printf("%3d", $mc[$i][$j]); } print "\n"; }
L:\>perl lesson_06_051.pl 7 5 7 9 6 8
PHP
更新日 : 2010.11.03
<?php function mat_add($ma, $mb, &$mc) { for ($i = 0; $i < 2; $i++) { for ($j = 0; $j < 3; $j++) { $mc[$i][$j] = $ma[$i][$j] + $mb[$i][$j]; } } } $ma = array(array(1, 2, 3), array(4, 5, 6)); $mb = array(array(6, 3, 4), array(5, 1, 2)); $mc = array(array(), array()); mat_add($ma, $mb, $mc); for ($i = 0; $i < 2; $i++) { for ($j = 0; $j < 3; $j++) { printf("%3d", $mc[$i][$j]); } print "\n"; } ?>
L:\>php lesson_06_051.php 7 5 7 9 6 8
Python
更新日 : 2010.11.17
def mat_add(ma, mb, mc): for i in range(0, 2, 1): for j in range(0, 3, 1): mc[i][j] = ma[i][j] + mb[i][j] ma = [[1, 2, 3], [4, 5, 6]] mb = [[6, 3, 4], [5, 1, 2]] mc = [[0, 0, 0], [0, 0, 0]] mat_add(ma, mb, mc) for i in range(0, 2, 1): for j in range(0, 3, 1): print "%3d" % mc[i][j], print
N:\>python lesson_06_051.py 7 5 7 9 6 8
Ruby
更新日 : 2010.11.01
def mat_add(a, b, c) for i in 0..1 for j in 0..2 c[i][j] = a[i][j] + b[i][j] end end end ma = [[1, 2, 3], [4, 5, 6]] mb = [[6, 3, 4], [5, 1, 2]] mc = [[], []] mat_add(ma, mb, mc) for i in 0..1 for j in 0..2 printf("%3d", mc[i][j]) end puts "" end
L:\>ruby l:\lesson_06_051.rb 7 5 7 9 6 8
PowerShell
Scala
F#
C
更新日 : 2010.10.08
#include <stdio.h> void mat_add(const int ma[][3], const int mb[][3], int mc[][3]) { int i, j; for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) mc[i][j] = ma[i][j] + mb[i][j]; } int main(int argc, char* argv[]) { int ma[2][3] = {{1, 2, 3}, {4, 5, 6}}; int mb[2][3] = {{6, 3, 4}, {5, 1, 2}}; int mc[2][3] = {0}; mat_add(ma, mb, mc); int i, j; for (i = 0; i < 2; i++) { for (j = 0; j < 3; j++) printf("%3d", mc[i][j]); putchar('\n'); } return 0; }
R:\>lesson051\project1.exe 7 5 7 9 6 8
C++
C++Builder
VC++
C#
Java
更新日 : 2010.11.05
class Lesson051 { public static void main(String[] args) { int ma[][] = {{1, 2, 3}, {4, 5, 6}}; int mb[][] = {{6, 3, 4}, {5, 1, 2}}; int mc[][] = new int[2][3]; mat_add(ma, mb, mc); for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) System.out.printf("%3d", mc[i][j]); System.out.print('\n'); } } static void mat_add(final int ma[][], final int mb[][], int mc[][]) { for (int i = 0; i < 2; i++) for (int j = 0; j < 3; j++) mc[i][j] = ma[i][j] + mb[i][j]; } }
L:\>java Lesson051 7 5 7 9 6 8
Objective-C
D
VB
VB.NET
Delphi
更新日 : 2010.09.24
program Project1; {$APPTYPE CONSOLE} uses SysUtils; type TMyArray = array[1..2, 1..3] of Integer; procedure mat_add(const ma:TMyArray; const mb:TMyArray; var mc:TMyArray); var i, j: Integer; begin for i := 1 to 2 do for j := 1 to 3 do mc[i, j] := ma[i, j] + mb[i, j]; end; var ma: TMyArray = ((1, 2, 3), (4, 5, 6)); mb: TMyArray = ((6, 3, 4), (5, 1, 2)); mc: TMyArray; i, j: Integer; begin mat_add(ma, mb, mc); for i := 1 to 2 do begin for j := 1 to 3 do write(format('%3d', [mc[i, j]])); writeln(''); end; end.
S:\>lesson051\project1.exe 7 5 7 9 6 8