В общем случае, трассировка - один из отладки программ врукопашную: состояние программы контролируется на определённом отрезке времени её выполнения путём анализа значений переменных. трассировка в том или ином виде при отладке программ сложнее школьного дз практически неизбежна. в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага. в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений. есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует. почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага.
в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений.
есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует.
почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
1)
2)
3) координаты находятся по диагонали от ферзя.
Имеем не самую лучшую и чистую, но рабочую программку:
#include <cstdio>
int main() {
int x1, x2, y1, y2, x_d1, y_d1, x_d2, y_d2;
printf("x1=");
scanf("%d", &x1);
printf("y1=");
scanf("%d", &y1);
printf("x2=");
scanf("%d", &x2);
printf("y2=");
scanf("%d", &y2);
/* Проверка на линейные совпадения */
if ( (x1 == x2) or (y1 == y2) ) {
printf("1");
return 1;
}
/* Поиск пересечения с диагональю 1 */
x_d1 = x1;
y_d1 = y1;
while ( (x_d1 > 1) and (y_d1 > 1) ) {
x_d1--;
y_d1--;
if ( (x2 == x_d1) and (y2 == y_d1) ) {
printf("1");
return 1;
}
}
while ( (x_d1 < 8) and (y_d1 < 8) ) {
x_d1++;
y_d1++;
if ( (x2 == x_d1) and (y2 == y_d1) ) {
printf("1");
return 1;
}
}
/* Поиск пересечения с диагональю 2 */
x_d2 = x1;
y_d2 = y1;
while ( (x_d2 < 8) and (y_d1 > 1) ) {
x_d1++;
y_d1--;
if ( (x2 == x_d2) and (y2 == y_d2) ) {
printf("1");
return 1;
}
}
while ( (x_d1 > 1) and (y_d1 < 8) ) {
x_d1--;
y_d1++;
if ( (x2 == x_d2) and (y2 == y_d2) ) {
printf("1");
return 1;
}
}
printf("0");
return 0;
}