Задача 7 Урок 18

Урок 18

На вход вашей программы подается строка вида:

например:

1 +  3

или

2 - 12

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

var inputString: string;

function algebra(num1, num2: integer; char1: string): integer;

begin
  if (char1 = '+') then
    result := num1 + num2
  else if (char1 = '-') then
    result := num1 - num2
  else
    result := num1;
end;

procedure getNumsAndChar(inputString: string);

  var num1, num2, loopCount, errorCode: integer;
      char1: string;
      toString1, toString2: string;
      flag: boolean;

begin
  num1 := 0;
  num2 := 0;
  flag := true;
  toString1 := '';
  toString2 := '';
  char1 := '';
  for loopCount := 1 to length(inputString) do
  begin
    if (inputString[loopCount] >= '0') and (inputString[loopCount] <='9') and flag then
      toString1 := toString1 + inputString[loopCount]
    else if (inputString[loopCount] >= '0') and (inputString[loopCount] <= '9') and not flag then
      toString2 := toString2 + inputString[loopCount]
    else if (inputString[loopCount] = '+') or (inputString[loopCount] = '-') and not flag then
      char1 := char1 + inputString[loopCount]
    else if flag then
      flag := false;
  end;
  val(toString1, num1, errorCode);
  val(toString2, num2, errorCode);
  writeln(algebra (num1, num2, char1));
end;

begin
  writeln('Введите строку');
  readln(inputString);
  getNumsAndChar(inputString);
  readln();
end.

КОНСОЛЬ

Введите строку
159   +      1
160
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)