| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- CONST
- ArraySize = 7;
- type
- ref = ^real;
- vec = array [1..ArraySize] of ref;
- {------------------------------------}
- function MaxX(var X:vec):real;
- var
- cm:real;
- i:1..ArraySize;
- begin
- cm :=-MaxInt;
- for i:=1 to ArraySize do
- if X[i]^ > cm then cm := X[i]^;
- MaxX := cm;
- end; {MaxX}
- {--------------------------------}
- Function SameX(var X:vec):boolean;
- var
- ret:boolean;
- i,j:1..ArraySize;
- begin
- ret:=false;
- for i:=1 to ArraySize do
- for j:=1 to ArraySize do
- if (j <> i) and (X[i]=X[j]) then ret:=true;
- SameX:=ret;
- end;{SameX}
- {--------------------------------}
- Procedure UniqueX(var X:vec);
- var
- i,j:1..ArraySize;
- begin
- for i:=1 to ArraySize do
- for j:=1 to ArraySize do
- if (I<>J) and (X[j]^=X[i]^) and (X[j]<>X[i]) then X[j]:=X[i];
- end;{UniqueX}
- {--------------------------------}
- Procedure ReadArray(var X:vec);
- var
- i : 1..ArraySize;
- begin
- for i := 1 to ArraySize do
- begin
- if X[i] = nil then New(X[I]);
- Read(X[i]^);
- end;
- end;{ReadArray}
- {--------------------------------}
- Procedure WriteArray(var X:vec);
- var
- i : 1..ArraySize;
- begin
- for i := 1 to ArraySize do
- WriteLn(LongInt(X[i]),' --> ',X[i]^:4:3);
- end;{WriteArray}
- {---------------------------------}
- Var
- X : vec;
- BEGIN
- WriteLn('Введите ',ArraySize, ' чисел:');
- ReadArray(X);
- WriteLn('Максимальное: ',MaxX(X):0:4);
- WriteLn('Массив, до выполнения процедуры Unique');
- WriteArray(X);
- UniqueX(X);
- WriteLn('Массив, после выполнения процедуры Unique');
- WriteArray(X);
- if SameX(X) then
- WriteLn('Есть элементы с одинаковыми ссылками')
- else
- WriteLn('Нет элементов с одинаковыми ссылками');
- END.
|