Q&A

  • function에 관한 질문이있는데요..(초보라서)
삼차원 array값을 function에 넘겨주어 값을 구해 오는 방법좀 가르쳐주세요..



잘안되네요.. 예를 들면요.. E2의 값을 function으로 주고 function에서



PERM값을 구해서 QK에 줄려구요.. I,J,K는 반복문으로 돌아가구요..





QK[I,J,K]:=PERM(E2[I,J,K]);



function PERM(E: array of real):real;

begin



PERM:= 1/(-82.4626*(sqr(E[X,Y,Z]-1.3858))+ 135.9433);



end;



어떻게 해야하는지 답좀해주세요..



그럼 수고하세요...

3  COMMENTS
  • Profile
    최용일 2000.05.18 00:28
    안녕하세요. 최용일입니다.



    좀 이상한 질문이네요. 배열을 넘겨주어 값을 구한다고 했는데 코딩은 배열의 한



    값을 넘겨주네요.



    아뭏든 아래와 같이 하시면 되겠네요.



    type

    TEArray = array[0..9, 0..9, 0..9] of Real;

    // 동적으로 배열을 선언할 때, 아래와 같이 사용하실려면 먼저 배열의 크기를

    // 할당 받아야 합니다.

    // TEArray = array of array of array of Integer;



    function PERM(E: TEArray; X, Y, Z: Integer): Real;

    begin



    Result := 1/(-82.4626 * Sqr(E[X,Y,Z] - 1.3858) + 135.9433);



    end;



    QK[I,J,K]:=PERM(E2, I, J, K);



    ^^ 항상 즐코하세요.

    novice wrote:

    > 삼차원 array값을 function에 넘겨주어 값을 구해 오는 방법좀 가르쳐주세요..

    >

    > 잘안되네요.. 예를 들면요.. E2의 값을 function으로 주고 function에서

    >

    > PERM값을 구해서 QK에 줄려구요.. I,J,K는 반복문으로 돌아가구요..

    >

    >

    > QK[I,J,K]:=PERM(E2[I,J,K]);

    >

    > function PERM(E: array of real):real;

    > begin

    >

    > PERM:= 1/(-82.4626*(sqr(E[X,Y,Z]-1.3858))+ 135.9433);

    >

    > end;

    >

    > 어떻게 해야하는지 답좀해주세요..

    >

    > 그럼 수고하세요...

  • Profile
    novice 2000.05.18 00:12
    flash wrote:

    > novice wrote:

    > > 삼차원 array값을 function에 넘겨주어 값을 구해 오는 방법좀 가르쳐주세요..

    > >

    > > 잘안되네요.. 예를 들면요.. E2의 값을 function으로 주고 function에서

    > >

    > > PERM값을 구해서 QK에 줄려구요.. I,J,K는 반복문으로 돌아가구요..

    > >

    > >

    > > QK[I,J,K]:=PERM(E2[I,J,K]);

    > >

    > > function PERM(E: array of real):real;

    > > begin

    > >

    > > PERM:= 1/(-82.4626*(sqr(E[X,Y,Z]-1.3858))+ 135.9433);

    > >

    > > end;

    > >

    > > 어떻게 해야하는지 답좀해주세요..

    > >

    > > 그럼 수고하세요...

    >

    > 안녕하세요~

    >

    > 위의 함수를 보니 X,Y,Z은 선언 되지 않았는데 전역변수인지요?

    > 함수 내부에서 E배열의 범위 전체를 접근한다면 이런방법이 있습니다.

    >

    >

    > type T_E = array[0..9,0..9,0..9] of real;

    >

    > var QK:T_E;

    > E2:T_E;

    >

    > ....

    > QK[I,J,K]:=PERM(E2[I,J,K]);

    > ....

    >

    > function PERM(const E: T_E ):real;

    > begin

    >

    > PERM:= 1/(-82.4626*(sqr(E[X,Y,Z]-1.3858))+ 135.9433);

    >

    > end;

    >

    > const는 배열을 수정못하게 하기도 하지만 속도면에서도 매우 빠릅니다.

    >

    > 좋은하루 되세요~



    우선 답글을 올려주셔서 고맙습니다..



    근데 잘 안되는데요..



    QK[I,J,K]:=PERM(E2[I,J,K]); 여기에 missing operator or semicolon 이라는 메세지와



    PERM:= 1/(-82.4626*(sqr(E[X,Y,Z]-1.3858))+ 135.9433); array type required라는 에



    러 메서지가 끝네요..



    어떻게 된건지 죄송하지만 한번만더 가르쳐주세요..

  • Profile
    타락천사 2000.05.17 18:48
    안녕하세여.. 타락임다..^^



    제 생각에는 삼차원 어레이를 전역변수로 쓰는것이 좋겠네여..



    함수 파라미터로 줄수도 있지만, 전역변수로 쓰는게 정신건강상 좋아요..^^



    novice wrote:

    > 삼차원 array값을 function에 넘겨주어 값을 구해 오는 방법좀 가르쳐주세요..

    >

    > 잘안되네요.. 예를 들면요.. E2의 값을 function으로 주고 function에서

    >

    > PERM값을 구해서 QK에 줄려구요.. I,J,K는 반복문으로 돌아가구요..

    >

    >

    > QK[I,J,K]:=PERM(E2[I,J,K]);

    >

    > function PERM(E: array of real):real;

    > begin

    >

    > PERM:= 1/(-82.4626*(sqr(E[X,Y,Z]-1.3858))+ 135.9433);

    >

    > end;

    >

    > 어떻게 해야하는지 답좀해주세요..

    >

    > 그럼 수고하세요...