Условие задачи: Если в прямоугольной матрице все суммы элементов строк попадают на заданный отрезок, определить номер строки с максимальной суммой элементов, иначе определить номера строк, сумма элементов которых не попала на заданный отрезок.
Помогите исправить программу так, чтобы ввод матрицы 5 на 5 и границ отрезка c,b
осуществлялся через нестандартные текстовые файлы
Program V;
type matr=array[1..5,1..5] of integer;
type massiv=array[1..5] of integer;
Procedure Summa(var S:massiv; var A:matr);
var i,j; integer;
begin
for i:=1 to 5 do
begin
S[i]:=0;
for j:=1 to 5 do
S[i]:=S[i]+A[i,j];
end;
end;
Function Nomer(var S:massiv; c,b:integer):integer;
var i,Number:integer;
begin
Number:=0;
for i:=1 to 5 do
begin
if ((S[i]>c)and(S[i]<b)) then Number:=Number+1;
end;
end;
Procedure Number_N(var S,N:massiv; c,b:integer);
var i:integer;
begin
for i:=1 to 5 do
begin
if ((S[i]<c)or(S[i]>b))
then N[i]:=i
else N[i]:=0;
end;
end;
Function Number_max(var S:massiv):integer;
var i,Nmax,max:integer;
begin
Nmax:=1; max:=S[1];
for i:=2 to 5 do
begin
if S[i]>max
then
begin
Max:=S[i];
Nmax:=I;
end;
end;
Number_max:=Nmax;
end;
Var
A:matr;
S,N:massiv;
c,b,max,I,j,Nmax,Number:integer;
begin
write(‘vv c,b’);
readln(c,b );
for i:=1 to 5 do
for j:=1 to 5 do
readln(A[I,j]);
Summa(S,A);
Nomer(S,c,b );
if Nomer(S,c,b )=5
then
begin
Number_max(S);
writeln(‘Nmax=’, Number_max(S));
end
else
begin
Number_N(S,N,c,b );
for i:=1 to 5 do
writeln(‘N[i]=’, N[i]);
end;
end.
А что подразумевается под "Нестандартные текстовые файлы"?
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)