• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы ANTON2527
  • Дата начала
A

ANTON2527

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

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

nayke

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

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

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

ANTON2527

Смотри дихотомический поиск этом случае вопрос задается в форме
X < середины отрезка(например для первого шага Х меньше 10?).
потом так же для Y. получаем меньшую область(половину, четверть 1/8 и т.д.)
после положительных или отрицательных ответов на 8 вопросов будет область 2 на 3 вроде как..
если такой вариант не походит конкретизируй свой пример диалога.
Я думаю подойдет ;) Мне бы решение... ;)
 
N

nayke

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

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 - область в которой твоя точка
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!