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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2010, 16:51   #1
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
Печаль графика в Делфи.

Здравствуйте,ребята. Я зашла в тупик, 2 месяца уже решаю эту задачу.Силы на исходе.Пожалуйста, помогите как сможите. Иначе остаюсь на осень.
Надо решить на делфи задачу по химии. Все формулы есть уже в коде, я не могу понять только одно.Почему при данных значениях(см. рис) задача не работает(температуру нужно вводить обязательно в Кельвинах).
Сама задача.
Составить модель реакции разложения первого порядка типа А->В+С, протекающей в абиатическом режиме с тепловым эффектом, если известна начальная концентрация и температура.Константа скорости реакции от температуры приведены.
t 50 55 60 65 70 72.5 78 84
к,ч 1,4 1,6 2,2 3,0 4,0 4,7 7,2 9,4
Главное что бы графики строился, когда 1.Cb и Cc равны 0 и 2.когда не равны 0.
Безымянный.JPG
Код:
procedure TForm1.Button1Click(Sender: TObject);
//const k:array [1..8] of real=(1.4,1.6,2.2,3.0,4.0,4.7,7.2,9.4);
Const
  dt=0.3;
  l=0.3;
  S=45;
  V=8;
  H=0.4;
Var
  k:real;
  Ca:real;
  Cb:real;
  Cc:real;
  W:real;
  t,Temp:real;
  Tx:real;
begin
  Series1.Clear;
  Series2.Clear;
  Series3.Clear;
  Series4.Clear;
  k:=StrToFLoat(Edit1.Text);
  Ca:=StrToFLoat(Edit2.Text);
  Cb:=StrToFLoat(Edit3.Text);
  Temp:=StrToFLoat(Edit4.Text);
  Cc:=StrToFLoat(Edit5.Text);

  t:=0;
  While Ca>0 do
  begin
      Tx:=Temp+k*Temp*V*H*Ca/(l*S);
      W:=V*H*(Ca/dt)+l*S*(Tx-Temp);
      Ca:=Ca-k*Ca*Cb*t;
      Cb:=Cb+k*Ca*Cb*t;
      Cc:=Cc+k*Ca*Cb*t;
      t:=t+dt;
      series1.AddXY(t,Ca,'',clred);
      series2.AddXY(t,Cb,'',clgreen);
      series3.AddXY(t,Cc,'',clblack);
      series4.AddXY(t,W,'',clblue);
  end;
end;

end.
сама задача в арх
sos.rar
тяжела и неказиста жизнь простого программиста

Последний раз редактировалось pionerka; 26.04.2010 в 16:58.
pionerka вне форума Ответить с цитированием
Старый 26.04.2010, 21:58   #2
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

У вас при значениях как на картинке получается бесконечный цикл. Эта формула (при этих значениях): Ca:=Ca-k*Ca*Cb*t; не изменяет значение переменной Са => бесконечный цикл.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
VVM вне форума Ответить с цитированием
Старый 27.04.2010, 16:22   #3
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
По умолчанию

значит надо сделать цикл не бесконечным?
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Старый 27.04.2010, 17:04   #4
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

нужно пересмотреть формулы
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 27.04.2010, 20:57   #5
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

математическая модель процесса с ошибкой. Проверьте формулы. Или попробуйте посчитать вручную. Cb=0 выступает как сомножитель второго слагаемого, и поэтому не будут меняться ни Са, ни Сс, ни Tx, ни W.
W=1983 на протяжении всего цикла и поэтому в график не попадает (>900). Tx=479 на протяжении всего цикла (графика нет). Са..Сс остаются равны начальным значениям. Чтож вы хотите от компьютера? Я не химик, а математик. Если объясните модель (все переменные что значат) разберусь и поправлю. Сайт указан в профиле.
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 28.04.2010, 16:38   #6
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
По умолчанию

хорошо.попробую разобраться
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в Делфи. Как нарисовать строфоиду? stscolt Помощь студентам 3 07.09.2009 10:12
Графика в Делфи R_A_M_I_L7777777 Помощь студентам 14 27.03.2009 15:21
Графика в Делфи TCanvas Summerrain Помощь студентам 1 19.12.2008 02:39
Графика в Делфи Killbrum Мультимедиа в Delphi 19 17.09.2008 22:29
Графика в Делфи, требуется помощь с задачей Natisha Помощь студентам 3 10.05.2008 00:25