Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > シェルプログラミングとスクリプティング
Googleのサイト



シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。

Closed Thread
English Japanese Spanish French German Portuguese Italian を搭載 Powered by Google
 
スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2003年4月14日
photon's Avatar
登録ユーザー
 

参加日: 2002年7月
投稿数: 164
Perlでリファレンス2次元配列のサブ

私を参照するためには、 2次元配列の試みです
サブルーチンと、この1つを理解できそうもない Perlの

誰でも知っていますか?私を啓発してください。


コード:
#!/usr/bin/perl -w

use constant DIM => 4;

sub Shift_elements_right{
    my (@Input, @Output) = @_;
    for ($i = 0 ; $i <= DIM ; $i++ ){
	$Output[$i + 1] = $Input[$i];
    }
    $Output[1] = $Input[DIM];
}


# Initialize
for ($i = 0; $i <= DIM; $i++){
    $weight[0][$i] = $i;
}

# Shift call
for ($i = 0; $i <= DIM; $i++){
    Shift_elements_right(\@weight[$i], \@weight[$i + 1]);
}

# Print output.
for ($i = 0; $i <= DIM; $i++){
    for ($j = 0; $j <= DIM; $j++){
	print "Weight $i : $weight[$i][$j]\t";
    }
    print "\n";
}

スポンサーリンク
  #2固定リンク)  
Old 2003年4月15日
oombera's Avatar
oombera oombera is offline Forum Advisor  
登録ユーザー
 

参加日: 2002年8月
場所:クリーブランド、オ
投稿数: 804
ちょっとやろうとしている場合の詳細については説明してもらえますか?

私はあなたが今やっているのを選ぶことができますが、なぜか分からない..場合は、どのような状況で、なぜ、それが我々 ..あなたを助けるお手伝いします説明
  #3固定リンク)  
Old 2003年4月15日
photon's Avatar
登録ユーザー
 

参加日: 2002年7月
投稿数: 164
これは、実際には、より複雑なパスカルプログラム私です
午前に変換する Perlの。指定されたコードですが小さい
より大きなプログラムの例です。

パスカルは、プログラムのコードではこのようになります:


コード:
CONST DIM = 4;
TYPE Vector = ARRAY [1..DIM] of REAL;
weights: ARRAY[1..DIM] of Vector;

PROCEDURE Initialize;
	VAR I: INTEGER;

	BEGIN
	FOR I := 1 TO DIM DO
		weights[1][I] := I;
	END



PROCEDURE Shift_elements_right (Input : Vector;
				VAR Output: Vector);
	VAR I: INTEGER;
	
	BEGIN
	FOR I := 1 TO DIM DO
		Output[I+1] := Input[I];
	Ouptut[1] := Input[DIM];
	END

BEGIN
FOR I := 1 TO DIM DO
	Shift_elements_right(weights[I], weights[I+1]);
END;


それには、 4 × 4次元配列を作成することになっているだけ
ベクトルの最初の行に初期化している。

私の質問に再現することです Perlの。私はしたいと思います
リファレンスとして配列を渡すと、 4 × 4の値を
サブルーチンを通じて次元の配列です。

Odviously私はこれを行うことができますが、サブルーチンでは、と
この大規模プログラムpracticleされていません。
  #4固定リンク)  
Old 2003年4月15日
oombera's Avatar
oombera oombera is offline Forum Advisor  
登録ユーザー
 

参加日: 2002年8月
場所:クリーブランド、オ
投稿数: 804
次元配列は、次のようにもできる: 2つの初期化するには
コード:
@array1 = ('0', '0', '0', '0');
@array2 = ('0', '0', '0', '0');
@array3 = ('0', '0', '0', '0');
@array4 = ('0', '0', '0', '0');

@bigArray = (\@array1, \@array2, \@array3, \@array4);

または、これ(私はうまくいくでしょうしてください)を簡素化する:
コード:
@bigArray = ( ['0', '0', '0', '0'],
              ['0', '0', '0', '0'],
              ['0', '0', '0', '0'],
              ['0', '0', '0', '0']
);

特定の値を参照し、使用することができます:

コード:
$bigArray[0][0]; # first row, first column
$bigArray[2][1]; # third row, second column

の値を、使用して格納するには:

コード:
$bigArray[2][1] = '5'

または、サブルーチン:

コード:
for ($i = 0; $i < DIM; $i++){
    for ($j = 0; $j < DIM; $j++){
        bigArray[$i][$j] = $j; #assuming $j is the value you want to store...
    }
}

私は作品を知っているものはありませんね...
  #5固定リンク)  
Old 2003年4月15日
photon's Avatar
登録ユーザー
 

参加日: 2002年7月
投稿数: 164
次のコードを自分の問題を解決するようだ。


コード:
#!/usr/bin/perl -w

use constant DIM => 4;

sub Shift_elements_right{
    my ($ref) = shift;
    for($j = 1 ; $j <= DIM ; $j++){
	for ($i = 1 ; $i <= DIM ; $i++ ){
	    $ref->[$j + 1][$i + 1] = $ref->[$j][$i];
	}
    $ref->[$j + 1][1] = $ref->[$j][DIM];
    }
}


# Initialize
for ($i = 1; $i <= DIM; $i++){
	$weights[1][$i] = $i;
}

# Shift call
Shift_elements_right(\@weights);

# Print output.
for ($i = 1; $i <= DIM; $i++){
    for ($j = 1; $j <= DIM; $j++){
	print "Weight $i : $weights[$i][$j]\t";
    }
    print "\n";
}

  #6固定リンク)  
Old 2003年4月16日
WIntellect's Avatar
登録ユーザー
 

参加日: 2002年9月
場所:イギリス
投稿数: 170
引用:
サンプルのコードを以下略
のi : \u003d 1を暗くしてください
重みを[1] [私]:\u003d私;
エンド
あなたの場合、残しておく Perlの コードのように、元の、あなたは上記のように、この方法で物事を行うことができると考えている:
引用:
)私は( 1 ..薄暗いforeachの$ (
#プロセス$私はここ
スポンサーリンク
Closed Thread

ブックマーク

タグ
perlのperlのシフトシフトperlのシフト

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる オフ


その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
perlのファイルでは@配列に値を書き込むにはperl meghana シェルプログラミングとスクリプティング 27 2009年6月7日 06:05午後
Perlの:修飾子を参照の取得に戻る cooldude シェルプログラミングとスクリプティング 8 2008年3月19日 09:49午前
どのように配列の最後の値を取得することはperl meghana シェルプログラミングとスクリプティング 7 2008年2月4日 05:12午後
perlの配列に分割で jaganadh シェルプログラミングとスクリプティング 3 2007年7月6日 06:29午前
レコード( 2次元配列にしています。 ) murtaza シェルプログラミングとスクリプティング 1 2007年3月13日 08:10午後



すべてGMT -4です。現在の時刻は 07:59午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
UNIXおよびLinuxのフォーラムコンテンツの著作権© 1993から2010。すべての権利Reserved.Ad管理で RedTyger

コンテンツ関連のURLで vBSEO 3.2.0