Язык программирования Pascal. Процедуры и функции. Рекурсия. Васильев В.В - 27 стр.

UptoLike

27
В функции det в переменной s накапливается сумма произведений элемен-
тов первой строки на их алгебраические дополнения . В переменной sign хра-
нится результат возведения (-1) в степень k+1.
Program Det_A;
Uses crt;
Const n_max=3;
Type Mas=array[1..n_max,1..n_max] of integer;
Var a:Mas;i,j:integer;
Function det(a:Mas; n:integer):integer;
var i,j,s,k,sign:integer; b:Mas;
begin
if n>1
then
begin
s:=0;
for k:=1 to n do
begin
if odd(k+1)
then sign:=-1 else sign:=1;
b:=a;
{вычеркивание 1-й строки и k-го столбца}
for i:=1 to n-1 do
for j:=1 to n do b[i,j]:=b[i+1,j];
for i:=1 to n-1 do
for j:=k to n-1 do b[i,j]:=b[i,j+1];
s:=s+sign*a[1,k]*det(b,n-1);
end;
det:=s
end
else det:=a[1,1];
end;{det}
Begin
Textbackground(7); Textcolor(blue); Clrscr;
for i:=1 to n_max do
for j:=1 to n_max do read(a[i,j]);
writeln('det=',det(a,n_max)); readkey
End.{Det_A}
Подготовьтесь к ответам на все(!) контрольные вопросы и выполните
все(!) контрольные задания. Дорогу осилит идущий!
Контрольные вопросы и задания
1. Метод последовательной детализации. Функции
1. Что такое алгоритмический блок ?
2. Что такое блочное программирование? Зачем оно применяется ?
3. Что называют подпрограммой ?
4. В чем суть метода последовательной детализации?