@Alertoso

Как можно модифицировать этот код до целых чисел?

Как сделать, чтобы ещё можно было и целые числа вводить(то есть 55+22, например)
program Project2;

{$APPTYPE CONSOLE}

function LenExpression(S:String):integer;
var len:integer;
begin
 if length(S)<=0 then Result:=0
 else
  case s[length(S)] of
   ')':
    begin
     delete(S,length(S),1);
     len:=LenExpression(S);
     delete(S,length(S)-len+1,len);
     Result:=len+LenExpression(S)+1;
    end;
   '(': Result:=1
   else
    begin
     delete(S,length(S),1);
     Result:=1+LenExpression(S);
    end;
  end;
end;
 
function Expression(S:String):integer;
var
 Res,len:integer;
begin
 Res:=0;
 if length(S)>0 then
  begin
   case s[length(S)] of
    ')': begin
          delete(S,length(S),1);
          len:=LenExpression(S);
          Res:=Expression(S);
          delete(S,length(S)-len+1,len);
         end;
    '0'..'9': begin
               Res:=(ord(S[length(S)])-48);
               writeln(Res);
               delete(S,length(S),1);
              end;
   end;
   if length(S)>0 then
    Case s[length(S)] of
     '-': begin
           delete(S,length(S),1);
           Result:=Expression(S)-Res;
          end;
     '+': begin
           delete(S,length(S),1);
           Result:=Expression(S)+Res;
          end;
     '*': begin
           delete(S,length(S),1);
           Result:=Expression(S)*Res;
          end;
     '(': Result:=Res;
    end
   else Result:=Res;
  end
  else Writeln('!!error!!');
end;
 
var
 S:String;
begin
 Write('S: ');
 Readln(S);
 Writeln('Exp: ',Expression(S));
 readln;
end.
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы