oarrFunc.pas 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. CONST
  2. ArraySize = 7;
  3. type
  4. ref = ^real;
  5. vec = array [1..ArraySize] of ref;
  6. {------------------------------------}
  7. function MaxX(var X:vec):real;
  8. var
  9. cm:real;
  10. i:1..ArraySize;
  11. begin
  12. cm :=-MaxInt;
  13. for i:=1 to ArraySize do
  14. if X[i]^ > cm then cm := X[i]^;
  15. MaxX := cm;
  16. end; {MaxX}
  17. {--------------------------------}
  18. Function SameX(var X:vec):boolean;
  19. var
  20. ret:boolean;
  21. i,j:1..ArraySize;
  22. begin
  23. ret:=false;
  24. for i:=1 to ArraySize do
  25. for j:=1 to ArraySize do
  26. if (j <> i) and (X[i]=X[j]) then ret:=true;
  27. SameX:=ret;
  28. end;{SameX}
  29. {--------------------------------}
  30. Procedure UniqueX(var X:vec);
  31. var
  32. i,j:1..ArraySize;
  33. begin
  34. for i:=1 to ArraySize do
  35. for j:=1 to ArraySize do
  36. if (I<>J) and (X[j]^=X[i]^) and (X[j]<>X[i]) then X[j]:=X[i];
  37. end;{UniqueX}
  38. {--------------------------------}
  39. Procedure ReadArray(var X:vec);
  40. var
  41. i : 1..ArraySize;
  42. begin
  43. for i := 1 to ArraySize do
  44. begin
  45. if X[i] = nil then New(X[I]);
  46. Read(X[i]^);
  47. end;
  48. end;{ReadArray}
  49. {--------------------------------}
  50. Procedure WriteArray(var X:vec);
  51. var
  52. i : 1..ArraySize;
  53. begin
  54. for i := 1 to ArraySize do
  55. WriteLn(LongInt(X[i]),' --> ',X[i]^:4:3);
  56. end;{WriteArray}
  57. {---------------------------------}
  58. Var
  59. X : vec;
  60. BEGIN
  61. WriteLn('‚¢¥¤¨â¥ ',ArraySize, ' ç¨á¥«:');
  62. ReadArray(X);
  63. WriteLn('Œ ªá¨¬ «ì­®¥: ',MaxX(X):0:4);
  64. WriteLn('Œ áᨢ, ¤® ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë Unique');
  65. WriteArray(X);
  66. UniqueX(X);
  67. WriteLn('Œ áᨢ, ¯®á«¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë Unique');
  68. WriteArray(X);
  69. if SameX(X) then
  70. WriteLn('…áâì í«¥¬¥­âë á ®¤¨­ ª®¢ë¬¨ áá뫪 ¬¨')
  71. else
  72. WriteLn('�¥â í«¥¬¥­â®¢ á ®¤¨­ ª®¢ë¬¨ áá뫪 ¬¨');
  73. END.