Задание по методам поиска (игра в "угадай число" наоборот) - Turbo Pascal

Формулировка задачи:

Нужно составить программу определения задуманного ЧЕЛОВЕКОМ числа от 1 до 1000 с помощью 10 вопросов. Каждый вопрос имеет вид "верно ли, что задуманное число больше k?". При этом указывается конкретное число k. Ответами человека могут быть Д и Н. -- Видел много подобных заданий, но в них человек пытается угадать число. А здесь компьютер. Стало интересно как реализовать.

Код к задаче: «Задание по методам поиска (игра в "угадай число" наоборот) - Turbo Pascal»

textual
var n, s, k, i: integer;
    c: string;
begin
  n := 1;
  s := 1024;
  writeln('Загадайте число от ', n, ' до ', s, '.');
  for i := 1 to 10 do
    begin
      k := (s + n) div 2;
      repeat
        write(i:2, ': верно ли, что задуманное число больше ', k, ' (д/н)? ');
        readln(c);
        if (length(c) <> 1) or not (c[1] in ['д', 'н'])
          then writeln('Пожалуйста, отвечайте только д или н.')
      until (length(c) = 1) and (c[1] in ['д', 'н']);
      if c[1] = 'н'
        then s := k
        else n := k
    end;
  writeln('Вы загадали ', s);
  readln
end.

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

11   голосов, оценка 4.273 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы