Предмет: Информатика,
автор: Mira123456789
Даны координаты (целые от 1 до 8) двух полей шахматной доски.
Определить, может ли конь за один ход перейти с одного из этих полей на
другое.
Ответы
Автор ответа:
0
Так как язык не указан, пишу на C++
\\\\\\\\\\\\\\\\
#include <iostream>
using namespace std;
void getN(int &n) {
bool flag;
do {
flag = false;
cin >> n;
if (n > 8 || n < 1) {
cout << "Неправильное число! Повторите ввод: ";
flag = true;
}
}
while (flag);
}
bool canIGo(int x1, int y1, int x2, int y2) {
int dx, dy;
dx = abs(x1 - x2);
dy = abs(y1 - y2);
return (dx == 2 && dy == 1)||(dx == 1 && dy == 2);
}
int main() {
setlocale(LC_ALL, "Russian");
int x1, y1, x2, y2;
cout << "Координаты первой точки через пробел: ";
getN(x1); getN(y1);
cout << "Координаты второй точки через пробел: ";
getN(x2); getN(y2);
cout << ((canIGo(x1, y1, x2, y2)) ? "Можно!" : "Нельзя!") << endl;
system("pause");
return 0;
}
\\\\\\\\\\\\\\\\
#include <iostream>
using namespace std;
void getN(int &n) {
bool flag;
do {
flag = false;
cin >> n;
if (n > 8 || n < 1) {
cout << "Неправильное число! Повторите ввод: ";
flag = true;
}
}
while (flag);
}
bool canIGo(int x1, int y1, int x2, int y2) {
int dx, dy;
dx = abs(x1 - x2);
dy = abs(y1 - y2);
return (dx == 2 && dy == 1)||(dx == 1 && dy == 2);
}
int main() {
setlocale(LC_ALL, "Russian");
int x1, y1, x2, y2;
cout << "Координаты первой точки через пробел: ";
getN(x1); getN(y1);
cout << "Координаты второй точки через пробел: ";
getN(x2); getN(y2);
cout << ((canIGo(x1, y1, x2, y2)) ? "Можно!" : "Нельзя!") << endl;
system("pause");
return 0;
}
Автор ответа:
0
Спасибо, но забыл указать, нужен Паскаль
Похожие вопросы
Предмет: Алгебра,
автор: masha0200503
Предмет: Физкультура и спорт,
автор: dmuz401
Предмет: Математика,
автор: sara020208
Предмет: Математика,
автор: Роза111111111
Предмет: Физика,
автор: maks13msr