Помогите пожалуйста оформить программу в виде модуля
Помогите пожалуйста оформить программу ввиде модуля
[FONT="]program [/FONT][FONT="]ex_8_16_v;[/FONT]
[FONT="] type Vector = array of [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] Matrix = array of Vector;[/FONT]
[FONT="] var A : Matrix;[/FONT]
[FONT="] B : Vector;[/FONT]
[FONT="] l, n : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] f1 : text;[/FONT]
[FONT="] Procedure FormMatr(var X:Matrix);[/FONT]
[FONT="] var i, j : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] begin[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] for [/FONT][FONT="]j := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]X[i,j] := random([/FONT][FONT="]1[/FONT][FONT="],[/FONT][FONT="]5[/FONT][FONT="]);[/FONT]
[FONT="] end;[/FONT]
[FONT="] Procedure WriteMatr(var X:Matrix);[/FONT]
[FONT="] var i, j : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] begin[/FONT]
[FONT="] For [/FONT][FONT="]i := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] begin[/FONT]
[FONT="] for [/FONT][FONT="]j := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]Write(X[i,j]:[/FONT][FONT="]4[/FONT][FONT="]);[/FONT]
[FONT="] Writeln;[/FONT]
[FONT="] end;[/FONT]
[FONT="] end;[/FONT]
[FONT="] Function F(X : Matrix;i : [/FONT][FONT="]integer[/FONT][FONT="]):[/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] var j, S : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] begin[/FONT]
[FONT="]S := [/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] for j := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]S := S*X[j,i];[/FONT]
[FONT="] F := S;[/FONT]
[FONT="] end;[/FONT]
[FONT="] Procedure Selection(var X : Vector);[/FONT]
[FONT="] var i,j, nom, min : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] BEGIN[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]2 [/FONT][FONT="]do[/FONT]
[FONT="] begin[/FONT]
[FONT="]nom := i;[/FONT]
[FONT="] min := X;[/FONT]
[FONT="] for j := i+[/FONT][FONT="]1 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] if [/FONT][FONT="]X[j] < min then[/FONT]
[FONT="] begin[/FONT]
[FONT="]min := X[j];[/FONT]
[FONT="] nom := j;[/FONT]
[FONT="] end;[/FONT]
[FONT="] X[nom] := X;[/FONT]
[FONT="] X := min;[/FONT]
[FONT="] end;[/FONT]
[FONT="] END;[/FONT]
[FONT="] Procedure Exchange(var X : Vector);[/FONT]
[FONT="] var i, j, c : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] BEGIN[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]1 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] for [/FONT][FONT="]j := n-[/FONT][FONT="]1 [/FONT][FONT="]downto [/FONT][FONT="]i do[/FONT]
[FONT="] if [/FONT][FONT="]X[j-[/FONT][FONT="]1[/FONT][FONT="]] > X[j] then[/FONT]
[FONT="] begin[/FONT]
[FONT="]c := X[j-[/FONT][FONT="]1[/FONT][FONT="]];[/FONT]
[FONT="] X[j-[/FONT][FONT="]1[/FONT][FONT="]] := X[j];[/FONT]
[FONT="] X[j] := c;[/FONT]
[FONT="] end;[/FONT]
[FONT="] END;[/FONT]
[FONT="] Procedure Insertion2(var X : Vector);[/FONT]
[FONT="] var i, j, k, c : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] BEGIN[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]1 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] begin[/FONT]
[FONT="]c := X;[/FONT]
[FONT="] j := i-[/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] k := [/FONT][FONT="]0[/FONT][FONT="];[/FONT]
[FONT="] While j > -[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] if [/FONT][FONT="]X > X[j] then[/FONT]
[FONT="] begin[/FONT]
[FONT="]k := j + [/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] j := -[/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] end[/FONT]
[FONT="] else [/FONT][FONT="]j := j - [/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] for j := i downto k + [/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]X[j] := X[j-[/FONT][FONT="]1[/FONT][FONT="]];[/FONT]
[FONT="] X[k] := c;[/FONT]
[FONT="] end;[/FONT]
[FONT="] END;[/FONT]
[FONT="] begin[/FONT]
[FONT="]Assign(f1,[/FONT][FONT="]'Otsortirovan.txt'[/FONT][FONT="]);[/FONT]
[FONT="] Rewrite(f1);[/FONT]
[FONT="] Write([/FONT][FONT="]'Vvedite poryadok matricy n = '[/FONT][FONT="]);[/FONT]
[FONT="] Readln
;[/FONT]
[FONT="] Setlength(A,n);[/FONT]
[FONT="] For l := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]Setlength(A[l],n);[/FONT]
[FONT="] Setlength(B,n);[/FONT]
[FONT="] FormMatr(A);[/FONT]
[FONT="]// WriteMatr(A);[/FONT]
[FONT="]for [/FONT][FONT="]l := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]// begin[/FONT]
[FONT="]B[l] := F(A,l);[/FONT]
[FONT="]// Write(B[l],' ');[/FONT]
[FONT="] // end;[/FONT]
[FONT="]Setlength(A,[/FONT][FONT="]0[/FONT][FONT="]); [/FONT]
[FONT="] Writeln([/FONT][FONT="]'Kakim metodom osyshestvit sortirovky ?'[/FONT][FONT="]);[/FONT]
[FONT="] Writeln([/FONT][FONT="]'1 - prostoi obmen.'[/FONT][FONT="]);[/FONT]
[FONT="] Writeln([/FONT][FONT="]'2 - prostoi vybor.'[/FONT][FONT="]);[/FONT]
[FONT="] Writeln([/FONT][FONT="]'3 - prostaya vstavka.'[/FONT][FONT="]);[/FONT]
[FONT="] Write([/FONT][FONT="]'l = '[/FONT][FONT="]);[/FONT]
[FONT="] Readln(l);[/FONT]
[FONT="] Case l of [/FONT]
[FONT="]1 [/FONT][FONT="]: Exchange(B);[/FONT]
[FONT="]2 [/FONT][FONT="]: Selection(B);[/FONT]
[FONT="]3 [/FONT][FONT="]: Insertion2(B);[/FONT]
[FONT="] end; [/FONT]
[FONT="] for l := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]Write(f1,B[l],[/FONT][FONT="]' '[/FONT][FONT="]);[/FONT]
[FONT="]Close(f1);[/FONT]
[FONT="] Setlength(B,[/FONT][FONT="]0[/FONT][FONT="]); [/FONT]
[FONT="] end.[/FONT]
Помогите пожалуйста оформить программу ввиде модуля
[FONT="]program [/FONT][FONT="]ex_8_16_v;[/FONT]
[FONT="] type Vector = array of [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] Matrix = array of Vector;[/FONT]
[FONT="] var A : Matrix;[/FONT]
[FONT="] B : Vector;[/FONT]
[FONT="] l, n : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] f1 : text;[/FONT]
[FONT="] Procedure FormMatr(var X:Matrix);[/FONT]
[FONT="] var i, j : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] begin[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] for [/FONT][FONT="]j := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]X[i,j] := random([/FONT][FONT="]1[/FONT][FONT="],[/FONT][FONT="]5[/FONT][FONT="]);[/FONT]
[FONT="] end;[/FONT]
[FONT="] Procedure WriteMatr(var X:Matrix);[/FONT]
[FONT="] var i, j : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] begin[/FONT]
[FONT="] For [/FONT][FONT="]i := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] begin[/FONT]
[FONT="] for [/FONT][FONT="]j := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]Write(X[i,j]:[/FONT][FONT="]4[/FONT][FONT="]);[/FONT]
[FONT="] Writeln;[/FONT]
[FONT="] end;[/FONT]
[FONT="] end;[/FONT]
[FONT="] Function F(X : Matrix;i : [/FONT][FONT="]integer[/FONT][FONT="]):[/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] var j, S : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] begin[/FONT]
[FONT="]S := [/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] for j := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]S := S*X[j,i];[/FONT]
[FONT="] F := S;[/FONT]
[FONT="] end;[/FONT]
[FONT="] Procedure Selection(var X : Vector);[/FONT]
[FONT="] var i,j, nom, min : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] BEGIN[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]2 [/FONT][FONT="]do[/FONT]
[FONT="] begin[/FONT]
[FONT="]nom := i;[/FONT]
[FONT="] min := X;[/FONT]
[FONT="] for j := i+[/FONT][FONT="]1 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] if [/FONT][FONT="]X[j] < min then[/FONT]
[FONT="] begin[/FONT]
[FONT="]min := X[j];[/FONT]
[FONT="] nom := j;[/FONT]
[FONT="] end;[/FONT]
[FONT="] X[nom] := X;[/FONT]
[FONT="] X := min;[/FONT]
[FONT="] end;[/FONT]
[FONT="] END;[/FONT]
[FONT="] Procedure Exchange(var X : Vector);[/FONT]
[FONT="] var i, j, c : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] BEGIN[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]1 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] for [/FONT][FONT="]j := n-[/FONT][FONT="]1 [/FONT][FONT="]downto [/FONT][FONT="]i do[/FONT]
[FONT="] if [/FONT][FONT="]X[j-[/FONT][FONT="]1[/FONT][FONT="]] > X[j] then[/FONT]
[FONT="] begin[/FONT]
[FONT="]c := X[j-[/FONT][FONT="]1[/FONT][FONT="]];[/FONT]
[FONT="] X[j-[/FONT][FONT="]1[/FONT][FONT="]] := X[j];[/FONT]
[FONT="] X[j] := c;[/FONT]
[FONT="] end;[/FONT]
[FONT="] END;[/FONT]
[FONT="] Procedure Insertion2(var X : Vector);[/FONT]
[FONT="] var i, j, k, c : [/FONT][FONT="]integer[/FONT][FONT="];[/FONT]
[FONT="] BEGIN[/FONT]
[FONT="] for [/FONT][FONT="]i := [/FONT][FONT="]1 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] begin[/FONT]
[FONT="]c := X;[/FONT]
[FONT="] j := i-[/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] k := [/FONT][FONT="]0[/FONT][FONT="];[/FONT]
[FONT="] While j > -[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="] if [/FONT][FONT="]X > X[j] then[/FONT]
[FONT="] begin[/FONT]
[FONT="]k := j + [/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] j := -[/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] end[/FONT]
[FONT="] else [/FONT][FONT="]j := j - [/FONT][FONT="]1[/FONT][FONT="];[/FONT]
[FONT="] for j := i downto k + [/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]X[j] := X[j-[/FONT][FONT="]1[/FONT][FONT="]];[/FONT]
[FONT="] X[k] := c;[/FONT]
[FONT="] end;[/FONT]
[FONT="] END;[/FONT]
[FONT="] begin[/FONT]
[FONT="]Assign(f1,[/FONT][FONT="]'Otsortirovan.txt'[/FONT][FONT="]);[/FONT]
[FONT="] Rewrite(f1);[/FONT]
[FONT="] Write([/FONT][FONT="]'Vvedite poryadok matricy n = '[/FONT][FONT="]);[/FONT]
[FONT="] Readln
[FONT="] Setlength(A,n);[/FONT]
[FONT="] For l := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]Setlength(A[l],n);[/FONT]
[FONT="] Setlength(B,n);[/FONT]
[FONT="] FormMatr(A);[/FONT]
[FONT="]// WriteMatr(A);[/FONT]
[FONT="]for [/FONT][FONT="]l := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]// begin[/FONT]
[FONT="]B[l] := F(A,l);[/FONT]
[FONT="]// Write(B[l],' ');[/FONT]
[FONT="] // end;[/FONT]
[FONT="]Setlength(A,[/FONT][FONT="]0[/FONT][FONT="]); [/FONT]
[FONT="] Writeln([/FONT][FONT="]'Kakim metodom osyshestvit sortirovky ?'[/FONT][FONT="]);[/FONT]
[FONT="] Writeln([/FONT][FONT="]'1 - prostoi obmen.'[/FONT][FONT="]);[/FONT]
[FONT="] Writeln([/FONT][FONT="]'2 - prostoi vybor.'[/FONT][FONT="]);[/FONT]
[FONT="] Writeln([/FONT][FONT="]'3 - prostaya vstavka.'[/FONT][FONT="]);[/FONT]
[FONT="] Write([/FONT][FONT="]'l = '[/FONT][FONT="]);[/FONT]
[FONT="] Readln(l);[/FONT]
[FONT="] Case l of [/FONT]
[FONT="]1 [/FONT][FONT="]: Exchange(B);[/FONT]
[FONT="]2 [/FONT][FONT="]: Selection(B);[/FONT]
[FONT="]3 [/FONT][FONT="]: Insertion2(B);[/FONT]
[FONT="] end; [/FONT]
[FONT="] for l := [/FONT][FONT="]0 [/FONT][FONT="]to [/FONT][FONT="]n-[/FONT][FONT="]1 [/FONT][FONT="]do[/FONT]
[FONT="]Write(f1,B[l],[/FONT][FONT="]' '[/FONT][FONT="]);[/FONT]
[FONT="]Close(f1);[/FONT]
[FONT="] Setlength(B,[/FONT][FONT="]0[/FONT][FONT="]); [/FONT]
[FONT="] end.[/FONT]