Перевод десятичного числа в системы счисления от [2;9]. Найдите ошибку - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Учусь писать программы. Написал и все проверил, но все равно ошибки найти не получилось в силу малых знаний. Найдите пожалуйста ошибку, или может быть сама задумка так реализовать программу - бред?
Листинг программы
  1. program start;
  2. var w,a,n,ost,i,k: integer;
  3. var cislo: real;
  4. begin
  5. Write('Введите десятичное число ... ');
  6. Read(A);
  7. Write('Введите систему основания для перевода ... ');
  8. Read(N);
  9. w:=a;
  10. k:=0;
  11. repeat
  12. w:=w div n;
  13. k:=k+1;
  14. until w>=n;
  15. k:=k+1;
  16. repeat
  17. ost:= a mod N;
  18. a:= a div N;
  19. For i := k downto 0 do
  20. Cislo:= cislo + ost*Power(10,k);
  21. until a>=n;
  22. Writeln (cislo);
  23. end.

Решение задачи: «Перевод десятичного числа в системы счисления от [2;9]. Найдите ошибку»

textual
Листинг программы
  1. begin
  2.   var n := Abs(ReadLnInteger('Введите натуральное число или 0 в десятичной СС:  n ='));
  3.   var o := ReadLnInteger('Введите основание СС от 2 до 9:  o =');
  4.   if Not(o in [2..9]) then begin WriteLn('Ожидалось o от 1 до 9...'); Halt; end;
  5.  
  6.   var r := 0; var d := 1; var n0 := n;
  7.   repeat
  8.     r += d * (n mod o);
  9.     n := n div o;
  10.     d *= 10;
  11.   until n = 0;
  12.   WriteLnFormat('{0} (10) --> {1} ({2})', n0, r, o);
  13. end.

Объяснение кода листинга программы

  1. Ввод данных:
    • n - абсолютное значение натурального числа или 0, введенного пользователем в десятичной системе счисления.
    • o - основание системы счисления, введенное пользователем.
  2. Проверка корректности введенных данных:
    • Если o не принадлежит интервалу от 2 до 9, выводится сообщение об ошибке и программа завершается.
  3. Выполнение перевода числа в систему счисления:
    • Переменная r инициализируется как 0.
    • Переменная d инициализируется как 1.
    • Переменная n0 инициализируется как n.
    • Пока n не равно 0, выполняется следующая последовательность действий:
    • r увеличивается на d, умноженное на остаток от деления n на o.
    • n делится на o.
    • d умножается на 10.
    • Выводится результат перевода числа в систему счисления. Таким образом, код выполняет перевод десятичного числа в систему счисления от [2;9] и выводит результат в виде строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы