Системы счисления
1) Перевести число из двоичной системы в системы с основанием 8, 10, 16. 100011002
2) Перевести число из восьмеричной системы в системы с основанием 2, 10, 16. 2058
3) Перевести число из десятичной системы в системы с основанием 2, 8, 16. 155
4)Перевести число из шестнадцатеричной системы в системы с основанием 2, 8, 10. 8916
5)Сложить двоичные числа. 100101102+ 110010112
6) Сложить восьмеричные числа. 62718+ 70248
7) Сложить шестнадцатеричные числа. B0616+ C6416
8) Вычесть двоичные числа. 10110102- 111110012
9) Вычесть восьмеричные числа. 15218- 70418
10) Вычесть шестнадцатеричные числа. 11) 40116- E1A16
a: array [,] of integer;
begin
var n := ReadlnInteger('n = ');
var m := ReadlnInteger('m = ');
var rand := ReadlnInteger('Для ручного ввода нажмите 0');
if rand = 0 then begin
a := new integer[m, n];
for var i := 0 to m-1 do
for var j := 0 to n-1 do
a[i, j] := ReadlnInteger('a[' + i + ',' + j + '] = ');
end
else a := MatrixRandom(m, n, 1, 100);
Println(a);
var b := ArrGen(n, x -> 1);
for var i := 0 to m-1 do
for var j := 0 to n-1 do
if j mod 2 = 0 then
b[j] := b[j] * a[i, j];
b.Where((x, i)-> i mod 2 = 0).SortedDescending().Println();
end.
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).