1. var x : array[1..1000] of integer; n,i,max,min : integer; begin write('n = '); readln(n); writeln('Исходный массив:'); for i:=1 to n do begin write('x[',i,']='); readln(x[i]); end; writeln; max:=x[1]; min:=x[1]; for i:=2 to n do begin if x[i] > max then max:=x[i]; if x[i] < min then min:=x[i]; end; writeln('max=',max,' min=',min); writeln('Среднее = ',(max+min)/2:5:2); end.
var x : array[1..1000] of integer;
n,i,max,min : integer;
begin
write('n = ');
readln(n);
writeln('Исходный массив:');
for i:=1 to n do begin
write('x[',i,']=');
readln(x[i]);
end;
writeln;
max:=x[1]; min:=x[1];
for i:=2 to n do
begin
if x[i] > max then max:=x[i];
if x[i] < min then min:=x[i];
end;
writeln('max=',max,' min=',min);
writeln('Среднее = ',(max+min)/2:5:2);
end.
Пример:
n = 5
Исходный массив:
x[1]=12
x[2]=45
x[3]=60
x[4]=72
x[5]=68
max=72 min=12
Среднее = 42.00
2.
begin
var n:=ReadInteger('n = ');
var a:=ReadArrInteger('Вводите массив:',n);
Writeln('Max = ',a.Max);
Writeln('Min = ',a.Min);
Writeln('Среднее = ',(a.Max+a.Min)/2);
end.
m & 1 - это битовая конъюнкция. Результатом будет 1, если m нечетное, и 0, если m - четное (то есть, содержит или не содержит соответствующий разряд)
Выражение вида T ? X : Y, где T - логическое высказывание, принимает значение X, если T истинно, и Y, если T ложно.
Соответственно, i = (m & 1) == 1 ? m : m + 1 означает, что
если m нечетное, то i = m
если четное, i = m+1 (то есть, первое нечетное число после m)
i += 2 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.