Вопрос задан 05.06.2018 в 04:59. Предмет Информатика. Спрашивает Коротыч Александр.

У меня в задаче выдает ответ с 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.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Зиновьев Тимур.

Исправил некоторые строки, добавил массив. Вот что вышло.
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.

0 0
Отвечает Кабанова Саша.

Можно вот так:
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

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос