Напишите программу, которая для введенной десятичной дроби выполняет сдвиг десятичной точки на указанное число разрядов (позиций) вправо (если количество разрядов задано положительное) или влево (если количество разрядов задано отрицательное). язык Pascal

22 Окт 2019 в 22:44
200 +1
0
Ответы
1

Пример реализации на языке 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). Результат выводится на экран.

19 Апр 2024 в 09:56
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир