Перевод строки в число - PascalABC.NET
Формулировка задачи:
Нужно написать перевод записи a1^b1*a2^b2*...*ak^bk в число
причём записи az^0 быть не должно, и вместо записи az^1 будет az
я сделал перевод числа в строку, а наоборот потребуется присваивание строк числу(например a := s[1], где s строка)
Решение задачи: «Перевод строки в число»
textual
Листинг программы
begin
var S := '2.1^3*3^4*4^5';
WriteLn('1) Исходное выражение:', NewLine, S);
WriteLn(NewLine, '2) Разделим на операции возведения в степень:');
var A := S.Split('*');
foreach var Sub in A do
WriteLn(Sub);
WriteLn(NewLine, '3) Разделим на числа:');
foreach var Sub in A do
begin
var TwoNumbers := Sub.Split('^');
WriteLn(Sub, ' -> ', TwoNumbers[0], ' ^ ', TwoNumbers[1]);
end;
WriteLn(NewLine, '4) Преобразуем в числа и выполним операции:');
var Result := 1.0;
foreach var Sub in A do
begin
var TwoNumbers := Sub.Split('^');
var Pow := Power(TwoNumbers[0].ToReal, TwoNumbers[1].ToReal);
Result *= Pow;
WriteLn(Sub, ' -> ', TwoNumbers[0], ' ^ ', TwoNumbers[1], ' = ', Pow);
end;
WriteLn(NewLine, 'Результат: ', Result);
end.