Pascal. Диалоговая программа

Тема в разделе "Pascal and Delphi", создана пользователем ANTON2527, 10 дек 2010.

  1. ANTON2527

    ANTON2527 Гость

    Задача:
    Составьте диалоговую программу угадывания случайно выбранных координат цели в квадрате: по оси х от –10 о 30, по оси у от 2 до 28 c восьми попыток с двойным сообщением корректировщика, например: уменьшить Х, либо: немного уменьшить Х (если отклонение от цели меньше 3).

    Помогите решить. Заранее спасибо :)
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Смотри дихотомический поиск этом случае вопрос задается в форме
    X < середины отрезка(например для первого шага Х меньше 10?).
    потом так же для Y. получаем меньшую область(половину, четверть 1/8 и т.д.)
    после положительных или отрицательных ответов на 8 вопросов будет область 2 на 3 вроде как..
    если такой вариант не походит конкретизируй свой пример диалога.
     
  3. ANTON2527

    ANTON2527 Гость

    Я думаю подойдет ;) Мне бы решение... ;)
     
  4. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    for i:=1 to 4 do //раз уж с 8 ходов, хотя можно использовать и условия выхода
    begin
    writeln('Искомая точка лежит левее? '+ ((x1+x2) div 2) + ' y or n?');
    readln(ch);
    if ch='y' then x2=(x1+x2) div 2
    else x1=(x1+x2) div 2

    //тоже самое для y1,y2
    end;

    в результате получишь x1,x2,y1,y2 - область в которой твоя точка
     
Загрузка...

Поделиться этой страницей