var n,i,m,k,a: integer;
begin
write ('Введите количество чисел: ');
readln (n);
write ('Введите число: ');
readln (a);
m:=a;
k:=1;
for i:=2 to n do
begin
write ('Введите число: ');
readln (a);
if a>m then
begin
m:=a;
k:=i
end
end;
writeln ('Первый максимальный элемент ',m,' и его номер ',k)
end.
У нас есть логическое выражение .
Электронная схема состоит из логических вентилей -- базовых блоков, выполняющих элементарную логическую операцию (коньюнкция, инверсия, дизъюнкция итд), входных и выходных сигналов.
По ГОСТу вентили изображаются как прямоугольники с надписью, обозначающую операцию вентиля.
& -- коньюнкция,
1 -- дизьюнкция,
а кружок на сигнале, обозначает его инверсию.
Назовём выходной сигнал F (так как его надо как-то назвать). Смотрите рисунок. Немного кривой, т.к. рисовал в простом графическом редакторе, а не в специализированном ПО.
Таблица истинности -- таблица, задающая значение логической формулы для всех комбинаций переменных.
Напишем её:
begin
var a := ReadArrReal('Вводите:', ReadInteger('Количество чисел?'));
var imax := a.IndexMax;
Writeln('Первое максимальное число ', a[imax],
' имеет номер ', imax + 1)
end.
ПримерКоличество чисел? 5Вводите: 14 2.17 15.2 8 15.2Первое максимальное число 15.2 имеет номер 3