написать программу на Дана матрица А (5x5). Определить массив Х из 5 элементов, каждый из которых равен наименьшему из элементов соответствующего столбца матрицы.
1. Восьмеричное число записываем двоичными триадами (с конца по 3 разряда), заменяя каждую 8-ю цифру двоичной триадой, потом записываем двоичными тетрадами (с конца по 4 разряда) и каждую тетраду заменяем 16-й цифрой. 754(8) = 111 101 100 (2) = 1 1110 1100 (2) = 1EC (16) ответ 3) 2. ответы даны в двоичной системе, в нее все и переводим. A = 9D(16) = 1001 1101(2); B = 237(8) = 10 011 111 (2) = 1001 1111(2) Неравенство записано словами как-то странно. Если подразумевалось A<C<B, то ответ 1001 1110, т.е. 2) А если A<C и A<B, то ответы 2), 3), 4), поэтому наверно все же условие было A<C<B. 3. Тут все так же. A = F7(16) = 1111 0111 (2); B = 371(8) = 11 111 001(2) - 1111 1001(2) Неравенству A<C<B удовлетворяет ответ 4) 4. Поскольку кроме "удобных" для сравнения систем по основанию 16,8,2 есть число в десятичной системе, переведем все числа в 16-ю - это наиболее быстро (минимум делений). 347(8) = 11 100 111(2)= 1110 0111(2)=E7(16); 1110 0101(2) = E5(16); 232(10)/16 = 14, остаток 8 -> 232(10) = E8(16) Сравниваем E6, E7, E5, E8: наименьшее E5, т.е. 11100101(2) 5. Аналогичное решение. 234(8) = 10 011 100(2) = 1001 1100(2) = 9C(16); 1001 1010(2) = 9A(16); 153(10)/16=9, остаток 9 -> 153(10) = 99(16) Сравниваем 9B, 9C, 9A, 99: наибольшее 9С, т.е. 234(8)
Значит так: мы создаем массив избыточной длины, куда потом будем записывать рандомные числа. Так же мы создаем массив-счетчик b (у него индексами являются сами числа, а элементами - количество этого числа в массиве А), куда будет присваиваться, сколько раз нам встречается то или иное число (перед этим мы массив обязательно обнулим). В конце мы смотрим максимальное число из массива-счетчика. Вуаля!
Вот пример программы на паскале ABC:
var a:array [1..1000000] of integer; b:array [1..10] of longint; c:integer; i,max,n:longint; begin write('Введите число элементов массива: '); readln(n); max:=0; for i:=1 to 10 do b[i]:=0; for i:=1 to n do begin a[i]:=random(10)+1; write(a[i],' '); b[a[i]]:=b[a[i]]+1 end; for i:=1 to 10 do if b[i]>max then begin c:=i; max:=b[i] end; writeln; writeln('Чаще всего в массиве встречается число ',c) end.
754(8) = 111 101 100 (2) = 1 1110 1100 (2) = 1EC (16)
ответ 3)
2. ответы даны в двоичной системе, в нее все и переводим.
A = 9D(16) = 1001 1101(2); B = 237(8) = 10 011 111 (2) = 1001 1111(2)
Неравенство записано словами как-то странно.
Если подразумевалось A<C<B, то ответ 1001 1110, т.е. 2)
А если A<C и A<B, то ответы 2), 3), 4), поэтому наверно все же условие было A<C<B.
3. Тут все так же.
A = F7(16) = 1111 0111 (2); B = 371(8) = 11 111 001(2) - 1111 1001(2)
Неравенству A<C<B удовлетворяет ответ 4)
4. Поскольку кроме "удобных" для сравнения систем по основанию 16,8,2 есть число в десятичной системе, переведем все числа в 16-ю - это наиболее быстро (минимум делений).
347(8) = 11 100 111(2)= 1110 0111(2)=E7(16);
1110 0101(2) = E5(16);
232(10)/16 = 14, остаток 8 -> 232(10) = E8(16)
Сравниваем E6, E7, E5, E8: наименьшее E5, т.е. 11100101(2)
5. Аналогичное решение.
234(8) = 10 011 100(2) = 1001 1100(2) = 9C(16);
1001 1010(2) = 9A(16);
153(10)/16=9, остаток 9 -> 153(10) = 99(16)
Сравниваем 9B, 9C, 9A, 99: наибольшее 9С, т.е. 234(8)
Вот пример программы на паскале ABC:
var a:array [1..1000000] of integer;
b:array [1..10] of longint;
c:integer;
i,max,n:longint;
begin
write('Введите число элементов массива: ');
readln(n);
max:=0;
for i:=1 to 10 do
b[i]:=0;
for i:=1 to n do begin
a[i]:=random(10)+1;
write(a[i],' ');
b[a[i]]:=b[a[i]]+1
end;
for i:=1 to 10 do if b[i]>max then
begin
c:=i;
max:=b[i]
end;
writeln;
writeln('Чаще всего в массиве встречается число ',c)
end.