Дана строка символов содержащая текст и арифметические выражения вида a®b, где ®-один из знаков +,-,*,/. Выписать все арифметические выражения и вычислить их значения
Ответы на вопрос
Ответил Аноним
0
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString('Вводите:');
var m:=s.Matches('(-{0,1}d+(.d+){0,1}[+-*\]d+(.d+){0,1})');
foreach var e in m do begin
var t:=e.Value;
Write(t,'=');
var op:=t.MatchValue('[+-*\]');
var i:=Pos(op,t);
var a:=t[:i].ToReal;
var b:=t[i+1:].ToReal;
case op[1] of
'+':Writeln(a+b);
'-':Writeln(a-b);
'*':Writeln(a*b);
'/':Writeln(a/b)
end
end
end.
Пример
Вводите: jhdkjfsgbj sf5+4sdfgs fd39.8*178.78dghfg
5+4=9
39.8*178.78=7115.444
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString('Вводите:');
var m:=s.Matches('(-{0,1}d+(.d+){0,1}[+-*\]d+(.d+){0,1})');
foreach var e in m do begin
var t:=e.Value;
Write(t,'=');
var op:=t.MatchValue('[+-*\]');
var i:=Pos(op,t);
var a:=t[:i].ToReal;
var b:=t[i+1:].ToReal;
case op[1] of
'+':Writeln(a+b);
'-':Writeln(a-b);
'*':Writeln(a*b);
'/':Writeln(a/b)
end
end
end.
Пример
Вводите: jhdkjfsgbj sf5+4sdfgs fd39.8*178.78dghfg
5+4=9
39.8*178.78=7115.444
Новые вопросы
Литература,
2 года назад
История,
2 года назад
Математика,
8 лет назад
Информатика,
8 лет назад
Биология,
9 лет назад