📄 c64109g.ada
字号:
-- C64109G.ADA-- Grant of Unlimited Rights---- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained -- unlimited rights in the software and documentation contained herein.-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making -- this public release, the Government intends to confer upon all -- recipients unlimited rights equal to those held by the Government. -- These rights include rights to use, duplicate, release or disclose the -- released technical data and computer software in whole or in part, in -- any manner and for any purpose whatsoever, and to have or permit others -- to do so.---- DISCLAIMER---- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A-- PARTICULAR PURPOSE OF SAID MATERIAL.--*-- CHECK THAT SLICES OF ARRAYS ARE PASSED CORRECTLY TO SUBPROGRAMS.-- SPECIFICALLY,-- (A) CHECK ALL PARAMETER MODES.-- CPP 8/28/84-- PWN 05/31/96 Corrected spelling problem.WITH REPORT; USE REPORT;PROCEDURE C64109G ISBEGIN TEST ("C64109G", "CHECK THAT SLICES OF ARRAYS ARE PASSED " & "CORRECTLY TO SUBPROGRAMS"); -------------------------------------------- DECLARE -- (A) SUBTYPE SUBINT IS INTEGER RANGE 1..5; TYPE ARRAY_TYPE IS ARRAY (SUBINT RANGE <>) OF INTEGER; ARR : ARRAY_TYPE (1..5) := (1..3 => 7, 4..5 => 9); BOOL : BOOLEAN; PROCEDURE P1 (S : ARRAY_TYPE) IS BEGIN IF S(IDENT_INT(3)) /= 7 THEN FAILED ("IN PARAMETER NOT PASSED CORRECTLY - (A)"); END IF; IF S(4) /= 9 THEN FAILED ("IN PARAMETER NOT PASSED CORRECTLY - (A)2"); END IF; END P1; FUNCTION F1 (S : ARRAY_TYPE) RETURN BOOLEAN IS BEGIN IF S(3) /= 7 THEN FAILED ("IN PARAMETER NOT PASSED CORRECTLY - (A)"); END IF; IF S(IDENT_INT(4)) /= 9 THEN FAILED ("IN PARAMETER NOT PASSED CORRECTLY - (A)2"); END IF; RETURN TRUE; END F1; PROCEDURE P2 (S : IN OUT ARRAY_TYPE) IS BEGIN IF S(3) /= 7 THEN FAILED ("IN OUT PARAM NOT PASSED CORRECTLY - (A)"); END IF; IF S(4) /= 9 THEN FAILED ("IN OUT PARAM NOT PASSED CORRECTLY - (A)2"); END IF; FOR I IN 3 .. 4 LOOP S(I) := 5; END LOOP; END P2; PROCEDURE P3 (S : OUT ARRAY_TYPE) IS BEGIN FOR I IN 3 .. 4 LOOP S(I) := 3; END LOOP; END P3; BEGIN -- (A) P1 (ARR(3..4)); IF ARR(3) /= 7 THEN FAILED ("IN PARAM CHANGED BY PROCEDURE - (A)"); END IF; IF ARR(4) /= 9 THEN FAILED ("IN PARAM CHANGED BY PROCEDURE - (A)2"); END IF; BOOL := F1 (ARR(IDENT_INT(3)..IDENT_INT(4))); IF ARR(3) /= 7 THEN FAILED ("IN PARAM CHANGED BY FUNCTION - (A)"); END IF; IF ARR(4) /= 9 THEN FAILED ("IN PARAM CHANGED BY FUNCTION - (A)2"); END IF; P2 (ARR(3..4)); FOR I IN 3 .. 4 LOOP IF ARR(I) /= 5 THEN FAILED ("IN OUT PARAM RETURNED INCORRECTLY - (A)"); END IF; END LOOP; P3 (ARR(IDENT_INT(3)..4)); FOR I IN 3 .. 4 LOOP IF ARR(I) /= 3 THEN FAILED ("OUT PARAM RETURNED INCORRECTLY - (A)"); END IF; END LOOP; END; RESULT;END C64109G;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -