ForNext
Only Do What Only You Can Do
048. 受け取った配列への書き込み
VBScript
JScript
Perl
更新日 : 2010.10.18
$NINSU = 5; sub int_set { (@vc) = @_; $no = $vc[0]; for (1..$no) { $vc[$_] = $_; } } sub int_set2 { ($no, $vc) = @_; for (0..$$no - 1) { $$vc[$_] = $_; } } @ary = (); print "関数 呼び出し前\n"; for (0..$NINSU - 1) { printf(" ary[%d] = %d\n", $_, @ary[$_]); } &int_set($NINSU, @ary); print "関数 呼び出し後\n"; for (0..$NINSU - 1) { printf(" ary[%d] = %d\n", $_, @ary[$_]); } &int_set2(\$NINSU, \@ary); print "関数 呼び出し後\n"; for (0..$NINSU - 1) { printf(" ary[%d] = %d\n", $_, @ary[$_]); }
L:\>perl lesson_06_048.pl 関数 呼び出し前 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 関数 呼び出し後 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 関数 呼び出し後 ary[0] = 0 ary[1] = 1 ary[2] = 2 ary[3] = 3 ary[4] = 4
PHP
更新日 : 2010.11.03
<?php $NINSU = 5; function int_set($no, $vc) { for ($i = 0; $i < $no; $i++) { $vc[$i] = $i; } } function int_set2($no, &$vc) { for ($i = 0; $i < $no; $i++) { $vc[$i] = $i; } } $ary = array(); print "関数 呼び出し前\n"; for ($i = 0; $i < $NINSU; $i++) { printf(" ary[%d] = %d\n", $i, $ary[$i]); } int_set($NINSU, $ary); print "関数 呼び出し後\n"; for ($i = 0; $i < $NINSU; $i++) { printf(" ary[%d] = %d\n", $i, $ary[$i]); } int_set2($NINSU, $ary); print "関数 呼び出し後\n"; for ($i = 0; $i < $NINSU; $i++) { printf(" ary[%d] = %d\n", $i, $ary[$i]); } ?>
L:\>php lesson_06_048.php 関数 呼び出し前 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 関数 呼び出し後 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 関数 呼び出し後 ary[0] = 0 ary[1] = 1 ary[2] = 2 ary[3] = 3 ary[4] = 4
Python
更新日 : 2010.11.17
# coding: Shift_JIS NINSU = 5 def int_set(no, vc): for i in range(0, no, 1): vc[i] = 0 ary = range(NINSU); print "関数 呼び出し前" for i in range(0, NINSU, 1): print " ary[%d] = %d" % (i, ary[i]) int_set(NINSU, ary) print "関数 呼び出し後" for i in range(0, NINSU, 1): print " ary[%d] = %d" % (i, ary[i])
N:\>python lesson_06_048.py 関数 呼び出し前 ary[0] = 0 ary[1] = 1 ary[2] = 2 ary[3] = 3 ary[4] = 4 関数 呼び出し後 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0
Ruby
更新日 : 2010.11.01
NINSU = 5 def int_set(no, vc) for i in 0..(no - 1) vc[i] = i end end ary = [] puts "関数 呼び出し前" for i in 0..(NINSU - 1) printf(" ary[%d] = %d\n", i, ary[i]) end int_set(NINSU, ary) puts "関数 呼び出し後" for i in 0..(NINSU - 1) printf(" ary[%d] = %d\n", i, ary[i]) end
L:\>ruby l:\lesson_06_048.rb 関数 呼び出し前 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 関数 呼び出し後 ary[0] = 0 ary[1] = 1 ary[2] = 2 ary[3] = 3 ary[4] = 4
PowerShell
Scala
F#
C
更新日 : 2010.10.08
#include <stdio.h> #define NINSU 5 void int_set(int vc[], int no) { int i; for (i = 0; i < no; i++) vc[i] = i; no = 0; } int main(int argc, char* argv[]) { int i = NINSU; int j; int ary[NINSU] = {0}; printf("関数 呼び出し前\n"); printf(" i = %d\n", i); for (j = 0; j < NINSU; j++) printf(" ary[%d] = %d\n", j, ary[j]); int_set(ary, i); printf("関数 呼び出し後\n"); printf(" i = %d\n", i); for (j = 0; j < NINSU; j++) printf(" ary[%d] = %d\n", j, ary[j]); return 0; }
R:\>lesson048\project1.exe 関数 呼び出し前 i = 5 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 関数 呼び出し後 i = 5 ary[0] = 0 ary[1] = 1 ary[2] = 2 ary[3] = 3 ary[4] = 4
C++
C++Builder
VC++
C#
Java
更新日 : 2010.11.05
class Lesson048 { static final int NINSU = 5; public static void main(String[] args) { int i = NINSU; int[] ary = new int[NINSU]; System.out.printf("関数 呼び出し前\n"); System.out.printf(" i = %d\n", i); for (int j = 0; j < NINSU; j++) System.out.printf(" ary[%d] = %d\n", j, ary[j]); int_set(ary, i); System.out.printf("関数 呼び出し後\n"); System.out.printf(" i = %d\n", i); for (int j = 0; j < NINSU; j++) System.out.printf(" ary[%d] = %d\n", j, ary[j]); } static void int_set(int vc[], int no) { for (int i = 0; i < no; i++) vc[i] = i; no = 0; } }
L:\>java Lesson048 関数 呼び出し前 i = 5 ary[0] = 0 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 関数 呼び出し後 i = 5 ary[0] = 0 ary[1] = 1 ary[2] = 2 ary[3] = 3 ary[4] = 4
Objective-C
D
VB
VB.NET
Delphi
更新日 : 2010.09.24
program Project1; {$APPTYPE CONSOLE} uses SysUtils; procedure int_set1(vc:array of Integer; no: Integer); var i: Integer; begin for i := Low(vc) to High(vc) do vc[i] := i; no := 0; end; procedure int_set2(var vc:array of Integer; var no: Integer); var i: Integer; begin for i := Low(vc) to High(vc) do vc[i] := i; no := 0; end; const NINSU = 5; var i: Integer = NINSU; j: Integer; ary: array[1..NINSU] of Integer = (0, 0, 0, 0, 0); begin writeln('関数 呼び出し前'); writeln(format(' i = %d', [i])); for j := 1 to NINSU do writeln(format('ary[%d] = %d', [j, ary[j]])); int_set1(ary, i); writeln('関数 呼び出し後 1'); writeln(format(' i = %d', [i])); for j := 1 to NINSU do writeln(format('ary[%d] = %d', [j, ary[j]])); int_set2(ary, i); writeln('関数 呼び出し後 2'); writeln(format(' i = %d', [i])); for j := 1 to NINSU do writeln(format('ary[%d] = %d', [j, ary[j]])); end.
S:\>lesson048\project1.exe 関数 呼び出し前 i = 5 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 ary[5] = 0 関数 呼び出し後 1 i = 5 ary[1] = 0 ary[2] = 0 ary[3] = 0 ary[4] = 0 ary[5] = 0 関数 呼び出し後 2 i = 0 ary[1] = 1 ary[2] = 2 ary[3] = 3 ary[4] = 4 ary[5] = 5