Бьет ли произвольно установленный ферзь произвольно установленную фигуру? - Turbo Pascal
Формулировка задачи:
Текст задачи
"Положение фигуры на шахматной доске(8х8) задаётся двумя числами - номером горизонтали и номером вертикали. Ввести с клавиатуры координаты ферзя и координаты любой фигуры. Проверить, находится ли фигура под боем."
Я нашел решение этой задачи , но вот в чём загвоздка - я не знаю еще операторы repeat, в самой книге задача идет сразу после разбора оператора If и вложенного Begin. Можно ли как-то решить задачу , используя лишь этот оператор? Просто усиленно не понимаю,как же тогда указать,что он бьет по диагонали. Вроде бы, получается,что если
Причем откуда взять это n - непонятно. Если ферзь становится где-нибудь в (4,4) еще понятно,что делать. А если в (1,1)?
Решений с repeat и всем,что идёт после прохождения if(еще даже про case не читал) не пишите, пожалуйста,так как смысла в этом нет. И ведь если она дается в блоке с If,то должна же как-то решаться.
Листинг программы
- if ((x2:=x1+n) and (Y2:=Y1+n))
- then writeln ('Strike'); {Где х1 и у1- координаты ферзя, х2 и у2 - координаты фигуры}
Решение задачи: «Бьет ли произвольно установленный ферзь произвольно установленную фигуру?»
textual
Листинг программы
- repeat
- writeln('Введите координаты ферзя от 1 до 8');
- readln(x1,y1);
- until(x1 in [1..8])and(y1 in [1..8]);
Объяснение кода листинга программы
- В цикле repeat-until считываются координаты ферзя от 1 до 8.
- Координаты ферзя записываются в переменные x1 и y1.
- Выполняется условие до тех пор, пока x1 не будет в диапазоне от 1 до 8 и y1 не будет в диапазоне от 1 до 8.
- Если условие не выполняется, то цикл повторяется.
- После того, как условие выполнится, цикл завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д