![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
У меня возник следующий вопрос: мне нужно реализовать две процедуры (coef , Prost) так, чтобы вторая процедура (Prost) использовала результаты (A,B,C,D), вычисленные благодаря первой процедуре (coef). Массивы u, unew глобальные. Значения m,n берутся с основной программы (procedure Button1Click (Sender: TObject)). Вопрос: как сделать так, чтобы процедура Prost могла видеть переменные A,B,C,D (как я могу передать значения A,B,C,D процедуре Prost)?. Процедуру coef не можна реализовать в процедуре Prost!!!
Пример: Код:
Procedure coef (k,dt,dx,dy :single; ii,jj :integer); var A,B,C,D; single; begin A:=k*dt/dx; C:=A; B:=-2*A/dy; D:=u[ii,jj]+unew[ii,jj]; End; //------------------------------------------------------------------------- Procedure Prost (m,n:integer) Var k,dt,dx,dy :single; ii,jj,intr :integer; Mas: array // этот массив только для этого примера нужен, поэтому я его даже не описую begin dt:=1; dx:=2; dy:=3; k:=1; itr:=0; for ii:=1 to n do begin for jj:=1 to m do coef (k,dt,dx,dy,ii,jj); itr:=itr+1; end; for ii:=1 to n do Mas[ii,jj]:=A+B+C/D; end; procedure Button1Click (Sender: TObject) ……. ……. ……. Последний раз редактировалось lmikle, 04.12.2012 в 03:03. |
|
#2
|
|||
|
|||
|
сделай абцд глобальными.
или сделай coef как не процедукру,а функцию и она будет возвращать значения (в виде массива например). чтоб функция возвращала массив смотри пример: Код:
type
TForm1 = class(TForm)
TntButton1: TTntButton;
procedure TntButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
massiv=array of integer;
var
Form1: TForm1;
implementation
{$R *.dfm}
function coef:massiv;
begin
SetLength(Result,4);
Result[1]:=1; //А
Result[2]:=2; //B
Result[3]:=5; //C
Result[4]:=100; //D
end;
procedure TForm1.TntButton1Click(Sender: TObject);
var x:massiv;
a,b,c,d:Integer;
begin
x:=coef;
a:=x[1];
b:=x[2];
c:=x[3];
d:=x[4];
ShowMessage(IntToStr(a)+' '+IntToStr(b)+' '+IntToStr(c)+' '+IntToStr(d));
end;Последний раз редактировалось Snake22, 04.12.2012 в 00:58. |
| Этот пользователь сказал Спасибо Snake22 за это полезное сообщение: | ||
Басота (04.12.2012)
| ||