У меня в задаче выдает ответ с 0 (0008). задание: перевод из десятичной системы в восьмеричную в паскале, используя while. найдите ошибку. program zad3; var n, k: integer; begin read(n); while n больше 0 do begin k := 64...

У меня в задаче выдает ответ с 0 (0008). задание: перевод из десятичной системы в восьмеричную в паскале, используя while. найдите ошибку. program zad3; var n, k: integer; begin read(n); while n > 0 do begin k := 64; write (n div k); write (n mod 8); n:=n div 8; n:= n mod k; k:=k div 8; end; end.
Гость
Ответ(ы) на вопрос:
Гость
Исправил некоторые строки, добавил массив. Вот что вышло. program zad3; var n,i,k: integer; mas :array [1..20] of integer; begin read(n); i:=1; while n > 0 do begin mas[i]:=n mod 8; n:=n div 8; i:=i+1; k:=k+1; end;   for i:=k downto 1 do write(mas[i]) end.
Гость
Можно вот так: program zad3; var n, k, m: integer; begin write('n = '); readln(n); k:=1; while k<=n do k:=k*8; k:=k div 8; m:=n; while m > 7 do begin write (m div k); m:=m mod k; k:=k div 8; end; writeln(n mod 8); end. Пример: n = 125 175
Не нашли ответ?
Ответить на вопрос
Похожие вопросы