Ребят,пожалуйста, помогите решить задачи в среде PASCAL:1) Написать простой калькулятор

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

Задать свой вопрос
Камилла Луконькина
По сути нужно только выделить два числа и символ
Вадим Булок
Может быть заключительное, что я написал либо и самое первое тоже?
Виктория Айгинина
и 1-ое и 2-ое
Полина Игуменева
Приветствую, Для вас неслабое такое задание подкинули...
Oleg Zhovnerchuk
Необыкновенно, если еще и между знаками и числами могут встречаться пробелы в неизвестном количестве
Aleksandra Merkilova
Вот...еще что надобно уточнить - числа в "простом калькуляторе" только целые? И если да, то сколько в их максимум цифр возможно?
Арина Ворникова
да,4
Владик Чербаев
У Вас комменты противоречат заданию. В задании написано, что числа неотрицательные, а в комментах Вы написали, что они могут быть и отрицательными.
Сергей
Я опять уточнил,да они не отрицательные...
Anatolij
Ну теперь поздно.... мой вариант вычисляет любые
2 ответа
// PascalABC.NET 3.0, сборка 1128
uses
  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)
  end
end.

Тестовое решение:
-32 / -21 = 1.52380952380952

// PascalABC.NET 3.0, сборка 1128
begin
  var s:='4km-549_ffb)5)6';
  var t:=s.Where(x-gt;x in ['0'..'9']).JoinIntoString('');
  var n:int64;
  if TryStrToInt64(t,n) then Writeln(2*n)
  else Writeln('Не удалось выделить число')
end.

Тестовое решение:
909912
Стефания Михарлевская
а вот это вы что прислали?
Кабанкин Виктор
А вот это решение Ваших задач на Паскале. Если Вы его не разумеете, это вовсе не значит, что оно неверное. Запустите в указанной версии Паскаля - и увидите сами, что все работает.
Любовь
не работает
Васька Ячевский
four.pas(2, ";" expected but "identifier S" found и four.pas(2,3) Error: Illegal expression
Егор Лиленков
Не работает - означает версия не та. Проверьте для начала в Интернет-среде на официальном веб-сайте: http://pascalabc.net/WDE/:
Dima Al Kurdi
А Вы запускаете, наверно, в этой уродливой допотопной DOS-среде Free Pascal
Сашок Гербут-Гейбович
нет,в джинни
Nina
Это то же самое по сути. В Geany употребляют Фри Паскаль. И глупо это делать пытаться, когда первой же строчкой обозначено, что написано и отлажено в среде PascalABC.NET 3.0
PascalABC.NET Версия 3.0. сборка 1041
Геннадий Ночный
введите просто 2*5
Fedjushina Jevelina
будет 0 т.к. расчитано что будут пробелы
Валентина
в образце есть пробелы я и для себя их приделал
Димка Абаров
Почему они обязаны ОБЯЗАТЕЛЬНО БЫТЬ?
Вадим Шабас
Откуда это следует?
Porshikov Tema
Я Для вас могу только порекомендовать читать входную строчку и если там "не хватает" пробелов, их всталять принудительно, чтоб Ваш алгоритм не ломался.
Виолетта Зарайченко
Вы правы , ниоткуда . Я лиш поглядел на пример и решил что обязаны быть пробелы.
Арсений
Обычно делают наоборот: если входная строке в образце пробелов не содержит, возможность их возникновения на всякий случай предугадывают. А вот добиваться непременно пробелы указывать, при этом, мрачно где конкретно и в каком количестве - это неправильно.
Олеся Власкова
я сейчас доделаю.
Пимоненкова Наталья
Да у Вас медли в достатке, сможете не торопиться. Решение 2 часа доступно для правки.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

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

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

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

Войти на сайт