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

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

Ответы 5

  • А не могли бы вы обьяснить принцип работы алгоритма, а то я его не совсем понимаю.
    • Автор:

      ricardo
    • 5 лет назад
    • 0
  • Начиная с конца строки, считываем число в строку chislo , доходим до знака - преобразовываем строку с числом в integer, записываем результат в A и прибавляем A к B, (или отнимаем). После цикла проверка: если первое число в строке не начинается со знака, значить оно положительное - прибавляем его B(это нужно потому, что программа выполняет действия, только когда доходит до знака).
  • Нормально, или надо построчно комментировать?
    • Автор:

      beaneph5
    • 5 лет назад
    • 0
  • Спасибо, все понял
    • Автор:

      velez
    • 5 лет назад
    • 0
  • Var  S, chislo: string;  i,A,B,C,E: integer;Begin  B := 0;  WriteLn('Введите выражение: ');  ReadLn(S);  i := S.length;  While (i > 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 <> '') then  begin    val(chislo,A,E);    B := B + A;  end;  WriteLn(B);End.
    • Автор:

      heathlrya
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years