2014-08-31 5 views
1

두 개의 배열을 매개 변수로 사용하는 QBasic 함수가 있습니다. 해당 배열이 함수에서 갖는 차원의 수를 찾는 것이 가능한지 알고 싶습니다.QBasic에서 배열 매개 변수의 크기를 찾는 방법

문맥을 위해 QBasic 유닛 테스트 라이브러리를위한 assertArrayEqual 함수를 작성합니다.

+2

차원이 범위를 벗어나 있지만, QBASIC의 오류 처리가 매우 추한 때 오류를'LBOUND' /'UBOUND'를 호출 잡기에 의해 그것을 할 수 있습니다. 다른 차원에 대해 별도의 기능을 만드는 것이 더 나을 것 같아요. – Boann

답변

0

이것을 수행 할 방법이 없습니다. 명시된 바와 같이 상한 및 하한을 결정할 수 있지만 배열에 포함 된 차원의 수를 미리 알아야합니다. 내 지식으로는 상위 버전에서도이 기능을 사용할 수 없습니다.

+0

오류가 발생할 때까지 루프에서 배열 차원의 상한을 테스트하면 차원을 계산할 수 있습니다. – eoredson

0

할 수는 있지만 예쁜 것은 아닙니다. (QB64 소스).

REM sample code to find number of dimensions in an array 
DIM a(2, 2, 2) AS INTEGER 
DIM SHARED E AS INTEGER 
ON ERROR GOTO 10 
CALL array(a()) 
END 
10 E = -1: RESUME NEXT 
SUB array (a() AS INTEGER) 
DO 
    X = X + 1 
    T = UBOUND(a, X) 
    IF E THEN 
     X = X - 1 
     PRINT "Array has"; X; "dimensions." 
     EXIT DO 
    END IF 
LOOP 
END SUB 
+0

발생하는 오류는 9 (아래 첨자가 범위를 벗어남)이며 트랩 될 수 있습니다. – eoredson