Помогите, пожалуйста, разобраться. по-моему много где наошибалась, но никак не пойму где
Задание:Даны массивы А[1:5,1:6] и В[1:5,1:6]. В каждой строке матрицы В получить сумму элементов лежащих в диапазоне [–5;5] и из этих сумм сформировать вектор С. Если минимальный элемент вектора С меньше 10, то вставить за этим элементом сумму предыдущих элементов вектора С, иначе переставить строку с мин. элементом матрицы А со строкой с мин. элементом матрицы В. В подпрограмме формирования вектора С использовать п/п нахождения суммы элементов, лежащих в диапазоне.
Вот что получилось у меня:
program kr;
uses wincrt;
Type Massiv=Array [1..5,1..6] Of Integer;
Vector=Array [1..6] Of Integer;
var A,B:Massiv;
C:Vector;
A_min, A_max,B_min, B_max, minA, minB, minC: Integer;
i, j, NminAx, NminBx, NminC:Byte;
Procedure Vvod_Massiv(m,n:byte; Min, Max: Integer; Var Mass: Massiv);
Var i, j: byte;
Begin
Randomize;
For i:=1 To m Do
For j:=1 To n Do
Mass[i,j]:=Random(Max-Min)+Min;
End;
Procedure Vyvod_Massiv(m,n:byte; Var Mass: Massiv);
Var i, j: byte;
Begin
Randomize;
For i:=1 To m Do
begin
For j:=1 To n Do
Write(Mass[i,j]:5,' ');
writeln;
end;
End;
Function Sum_elementov_massiv_B(m,n: byte; mass: Massiv):Integer;
Var i,j: byte;
s: Integer;
Begin
For i:=1 to m do
begin
s:=0;
For j:=1 to n do
if (mass[i,j]>=-5) and (mass[i,j]<=5)
then
begin
s:=s+mass[i,j];
Sum_elementov_massiv_B:=s;
end;
end;
end;
Procedure Form_Vector(m:byte; Mass: Massiv; Var Vect: Vector);
Var i: byte;
Begin
For i:=1 to m do
vect[i]:=Sum_elementov_massiv_B(5,6,B);
end;
Procedure Vyvod_Vector(m:byte; Var Vect: Vector);
Var i: byte;
Begin
For i:=1 To m Do
Write(Vect[i]:5,' ');
writeln;
End;
procedure min_element_vector_C (m:byte; Vect: Vector; var NminC:byte;
var minC:integer);
Var i: byte;
Begin
minC:=vect[1]; NminC:=1;
For i:=2 To m Do
if vect[i]<minC
then
begin
minC:=vect[i];
NminC:=i;
end;
end;
function sum_pred_minC (vect:vector):integer;
var i:byte;
z:integer;
begin
z:=0;
For i:=1 to minC-1 do
z:=z+vect[i];
sum_pred_minC:=z;
end;
procedure vstavka_v_vector_C(m:byte; vect1:vector; var vect:vector);
var i:byte;
begin
For i:=m+1 downto NminC+1 do
vect[i]:=vect[i-1];
vect[NminC+1]:=sum_pred_minC(C);
end;
procedure min_element_massiv_A (m,n:byte; mass: massiv; var NminAx:byte;
var minA:integer);
Var i,j,NminAy: byte;
Begin
minA:=mass[1,1]; NminAx:=1; NminAy:=1;
For i:=1 To m Do
For j:=1 to n do
if mass[i,j]<minA
then
begin
minA:=mass[i,j];
NminAx:=i;
end;
end;
procedure min_element_massiv_B (m,n:byte; mass: massiv; var NminBx:byte;
var minB:integer);
Var i,j,NminBy: byte;
Begin
minB:=mass[1,1]; NminBx:=1; NminBy:=1;
For i:=1 To m Do
For j:=1 to n do
if mass[i,j]<minB
then
begin
minB:=mass[i,j];
NminBx:=i;
end;
end;
procedure zamena_strok (var Mass1: Massiv; Mass2: Massiv);
Var i, j: byte;
temp:integer;
Begin
temp:=mass1[NminAx,j];
mass1[NminAx,j]:=mass2[NminBx,j];
mass2[NminBx,j]:=temp;
end;
begin
clrscr;
Write('минимальный элемент=');
ReadLn(A_Min);
Write('максимальный элемент=');
ReadLn(A_Max);
Vvod_Massiv(5,6, A_Min, A_Max, A);
writeln ('исходная матрица A');
Vyvod_Massiv(5,6, A);
writeln;
Write('минимальный элемент=');
ReadLn(B_Min);
Write('максимальный элемент=');
ReadLn(B_Max);
Vvod_Massiv(5,6, B_Min, B_Max, B);
writeln ('исходная матрица B');
Vyvod_Massiv(5,6, B);
writeln;
Form_Vector(5, B, C);
writeln ('вектор C, сформированный из сумм элементов каждой строки матрицы B, лежащих в диапазоне [-5;5]');
Vyvod_Vector(5, C);
writeln;
min_element_vector_C (5, C, NminC, minC);
writeln ('минимальный элемент вектора C=',minC);
writeln;
if (minC<10)
then
begin
vstavka_v_vector_C(5, C, C);
writeln ('измененный вектор C');
Vyvod_Vector(6, C);
end
else
begin
min_element_massiv_A (5,6, A, NminAx, minA);
min_element_massiv_B (5,6, B, NminBx, minB);
zamena_strok (A, B);
writeln ('измененная матрица A');
Vyvod_Massiv(5,6, A);
writeln ('измененная матрица B');
Vyvod_Massiv(5,6, B);
end;
readln;
end.
Заранее спасибо!!!!