Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2012, 16:10   #1
phasha
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 130
По умолчанию проблема с with

всем добрый день
подскажите пожалуйста почему в команде
Код:
 
  with cep do begin
на "DO" выскакивает ошибка? юнит "CEP" ведь создан
phasha вне форума Ответить с цитированием
Старый 11.01.2012, 16:15   #2
Multiman
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 91
По умолчанию

А что вы хотите сделать?
Multiman вне форума Ответить с цитированием
Старый 11.01.2012, 16:16   #3
Serj0987
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 44
По умолчанию

по одной строке сложно что либо понять, дайте больше кода) и скажите саму ошибку)
Программы на заказ Delphi, Pascal, PHP.
ICQ:636-494-826
E-mail:serj0987@yandex.ru.

Последний раз редактировалось Serj0987; 11.01.2012 в 16:19.
Serj0987 вне форума Ответить с цитированием
Старый 11.01.2012, 16:20   #4
phasha
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 130
По умолчанию

Код:
unit spusk;

interface

uses Math,Raschet,Cep,Elem;

type
  TOptimization=class(TRasschet)
    private
      time: Real;
      Epsilon:real;
      timedesc:Real;
      countit:integer;
      Rn:Real;
      LRn:Real;
      Un,Uncel:Real;
    public
      C2min,R3Min,Qres:array of real;
      constructor Create(Cep:TCep;t:Real;eps,tdesc:real;itcount:integer);
      procedure Optimize();
      destructor Destroy;override;
    private
      function odOptimization(Element1:TElements;Xk,Xn:Real):real;
      procedure Pereschet (t: Real);
      function Q: Real;
      procedure NaprNagr(t:Real);
end;

implementation

{ TOptimization }

constructor TOptimization.Create(Cep:TCep;t:Real;eps,tdesc:real;itcount:integer);
begin
  countit:=itcount;
  timedesc:=tdesc;
  time := t;
  Epsilon:= Eps;

  with Cep do begin
    XR2L2C3:=CalculateResist(Resistor[2].Resist,Condensator[3].Resist,
      Katushka[2].Resist);
    XR1L1:=CalculateResist(Resistor[1].Resist,0,Katushka[1].Resist);
    MatrixA[1,1]:=-1;
    MatrixA[1,2]:=-1;
    MatrixA[1,6]:=1;
    MatrixA[2,2]:=1;
    MatrixA[2,3]:=-1;
    MatrixA[2,5]:=-1;
    MatrixA[3,1]:=1;
    MatrixA[3,3]:=1;
    MatrixA[3,4]:=-1;
    MatrixA[4,1]:=Condensator[1].Resist*sin(314*t+GetYgol(0,Condensator[1].Resist,0));
    MatrixA[4,2]:=-Resistor[3].Resist*sin(314*t);
    MatrixA[4,3]:=-Condensator[2].Resist*sin(314*t+GetYgol(0,Condensator[2].Resist,0));
    MatrixA[5,2]:=Resistor[3].resist*sin(314*t);
    MatrixA[5,5]:=Resistor[4].Resist*sin(314*t);
    MatrixA[5,6]:=XR1L1*sin(314*t+GetYgol(Resistor[1].resist,Condensator[1].Resist,Katushka[1].Resist));
    MatrixA[6,3]:=Condensator[2].Resist*sin(314*t+GetYgol(0,Condensator[2].Resist,0));
    MatrixA[6,4]:=XR2L2C3*sin(314*t+GetYgol(Resistor[2].Resist,Condensator[3].Resist,Katushka[2].Resist));
    MatrixA[6,5]:=-Resistor[4].resist*sin(314*t);
    VectorB[4]:=- eds.Resist*sin(314*t);
  end;
