Top.Mail.Ru
Ответы

ИКТ Pascal ABC помогите пожалуйста как можно быстрее.

Ввести десятичную дробь │Х│<1 и основание новой системы счисления (q<=10). Перевести десятичную дробь в новую систему счисления. (при этом в случае перевода например в троичную систему, число не должно высвечиваться как бесконечное, необходимо высветить период этого числа. и вариант с ограничением цифр после запятой тоже не подходит).
Я написал сам алгоритм перевода, но период не знаю как расписать в программе.
если есть возможность, просто дополните пожалуйста про период:
var x,y,z,q,k: real;
begin
k:=0;
readln(x,q);
if (x>1) or (x<-1) then exit
else
x:=abs(x);
write('0.');
while (x<1) do
begin
k:=k+1;
y:=x*q;
z:=trunc(y);
write(z);
if y>1 then
x:=y-trunc(y)
else
x:=y;
if
k:=k+1;
y:=x*q;
z:=trunc(y);
write(z);
if y>1 then
x:=y-trunc(y)
else
x:=y
end;
end.

Дополнен

var
x, y, z, q, k: real;

begin
k := 0;
readln(x, q);
if (x > 1) or (x < -1) then exit
else
x := abs(x);
write('0.');
while (x < 1) do
begin
k := k + 1;
y := x * q;
z := trunc(y);
write(z);
if y > 1 then
x := y - trunc(y)
else
x := y;
end;
end.

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Для начала отформатируй код, даже глаза ломать не буду. Ты сам то можешь это прочитать? И переменные объявляй там, где они используютя, а не 5шт одной строкой, это что за ужас?

Аватар пользователя
Искусственный Интеллект
7лет

штука