|
|
#1
|
|||
|
|||
Сам все же разобрался =) Может надо кому будет
Код:
procedure inputPoly(line: integer; str:string); var i,x,k: integer; s:string; begin //обнуляем массив перед записью for i:=0 to maxpower do koeff[i, line] := 0; // обнуляем на всякий случай k:=0; x:=0; s:=''; //от 1 до длины строки for i := 1 to Length(str) do //если символ в строке case str[i] of '0'..'9': begin //если еще не было Х записываем число в строку if x=0 then s:=s+Str[i]; // Если был x и ^ тогда if (x=1) and (k=1) then begin //Записываем в массив S в строку номером = степени koeff[strtoint(str[i]), line]:= strtoint(s); s:=''; x:=0; k:=0; end; // Если конец строки записываем число if (i=Length(str)) then koeff[0, line]:= strtoint(s); end; 'x','X': begin //встретили x x:=1; // если просто x или -x добавляем 1 if (s='') or (s='-') then s:=s+'1'; // Если x последний в строке if i=Length(str) then begin koeff[1, line]:= strtoint(s); s:=''; x:=0; k:=0; end; end; '^': begin //Встретили ^ k:=1; end; '+','-': begin // Если был x но небыло ^ if (x=1) and (k=0) then begin koeff[1, line]:= strtoint(s); s:=''; x:=0; k:=0; end; // Если минус записываем в строку if (str[i]='-') then s:=s+Str[i]; end; end; end; |