Q:
⑴ eg:
     type
        threeD=(x,y,z);
        set=arrray[threeD] of real;
        ...
     Var
        a,b,:set;
     如何引用该数组? a[x]:=1 ? a[y]:=..  a[z]:=..⑵如何使用{$R+}编译参数?⑶字符数组如何引用?
  type
     letter='a'..'z';
     chr=array[letter] of char;
     ...
  Var
     sum:chr;     sum[a]:=1 ?

解决方案 »

  1.   

    (1)a[x]:=1 ? a[y]:=..  a[z]:=.. is right
    var
     i:threeD;
    begin
     for i:=low(threeD) to high(ThreeD) do
      ..
      

  2.   

    1、基本正确,但不能用set做类型名。
    2、看HELP,上有详细说明。
    3、用 sum['a'] := 'a' 引用
    注意:1、不能用set做类型名,set是保留字.
       2、不要用chr做类型名,同上。
      

  3.   

    sunlily(阳光) 说得有些错误:
    set是关键字,不能用作自定义类型名,但Chr不是关键字,而是预定义标识符(是一个函数名),是可以被重定义为自定义类型名的(但最好不要这样作)。
    (1)(假设类型名用的是set1):
        共三个元素:
        第一个元素:a[x] := 1.000;
        第二个元素:a[y] := 2.000;
        第三个元素:a[z] := 3.000;(2)
     {R+}表明打开边界检查,用于数组和字符串类型,可以更容易地找到一些逻辑错误,但影响速度,建议在Debug版本使用。
    (3)
       共26个元素。使用示例:
    type
       letter='a'..'z';
       chr=array[letter] of char;
    Var
       sum:chr;
       i:char;
    begin
      sum['a']:='a';
      for i := 'a' to 'z' do
        sum[i] := i;
    end;     ____     ____
         \ p \   / g /
          \ l \_/ n /
           \ a   o /
            \ i s /
             \ n /
              \_/