Необходим четкий и точный ответ: (решение не помешает) :-) Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 7, а потом 8.
Код представляет собой "перевод" в двоичную систему счисления, но просто тут не оформлен вывод. Программа, считая остаток от деления на 2 считает кол-во единиц в двоичной записи числа, за это отвечает переменная L, а M за общее кол-во символов в двоичной записи. Т.к нам нужно найти наибольшее, мы просто переводим все единицы вперед:
type M = array[1..mm, 1..nn] of integer; KS = array[1..2, 1..nn] of integer;
procedure GetKS(var a: M; var b: KS; m, n: integer); { Помещает в b[1,*] суммы отрицательных элементов массива а[m,n] по столбцам, а в b[2,*] - количества этих элементов } var i, j, s, k: integer; begin for j := 1 to n do begin k := 0; s := 0; for i := 1 to m do if a[i, j] < 0 then begin s := s + a[i, j]; Inc(k) end; b[1, j] := s; b[2, j] := k end end;
procedure Init(var a: M; m, n: integer); { Заполняет массив a[m,n] случайными значениями на интервале [-50;50] и выводит их на экран } var i, j: integer; begin for i := 1 to m do begin for j := 1 to n do begin a[i, j] := Random(101) - 50; Write(a[i, j]:5) end; Writeln end end;
procedure OutKS(var a: KS; n: integer); { Выводит на экран элементы массива a[2,n]} var i, j: integer; begin for i := 1 to 2 do begin for j := 1 to n do Write(a[i, j]:5); Writeln end end;
procedure Work(var a: M; var b: KS; m, n: integer); { цикл работы с массивом } begin Init(a, m, n); GetKS(a, b, m, n); Writeln('Суммы и количество'); OutKS(b, n); end;
Происхождение слова "алгоритм" связано с алгоритмами десятичной позиционной арифметики. Правила действий с натуральными числами, записанными в десятичной системе счисления, были впервые найдены в средневековой Индии. Европейцы изучали их по книге великого арабского ученого IX в, которого звали Мухаммед ибн Муса аль-Хорезми, что буквально означает "Мухаммед, сын Мусы, уроженец Хорезма" (заметим, что Аральское море тогда называлось "озером Хорезм", а сам город Хорезм был расположен в бассейне реки Амударьи южнее этого моря) . Книга ученого "Китаб ал-хисаб ал-хинд" ("Книга об индийском счете") послужила прототипом многих рукописей, составленных европейцами уже на латинском языке. В них имя ученого – аль-Хорезми – латинизировалось и стало звучать как "алхоризм", "алгорифм" или "алгоритм". Этим словом стали называть сами рукописи о десятичной арифметике и алгоритмы цифровых вычислений, а лишь затем его стали использовать для обозначения произвольных алгоритмов.
254
Объяснение:
Код представляет собой "перевод" в двоичную систему счисления, но просто тут не оформлен вывод. Программа, считая остаток от деления на 2 считает кол-во единиц в двоичной записи числа, за это отвечает переменная L, а M за общее кол-во символов в двоичной записи. Т.к нам нужно найти наибольшее, мы просто переводим все единицы вперед:
11111110 = 254