end;
вот та самая проблемная процедура((главное в конструкторе нет ошибок а в процедуре именно на этом месте стопорится((
Код:
procedure TOptimization.Optimize();
var i:integer; Qk_1,Qk:Real;
begin
  //Ìíîãîìåðíàÿ îïòèìèçàöèÿ
  i := 0;
  with Cep do
  begin
    repeat
      if i = 0 then begin
        Qk_1 := Q();
      end
      else begin
        Qk_1 := Qk;
      end;
      Resistor[3].resist:=odOptimization(Resistor[3],1000,100);
      Condensator[2].Value:=odOptimization(Condensator[2],0.0001,0.00002);
      Qk := Q();
      SetLength(C2min,i+1);
      SetLength(R3min,i+1);
      SetLength(Qres,i+1);
      C2min[i]:=Condensator[2].Value;
      R3min[i]:=Resistor[3].Value;
      Qres[i]:=Qk;
      if i=countit then begin
      Qk_1:=QK;
      end;
      inc(i);
    until (Qk_1<epsilon) or (abs(Qk_1-Qk)<0.0001);
  end;
end;
phasha вне форума Ответить с цитированием
Старый 11.01.2012, 16:37   #5
Serj0987
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 44
По умолчанию

Проблема областей видимости) Вы получаете в конструкторе сер но негде его не сохраняете)
попробуйте так
Код:
unit spusk;

interface

uses Math,Raschet,Cep,Elem;

type
  TOptimization=class(TRasschet)
    private
      time: Real;
      Epsilon:real;
      timedesc:Real;
      countit:integer;
      Rn:Real;
      LRn:Real;
      Un,Uncel:Real;
      myCep:TCep;
    public
      C2min,R3Min,Qres:array of real;
      constructor Create(Cep:TCep;t:Real;eps,tdesc:real;itcount:integer);
      procedure Optimize();
      destructor Destroy;override;
    private
      function odOptimization(Element1:TElements;Xk,Xn:Real):real;
      procedure Pereschet (t: Real);
      function Q: Real;
      procedure NaprNagr(t:Real);
end;

implementation

{ TOptimization }

constructor TOptimization.Create(Cep:TCep;t:Real;eps,tdesc:real;itcount:integer);
begin
  countit:=itcount;
  timedesc:=tdesc;
  time := t;
  Epsilon:= Eps;
  myCep :=Cep;
  with myCep do begin
    XR2L2C3:=CalculateResist(Resistor[2].Resist,Condensator[3].Resist,
      Katushka[2].Resist);
    XR1L1:=CalculateResist(Resistor[1].Resist,0,Katushka[1].Resist);
    MatrixA[1,1]:=-1;
    MatrixA[1,2]:=-1;
    MatrixA[1,6]:=1;
    MatrixA[2,2]:=1;
    MatrixA[2,3]:=-1;
    MatrixA[2,5]:=-1;
    MatrixA[3,1]:=1;
    MatrixA[3,3]:=1;
    MatrixA[3,4]:=-1;
    MatrixA[4,1]:=Condensator[1].Resist*sin(314*t+GetYgol(0,Condensator[1].Resist,0));
    MatrixA[4,2]:=-Resistor[3].Resist*sin(314*t);
    MatrixA[4,3]:=-Condensator[2].Resist*sin(314*t+GetYgol(0,Condensator[2].Resist,0));
    MatrixA[5,2]:=Resistor[3].resist*sin(314*t);
    MatrixA[5,5]:=Resistor[4].Resist*sin(314*t);
    MatrixA[5,6]:=XR1L1*sin(314*t+GetYgol(Resistor[1].resist,Condensator[1].Resist,Katushka[1].Resist));
    MatrixA[6,3]:=Condensator[2].Resist*sin(314*t+GetYgol(0,Condensator[2].Resist,0));
    MatrixA[6,4]:=XR2L2C3*sin(314*t+GetYgol(Resistor[2].Resist,Condensator[3].Resist,Katushka[2].Resist));
    MatrixA[6,5]:=-Resistor[4].resist*sin(314*t);
    VectorB[4]:=- eds.Resist*sin(314*t);
  end;
end;
и в процедуре
Код:
procedure TOptimization.Optimize();
var i:integer; Qk_1,Qk:Real;
begin
  //Ìíîãîìåðíàÿ îïòèìèçàöèÿ
  i := 0;
  with myCep do
  begin
    repeat
      if i = 0 then begin
        Qk_1 := Q();
      end
      else begin
        Qk_1 := Qk;
      end;
      Resistor[3].resist:=odOptimization(Resistor[3],1000,100);
      Condensator[2].Value:=odOptimization(Condensator[2],0.0001,0.00002);
      Qk := Q();
      SetLength(C2min,i+1);
      SetLength(R3min,i+1);
      SetLength(Qres,i+1);
      C2min[i]:=Condensator[2].Value;
      R3min[i]:=Resistor[3].Value;
      Qres[i]:=Qk;
      if i=countit then begin
      Qk_1:=QK;
      end;
      inc(i);
    until (Qk_1<epsilon) or (abs(Qk_1-Qk)<0.0001);
  end;
end;
Возможности проверить у меня нет, так что поручаю это вам)
Программы на заказ Delphi, Pascal, PHP.
ICQ:636-494-826
E-mail:serj0987@yandex.ru.
Serj0987 вне форума Ответить с цитированием
Старый 11.01.2012, 16:57   #6
phasha
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 130
По умолчанию

спасибо!))
phasha вне форума Ответить с цитированием
Старый 11.01.2012, 17:12   #7
phasha
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 130
По умолчанию

а вот еще вопрос не по теме конечно))вот я хочу чтоб при нажатии кнопки картинка менялась как это сделать?вот думаю как то так img1.Picture:=...а что присваивать не знаю((
phasha вне форума Ответить с цитированием
Старый 11.01.2012, 17:20   #8
Serj0987
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 44
По умолчанию

В делфи есть компонент TImageList в него вы можете добавить необходимые картинки, и оттуда присваивать объекту img1.
Программы на заказ Delphi, Pascal, PHP.
ICQ:636-494-826
E-mail:serj0987@yandex.ru.
Serj0987 вне форума Ответить с цитированием
Старый 11.01.2012, 17:22   #9
phasha
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 130
По умолчанию

ясно спасибо еще раз)))
phasha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37