Напишите программу в синтаксисе Free Pascal либо Turbo Pascal, которая вычисляет

Напишите программу в синтаксисе Free Pascal или Turbo Pascal, которая вычисляет выражение, состоящее из чисел и символов (допускаются только знаки + или , количество чисел и символов не ограничено). Выражение вводится как символьная строчка, все числа целые.
ввод:
12+42-44-12-13+1-23
вывод: -37

ввод:
12-53-2+23+0-25
вывод -45

Задать свой вопрос
1 ответ
Var
  S, chislo: string;
  i,A,B,C,E: integer;
Begin
  B := 0;
  WriteLn('Введите выражение: ');
  ReadLn(S);
  i := S.length;
  While (i gt; 0) do
  begin
    Case S[i] of
      '+':
        begin
          val(chislo,A,E);
          B := B + A;
          chislo := '';
        end;
      '-':
        begin
          val(chislo,A,E);
          B := B - A;
          chislo := '';
        end;
      else
        chislo := S[i] + chislo;
    End;
    i := i - 1;
  end;
  if (chislo lt;gt; '') then
  begin
    val(chislo,A,E);
    B := B + A;
  end;
  WriteLn(B);
End.
Ирина Нештак
А не могли бы вы обьяснить принцип работы метода, а то я его не совсем разумею.
Дарина Кульбинова
Начиная с конца строчки, считываем число в строчку chislo , доходим до знака - преобразовываем строку с числом в integer, записываем итог в A и добавляем A к B, (либо отнимаем). После цикла проверка: если 1-ое число в строке не начинается со знака, значить оно положительное - прибавляем его B(это необходимо поэтому, что программка исполняет действия, только когда доходит до знака).
Лидия Ибятуллина
Нормально, либо надобно построчно объяснять?
Запярова Яна
Спасибо, все сообразил
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт