Задача в следующем дано
массив 0.5 -2 4.1 -3 -1.3 5.2 -1.1 6.6
исходный файл 2 4 0.5 -2 4.1 -3 -1.3 5.2 -1.1 6.6
где 2,4 размер матрицы
главная программа
Код | program units;
{$APPTYPE CONSOLE}
uses SysUtils, myunit in 'myunit.pas';
var A:arr; // ìàññèâ À m,n:integer; // ðàçìåð êâàäðàòíîé ìàòðèöû begin ReadFromFile(A,m); // ÷òåíèå äàííûõ èç ôàéëà KYB(A,m,n); // ðåøåíèå îñíîâíîé çàäà÷è SaveToFile(Amin,Amax,R); // âûâîä ðåçóëüòàòîâ â ôàéë Finalize(A); // îñâîáîæäåíèå äèíàìè÷åñêîé ïàìÿòè end.
|
модуль
Код | unit myunit;
interface type arr=array of array of integer; // òèï arr äëÿ ìàññèâà À // Èíòåðôåéñ ïðîöåäóðû ÷òåíèÿ ìàññèâà èç ôàéëà Procedure ReadFromFile(var A:arr;var m,n:integer); // Èíòåðôåéñ ïðîöåäóðû íàõîæäåíèÿ ìèíèìàëüíîãî è // ìàêñèìàëüíîãî ýëåìåíòîâ ìàññèâà è èõ ðàçíîñòè Procedure KYB(A:arr; m,n:integer); // îïèñàíèå ïðîöåäóðû âûâîäà ðåçóëüòàòà â ôàéë Procedure SaveToFile(Amin,Amax,R:integer);
implementation // ðàçäåë ðåàëèçàöèè //------------------------------------------------------------- // Îïèñàíèå ïðîöåäóðû ÷òåíèÿ ìàññèâà èç ôàéëà //------------------------------------------------------------- Procedure ReadFromFile(var A:arr; var m,n:integer); Var i,j:integer; // ñ÷åò÷èêè ïî ñòðîêàì, ñòîëáöàì fi:text; // ôàéëîâàÿ ïåðåìåííàÿ begin // Ôàéëîâîé ïåðåìåííîé fi íàçíà÷àåòñÿ ôàéë Units.txt AssignFile(fi,'Units.txt'); Reset(fi); // òåêñòîâûé ôàéë îòêðûâàåòñÿ äëÿ ÷òåíèÿ Readln(fi,m,n); // ÷òåíèå ðàçìåðà SetLength(A,m,n); // âûäåëåíèå ïàìÿòè äèíàìè÷åñêîìó ìàññèâó A for i:=0 to m-1 do // ÷òåíèå èç ôàéëà ìàòðèöû À for j:=0 to n-1 do Read(fi,A[i,j]); CloseFile(fi); // çàêðûòèå ôàéëà fi end; //------------------------------------------------------------- // Îïèñàíèå ïðîöåäóðû íàõîæäåíèÿ ìèíèìàëüíîãî è ìàêñèìàëüíîãî // ýëåìåíòîâ ìàññèâà //------------------------------------------------------------- Procedure KYB(A:arr; var m,n :integer); Var // n?ao?eee ii no?ieai, noieaoai - eieaeuiua ia?aiaiiua i, j : word; begin for i:=1 to m do for j:=1 to n do begin if A[i,j]<0 then begin A[i,j]:=A[i,j]*A[i,j]*A[i,j]; end else A[i,j]:=A[i,j]*A[i,j]; end; end;
//------------------------------------------------------------- // Îïèñàíèå ïðîöåäóðû âûâîäà ðåçóëüòàòà â ôàéë //------------------------------------------------------------- Procedure SaveToFile(var f:text;A:arr;var m,n:integer); begin var i,j:integer; for i:=1 to n do begin for j:=1 to m do begin Write(A[i,j]); writeln; end; end; for i:=1 to n do begin for j:=1 to m do Writeln(f,A[i,j]); end;
end;
end.
|
Помогите найти ошибки в программе у меня при запуске возникает такое
[Error] myunit.pas(36): Declaration of 'KYB' differs from previous declaration [Error] myunit.pas(53): Previous declaration of 'SaveToFile' was not marked with the 'overload' directive [Error] myunit.pas(55): Statement expected but 'VAR' found [Error] myunit.pas(57): Declaration expected but 'FOR' found [Error] myunit.pas(58): Undeclared identifier: 'm' [Error] myunit.pas(60): Undeclared identifier: 'A' [Error] myunit.pas(63): '.' expected but ';' found [Error] myunit.pas(64): Identifier redeclared: 'Finalization' [Error] myunit.pas(66): Undeclared identifier: 'f' [Warning] myunit.pas(67): Text after final 'END.' - ignored by compiler [Error] myunit.pas(12): Unsatisfied forward or external declaration: 'SaveToFile' [Fatal Error] units.dpr(7): Could not compile used unit 'myunit.pas'
|