Дана строка символов содержащая текст и арифметические выражения вида 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
Вас заинтересует
7 лет назад
9 лет назад
9 лет назад
10 лет назад