program znanijacom;
const
n = 5;
type
mas = array[1..n] of integer;
var
a: mas;
i: integer;
max: integer;
begin
writeln('введите элементы массива');
for i:=1 to n do readln(a[i]);
writeln('вывод элементов массива:');
for i:=1 to n do write(a[i]:3);
max := a[1];
for i:=1 to n do if a[i] > max then max := a[i];
writeln(' максимальный элемент: ', max);
writeln('массив после изменений: ');
for i:=1 to n do begin
if a[i] = max then a[i] := a[i]*i;
write(a[i]:3);
end;
end.
Объяснение:
Это обычный дешифратор. С увеличением А появляется 0 на очередном Q. Все остальные Q =1 (потому, что Q с инверсией).
А0 А1 А2 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
0 0 0 0 1 1 1 1 1 1 1
1 0 0 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
1 1 0 1 1 1 0 1 1 1 1
0 0 1 1 1 1 1 0 1 1 1
1 0 1 1 1 1 1 1 0 1 1
0 1 1 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 0
Объяснение:
Рисовать здесь не умею, но думаю понятно.