В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
nastya2737
nastya2737
30.11.2021 14:43 •  Информатика

Написать процедуру и функцию преобразования положительного десятичного числа, в восьмеричное. в основной программе ввести массив из 8 элементов при случайных чисел, и для каждого элемента массива вывести его восьмеричное представление

Ответ:
Karina121334
Karina121334
01.10.2020 23:16
Function Dec2Oct(n: integer): string;
var
  c, s: string;
  iquo, irem: integer;
begin
  s := '';
  iquo := n;
  while iquo <> 0 do
  begin
    irem := iquo mod 8;
    iquo := iquo div 8;
    Str(irem, c);
    s := c + s
  end;
  if Length(s) = 0 then Result := '0'
  else Result := s
end;

var
  m: array[1..8] of integer;
  i: integer;

begin
  Randomize;
  for i := 1 to 8 do
  begin
    m[i] := Random(10000);
    writeln(m[i]:5, '(10)=', Dec2Oct(m[i]), '(8)')
  end
end.

Тестовое решение:

  973(10)=1715(8)
 7245(10)=16115(8)
 2511(10)=4717(8)
 5136(10)=12020(8)
 8002(10)=17502(8)
 7101(10)=15675(8)
 4277(10)=10265(8)
 5916(10)=13434(8)

Если вместо функции нужна процедура, достаточно заменить несколько строчек.

procedure Dec2Oct(n: integer; s: string);
var
  c: string;
  iquo, irem: integer;
begin
  s := '';
  iquo := n;
  while iquo <> 0 do
  begin
    irem := iquo mod 8;
    iquo := iquo div 8;
    Str(irem, c);
    s := c + s
  end;
  if Length(s) = 0 then s := '0'
end;
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?