Lo que puedes hacer es dividir los pasos que das...
En un primer paso pides las materias,
En un segundo paso pides las notas
En un tercer paso calculas los promedios
Finalmente en el cuarto paso muestras los resultados.
Creo que estás mezclando el segundo y el tercer paso.
Código Delphi
[-]
Program promedio_materias;
Uses wincrt;
Type
Vector=array [1..4] of string;
Matriz=array [1..4,1..3] of real;
Promedio=array [1..4] of real;
Var
Vecmateria: vector;
Mat: matriz;
P: promedio;
I, f: integer;
suma: real;
Begin
For I:=1 to 3 do
Begin
Writeln ('Indicar Materia', I);
Readln (vecmateria[i]);
End;
vecmateria[4]:= 'Promedio';
For I:=1 to 3 do
begin
For f:=1 to 3 do
Begin
Writeln ('Indicar nota de la materia: ', vecmateria[i], ' En el corte Numero: ', f );
Readln (mat[I,f]);
end;
end;
For I:=1 to 3 do
begin
Suma:=0;
For f:=1 to 3 do
Begin
suma:=mat[I,f] + suma;
end;
p[i]:=suma/3;
end;
for I:= 1 to 3 do
Begin
writeln ('El promedio es ', p[i]:2:2);
end;
writeln;
end.