const n = 10000;//Не изменяемая по ходу программы переменная var a: array[1..n] of integer; b: array[1..10]of integer; c: array[1..10]of integer; i, s, v: integer; begin for i := 1 to 10 do //Заполнение массива с числами от 1 до 10 c[i] := i; for i := 1 to n do //Заполнение массива a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей for i := 1 to n do case a[i] of 1: b[1] := b[1] + 1; 2: b[2] := b[2] + 1; 3: b[3] := b[3] + 1; 4: b[4] := b[4] + 1; 5: b[5] := b[5] + 1; 6: b[6] := b[6] + 1; 7: b[7] := b[7] + 1; 8: b[8] := b[8] + 1; 9: b[9] := b[9] + 1; 10: b[10] := b[10] + 1; End; for i := 1 to 10 do for s := 1 to 9 do if b[s] > b[s + 1] then begin v := b[s]; b[s] := b[s + 1]; b[s + 1] := v; v := c[s]; c[s] := c[s + 1]; c[s + 1] := v; end; writeln(c[10], ' - их ', b[10]); end.
1. Первая цифра отводится на знак (1 - это -, 0 - это +). Остальные 7 - число в двоичной системе счисления. Причём если число отрицательное, то исходное двоичное число инвертируется, и к нему прибавляется 1. а) 33 | 16 | 8 | 4 | 2 | 1 - в двоичной системе оно выглядит как 100001 1 | 0 | 0 | 0 | 0 | 1 Так как оно положительное, то в начале ставится 0. Так как чисел всего 6, а не 7, то после первого нуля следует поставить ещё один. ответ: 0'0100001 б) -63₁₀ = -111111₂ (переводить уже не буду подробно) Так как число отрицательное, то в начале ставим 1, так как цифр 6, то ставим после 1 0. 1'0111111 Инвертируем: 1'1000000 Прибавляем 1: 1'1000001 ответ: 1'1000001 в) -254₁₀ = -11111110 Так как цифр 8, то последнюю отбрасываем, а далее по алгоритму: 1'1111111 >> 1'0000000 >> 1'0000001 ответ: 1'0000001