А надо вот так.
Только просьба: поскольку у Вас по куче ошибок буквально в каждой строке, то внимательно сверьте два кода. Особое внимание - на то, что относится к типам, а что - к константам (у Вас какая-то жуткая мешанина!), на разделители в параметрах процедуры - точка с запятой, а не запятая, на вызов процедуры ну и, пожалуй, на всё прочее
.
Код:
program lab_6;
const
N=5;
M=4;
type
mass_a=array [1..N,1..M] of real;
mass_b=array [1..M] of real;
mass_c=array [1..N] of real;
const
a:mass_a=((3.3,2.8,2.91,8.03),(-5.6,1.01,2.25,5.48),
(-5.4,3.08,6.2,4.85),(3.01,21.8,9.4,-51.4),(6.1,8.2,11.4,13.8));
b:mass_b=(54.1,25.4,-1.01,6.8);
var
c:mass_c;
i:integer;
Procedure ProcC(ap:mass_a;bp:mass_b;var cp:mass_c);
var ip,jp:integer;
begin
for ip:=1 to N do
begin
cp[ip]:=0;
for jp:=1 to M do
cp[ip]:=cp[ip]+ap[ip,jp]*bp[jp];
end;
end;
begin
ProcC(a,b,c);
For i:=1 to N do
writeln(c[i]:8:4);
readln
end.
Если что не понятно - спрашивайте, не стесняйтесь.