тип String

Avatar
  • обновлен
  • Отвечен

При таком коде, каналы, в которые должны записываться названия ингредиентов постоянно "пролистываются", всегда отображается название последнего

Var   Strok: String;                                   //выбор раствора из выпадающего списка  

Jid1: String;                                     //переменная в которую записывается 1 ингредиент   

Jid2: String;                                     //переменная в которую записывается 2 ингредиент 

Begin  

 Strok:= ReadValue('Список растворов');  

 If Strok='1' then  

 Jid1:='Вода';  

 Jid2:='Ацетат свинца';   

WriteValue('1 жидкость',Jid1);   

WriteValue('2 жидкость',Jid2);  

 If Strok='2' then  

 Jid1:='Вода';  

 Jid2:='Сульфат алюминия';   

WriteValue('1 жидкость',Jid1);  

 WriteValue('2 жидкость',Jid2);  

 end. 

end

Если выбрать тип Jid1 и Jid2 Integer, и записать в них числа, то все работает как надо, а со строковыми не получается, при этом код одинаков в обоих случаях.В чем проблема?

Avatar
lekoo

Проблема решена, цикл for изменен, так как получались числа с огромным остатком и он не находил равные(не останавливался).


Вот конечный результат:
{

  double speed=ReadValue("123");
  double konc=ReadValue("345");
  double massa=ReadValue("567");
  double i;
  double j;
  integer tv1=0;
  integer tx1=0;
  double koncn=konc/100.0;
  double massav=massa*(1.0-koncn);
  double tv=massav/speed*1000.0;
  for (i=0; i<=tv; i++) {tv1++;};
  WriteValue("3 клапан",1);
  delay(tv1);
  WriteValue("3 клапан",0);

  double massax=massa*koncn;
  double tx=massax/speed*1000.0;
  for (j=0; j<=tx; j++) {tx1++;};
  WriteValue("1 клапан",1);
  delay(tx1);
  WriteValue("1 клапан",0);
}


Отладка не запускается, монитор работает как надо