Уважаемый
poiu, конечно, это всё прекрасно, вот только... одного я тут в упор не вижу: модулей. А ведь, как я понял, именно работа с модулями и составляет суть задания. А потому осмелюсь предложить свой вариант:
1. Модуль (сохранить под именем
My_Unit.pas. Другие названия недопустимы! Ну то есть можно поменять, но одновременно имя модуля в первой строке и имя файла - они должны быть строго одинаковыми):
Код:
Unit My_Unit;
Interface
Const
N=20;
Type
Arr=Array[1..N] of Byte;
Function Minimum(Q:Arr):Byte;
Function Maximum(Q:Arr):Byte;
Function Sum(Q:Arr):Integer;
Procedure Revers(var Q:Arr);
Implementation
Function Minimum(Q:Arr):Byte;
var i,M:byte;
begin
M:=Q[1];
for i:=2 to N do
if Q[i]<M then M:=Q[i];
Minimum:=M;
end;
Function Maximum(Q:Arr):Byte;
var i,M:byte;
begin
M:=Q[1];
for i:=2 to N do
if Q[i]>M then M:=Q[i];
Maximum:=M;
end;
Function Sum(Q:Arr):Integer;
var i:byte; S:Integer;
begin
S:=0;
for i:=1 to N do Inc(S,Q[i]);
Sum:=S;
end;
Procedure Revers(var Q:Arr);
var i,tmp:Byte;
begin
for i:=1 to (N div 2) do
begin
tmp:=Q[i];
Q[i]:=Q[N-i+1];
Q[N-i+1]:=tmp;
end;
end;
End.
2. Сама программа:
Код:
Uses My_Unit;
Var
A:Arr;
i:Byte;
Begin
Randomize;
Writeln('Initial Array:');
For i:=1 to N do
begin
A[i]:=Random(100);
write(A[i]:4);
end;
Writeln;
Writeln;
Writeln('Min= ',Minimum(A));
Writeln('Max= ',Maximum(A));
Writeln('Sum= ',Sum(A));
Writeln;
Revers(A);
Writeln('Reversed Array:');
For i:=1 to N do write(A[i]:4);
Readln
End.