ОбъясОтличник
program prog;
uses crt;
var a,b,v:integer;
begin
clrscr;
write('Возраст Антона = ');
readln(a);
write('Возраст Бориса = ');
readln(b);
write('Возраст Виктора = ');
readln(v);
writeln;
if (a>b)and(a>v) then writeln('Антон старше всех.');
if (b>a)and(b>v) then writeln('Борис старше всех.');
if (v>a)and(v>b) then writeln('Виктор старше всех.');
if (a=b)and(a>v) then writeln('Антон и Борис старше Виктора');
if (a=v)and(a>b) then writeln('Антон и Виктор старше Бориса');
if (b=v)and(b>a) then writeln('Борис и Виктор старше Антона');
if (a=b)and(a=v) then writeln('Антон,Борис и Виктор одного возраста');
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 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.
ОбъясОтличник
program prog;
uses crt;
var a,b,v:integer;
begin
clrscr;
write('Возраст Антона = ');
readln(a);
write('Возраст Бориса = ');
readln(b);
write('Возраст Виктора = ');
readln(v);
writeln;
if (a>b)and(a>v) then writeln('Антон старше всех.');
if (b>a)and(b>v) then writeln('Борис старше всех.');
if (v>a)and(v>b) then writeln('Виктор старше всех.');
if (a=b)and(a>v) then writeln('Антон и Борис старше Виктора');
if (a=v)and(a>b) then writeln('Антон и Виктор старше Бориса');
if (b=v)and(b>a) then writeln('Борис и Виктор старше Антона');
if (a=b)and(a=v) then writeln('Антон,Борис и Виктор одного возраста');
end.
Подробнее - на -