Перевод десятичного числа в системы счисления от [2;9]. Найдите ошибку - PascalABC.NET
Формулировка задачи:
Учусь писать программы. Написал и все проверил, но все равно ошибки найти не получилось в силу малых знаний.
Найдите пожалуйста ошибку, или может быть сама задумка так реализовать программу - бред?
Листинг программы
- program start;
- var w,a,n,ost,i,k: integer;
- var cislo: real;
- begin
- Write('Введите десятичное число ... ');
- Read(A);
- Write('Введите систему основания для перевода ... ');
- Read(N);
- w:=a;
- k:=0;
- repeat
- w:=w div n;
- k:=k+1;
- until w>=n;
- k:=k+1;
- repeat
- ost:= a mod N;
- a:= a div N;
- For i := k downto 0 do
- Cislo:= cislo + ost*Power(10,k);
- until a>=n;
- Writeln (cislo);
- end.
Решение задачи: «Перевод десятичного числа в системы счисления от [2;9]. Найдите ошибку»
textual
Листинг программы
- begin
- var n := Abs(ReadLnInteger('Введите натуральное число или 0 в десятичной СС: n ='));
- var o := ReadLnInteger('Введите основание СС от 2 до 9: o =');
- if Not(o in [2..9]) then begin WriteLn('Ожидалось o от 1 до 9...'); Halt; end;
- var r := 0; var d := 1; var n0 := n;
- repeat
- r += d * (n mod o);
- n := n div o;
- d *= 10;
- until n = 0;
- WriteLnFormat('{0} (10) --> {1} ({2})', n0, r, o);
- end.
Объяснение кода листинга программы
- Ввод данных:
n
- абсолютное значение натурального числа или 0, введенного пользователем в десятичной системе счисления.o
- основание системы счисления, введенное пользователем.
- Проверка корректности введенных данных:
- Если
o
не принадлежит интервалу от 2 до 9, выводится сообщение об ошибке и программа завершается.
- Если
- Выполнение перевода числа в систему счисления:
- Переменная
r
инициализируется как 0. - Переменная
d
инициализируется как 1. - Переменная
n0
инициализируется какn
. - Пока
n
не равно 0, выполняется следующая последовательность действий: r
увеличивается наd
, умноженное на остаток от деленияn
наo
.n
делится наo
.d
умножается на 10.- Выводится результат перевода числа в систему счисления. Таким образом, код выполняет перевод десятичного числа в систему счисления от [2;9] и выводит результат в виде строки.
- Переменная
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д