Помогите написать функцию и функцию преобразования положительного десятичного числа, в
Помогите написать функцию и функцию преображения положительного десятичного числа, в восьмеричное. В главной программе ввести массив из 8 частей при подмоги случайных чисел, и для каждого элемента массива вывести его восьмеричное представление
Задать свой вопрос1 ответ
Ванек Шамаков
Function Dec2Oct(n: integer): string;
var
c, s: string;
iquo, irem: integer;
begin
s := '';
iquo := n;
while iquo lt;gt; 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 lt;gt; 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;
var
c, s: string;
iquo, irem: integer;
begin
s := '';
iquo := n;
while iquo lt;gt; 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 lt;gt; 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;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов