• Ребят,пожалуйста, помогите решить задачи в среде PASCAL:
    1) Написать простенький калькулятор через ввод строки, который на входе получает строку вида "число1 знак операции число2" (например, "2 + 5" или "3 / 42"), а выводит значение этого выражения.
    Числа - любые целые неотрицательные, знаки - +. -. *, /
    2) Написать программу, которая на входе получает строку под кодовым названием "загрязненное число" (вида "4km-549_ffb)5)6") состоящую из символов, а на выходе выводит удвоенное число из изначальной строки (а именно, 454956*2 = 909912)

Ответы 12

  • Я Вам могу только посоветовать читать входную строку и если там "не хватает" пробелов, их всталять принудительно, чтобы Ваш алгоритм не ломался.
  • Вы правы , ниоткуда . Я лиш посмотрел на пример и решил что должны быть пробелы.
    • Автор:

      alyssa
    • 5 лет назад
    • 0
  • Обычно делают наоборот: если входная строке в примере пробелов не содержит, возможность их появления на всякий случай предусматривают. А вот требовать обязательно пробелы указывать, причем, неясно где именно и в каком количестве - это неправильно.
  • я сейчас доделаю.
    • Автор:

      shadybird
    • 5 лет назад
    • 0
  • Да у Вас времени в достатке, можете не торопиться. Решение 2 часа доступно для правки.
    • Автор:

      ryder3gi8
    • 5 лет назад
    • 0
  • four.pas(2, ";" expected but "identifier S" found и four.pas(2,3) Error: Illegal expression
  • Не работает - значит версия не та. Проверьте для начала в ВЕБ-среде на официальном сайте: http://pascalabc.net/WDE/:
    • Автор:

      issac
    • 5 лет назад
    • 0
  • А Вы запускаете, наверно, в этой уродливой допотопной DOS-среде Free Pascal
  • нет,в джинни
    • Автор:

      eric226
    • 5 лет назад
    • 0
  • Это то же самое по сути. В Geany используют Фри Паскаль. И глупо это делать пытаться, когда первой же строкой указано, что написано и отлажено в среде PascalABC.NET 3.0
  • PascalABC.NET Версия 3.0. сборка 1041
    answer img
    • Автор:

      angelfnbn
    • 5 лет назад
    • 0
  • // PascalABC.NET 3.0, сборка 1128uses  System.Text.RegularExpressions;  begin  var s:='     - 32    / - 21  ';  s:=RegEx.Replace(s,'\s','');  var a:=RegEx.Matches(s,'(-{0,1}\d+)|[\+\-\*/]');  var n:=a.Count;  var x,y:integer;  var c:char;  case n of  3:begin    x:=StrToInt(a[0].ToString); y:=StrToInt(a[2].ToString);    c:=a[1].ToString[1]    end;  2:begin    x:=StrToInt(a[0].ToString); var s1:=a[1].ToString;    c:=s1[1]; s1[1]:='0'; y:=StrToInt(s1)    end;  else    begin Writeln('Недопустимое выражение'); exit end  end;  WriteFormat('{0} {1} {2} = ',x,c,y);  case c of  '+':Writeln(x+y);  '-':Writeln(x-y);  '*':Writeln(x*y);  '/':Writeln(x/y)  endend.Тестовое решение:-32 / -21 = 1.52380952380952// PascalABC.NET 3.0, сборка 1128begin  var s:='4km-549_ffb)5)6';  var t:=s.Where(x->x in ['0'..'9']).JoinIntoString('');  var n:int64;  if TryStrToInt64(t,n) then Writeln(2*n)  else Writeln('Не удалось выделить число')end.Тестовое решение:909912
    answer img
    • Автор:

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

Войти через Google

или

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

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

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