Var a,b,c,min: Integer; begin writeln('Введите 1 число'); readln(a); writeln('Введите 2 число'); readln(b); writeln('Введите 3 число'); readln(c); min:=a; if b < min then min:=b; if c < min then min:=c; writeln(min); end.
1. Определить ученика (фамилию, имя и отчество из списка). Делим список на две части и задаем вопрос: "Ты в первой части списка?". По ответу выбираем нужную часть списка и повторяем до тех пор, пока не останутся две строки. После этого спрашиваем: "Ты верхний?". И по ответу устанавливаем ученика. Такой метод при N вариантах позволяет найти ответ за k=㏒₂N вопросов. Или, иначе, k≤2ⁿ 2⁹<560<2¹⁰ ⇒ k=10, т.е. нужно задать 10 вопросов.
2. Количество классов у нас 11. Поступаем аналогично. Разбиваем номера классов на две части, например, с 1 по 6 и с 7 по 11. И спрашиваем: "Ты учишься в классе большем, чем шестой?" По ответу выбираем группу и снова разбиваем её на две части. Например, если ответ "да", то новое разбиение будет на группы 7-9 и 10-11. Повторяем, пока не найдем ответ. И здесь расчет идет по той же схеме. 2³<11<2⁴ ⇒ k=4, т.е. потребуется задать 4 вопроса.
begin
writeln('Введите 1 число');
readln(a);
writeln('Введите 2 число');
readln(b);
writeln('Введите 3 число');
readln(c);
min:=a;
if b < min then min:=b;
if c < min then min:=c;
writeln(min);
end.