Напишите программу, которая для введенной десятичной дроби выполняет сдвиг десятичной точки на указанное число разрядов (позиций) вправо (если количество разрядов задано положительное) или влево (если количество разрядов задано отрицательное). язык Pascal
program ShiftDecimalPoint; var decimalFraction: real; shiftPositions: integer; function ShiftRight(decimalFraction: real; shiftPositions: integer): real; var i: integer; begin for i := 1 to abs(shiftPositions) do decimalFraction := decimalFraction * 10; ShiftRight := decimalFraction; end; function ShiftLeft(decimalFraction: real; shiftPositions: integer): real; var i: integer; begin for i := 1 to abs(shiftPositions) do decimalFraction := decimalFraction / 10; ShiftLeft := decimalFraction; end; begin writeln('Enter a decimal fraction: '); readln(decimalFraction); writeln('Enter the number of positions to shift (positive for right, negative for left): '); readln(shiftPositions); if shiftPositions > 0 then writeln('Result of shifting right: ', ShiftRight(decimalFraction, shiftPositions)) else if shiftPositions < 0 then writeln('Result of shifting left: ', ShiftLeft(decimalFraction, shiftPositions)) else writeln('No shift needed, result is the same: ', decimalFraction); end.
Программа запрашивает у пользователя ввод десятичной дроби и количество позиций для сдвига десятичной точки. Затем, в зависимости от знака количества позиций, выполняется либо сдвиг вправо (умножение на 10), либо сдвиг влево (деление на 10). Результат выводится на экран.
Пример реализации на языке Pascal:
program ShiftDecimalPoint;var
decimalFraction: real;
shiftPositions: integer;
function ShiftRight(decimalFraction: real; shiftPositions: integer): real;
var
i: integer;
begin
for i := 1 to abs(shiftPositions) do
decimalFraction := decimalFraction * 10;
ShiftRight := decimalFraction;
end;
function ShiftLeft(decimalFraction: real; shiftPositions: integer): real;
var
i: integer;
begin
for i := 1 to abs(shiftPositions) do
decimalFraction := decimalFraction / 10;
ShiftLeft := decimalFraction;
end;
begin
writeln('Enter a decimal fraction: ');
readln(decimalFraction);
writeln('Enter the number of positions to shift (positive for right, negative for left): ');
readln(shiftPositions);
if shiftPositions > 0 then
writeln('Result of shifting right: ', ShiftRight(decimalFraction, shiftPositions))
else if shiftPositions < 0 then
writeln('Result of shifting left: ', ShiftLeft(decimalFraction, shiftPositions))
else
writeln('No shift needed, result is the same: ', decimalFraction);
end.
Программа запрашивает у пользователя ввод десятичной дроби и количество позиций для сдвига десятичной точки. Затем, в зависимости от знака количества позиций, выполняется либо сдвиг вправо (умножение на 10), либо сдвиг влево (деление на 10). Результат выводится на экран.