Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для _Edith
1 / 1 / 1
Регистрация: 02.04.2011
Сообщений: 99

Выяснить, угрожает ли ферзь полю (k, l), если он расположен на поле (m, n)

03.10.2011, 20:21. Показов 3440. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число – номер вертикали (при счете слева направо), второе – номер горизонтали (при счете сверху вниз). Даны натуральные числа k , l , m , n , каждое из которых не превосходит восьми. Требуется выяснить, угрожает ли ферзь полю ( k , l ), если он расположен на поле ( m , n ). Входной файл lb 2_19. in содержит в первой строке четыре числа, разделенные пробелами, – k , l , m , n , а выходной файл lb 2_19. out в первой строке слово YES (если ферзь угрожает) или NO (если ферзь не угрожает клетке).

Пример входного файла lb 2_19. in

5 3 1 7

Пример выходного файла lb 2_19. out

YES

не обязательно делать с считыванием из файлов. можно с простым вводом выводом.
Моя версия программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "iostream"
#include <conio.h>
#include <cstdlib>
#include <locale>
 
using namespace std;
 
int main()
{
    int k, l, m, n, d, c;
    int i, j;
    int t = 0;
 
    setlocale(0, "");
 
    cout << "Введите координаты ферзя по горизонтали" << endl;
    cin >> k;
 
    cout << "Введите координаты ферзя по вертикали" << endl;
    cin >> l;
 
    cout << "Введите координаты короля по горизотали" << endl;
    cin >> m;
    d = m;
 
    cout << "Введите координаты короля по вертикали" << endl;
    cin >> n;
    c = n;
 
    if (k == m || l == n)
        t = 1;
    else
    {
 
        for (i = 0; i < 4; i++)
        {
            m = d;
            n = c;
 
            for (j = 0; j < 8; j++)
            {
                if (((k == ++m) && (l == ++n)) || ((k == --m) && (l == --n)) || ((k == ++m) && (l == --n)) || ((k == --m) && (l == ++n)))
                    t = 1;
            }
        }
    }
            
    if (t == 1)
        cout << "YES";
    else
        cout << "NO";
 
    getch();
 
    return 0;
}
Но она не работает так как в условии не происходит инкрементации.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.10.2011, 20:21
Ответы с готовыми решениями:

Необходимо выяснить:если на клетке (a,b) расположен ферзь,угрожает ли он полю (c,d)
Поле шахматной доски имеет размер 8х8.Клетки определяются координатами,первая из которых - номер вертикали(слева направо),а вторая - номер...

Выяснить, угрожает ли ферзь, стоящий на поле (k, l), полю (m, n)
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе – номер горизонтали. Даны...

Шахматная доска: угрожает ли ферзь, стоящий на поле (k, l), полю (m, n)?
Собственно,условие вот. Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе —...

1
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
04.10.2011, 09:05
Тут не нужны циклы.

Предположим, координаты ферзя -- (x, y), а координаты проверяемого поля -- (a, b).
Тогда "ферзь бьет поле" по диагонали, в случае, если разницы в координатах по X и по Y равны:
abs(x - a) == abs(y - b)
и "ферзь бьет поле" по вертикали или горизонтали, если совпадает или горизонталь или вертикаль:
x == a || y == b
совмещаем, получаем, что "ферзь бьет поле" если:
(abs(x - a) == abs(y - b)) || (x == a || y == b)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.10.2011, 09:05
Помогаю со студенческими работами здесь

Определить, угрожает ли ферзь, стоящий на первом поле, второму полю
2. Поле шахматной доски определяется парой значений (вертикаль, горизонталь), где первая буква, а вторая цифра, например, e2, f5. По двум...

На поле (k,l) расположен ферзь. Угрожает ли он полю (m,n)
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число - номер вертикали (при...

На поле (k,l) шахматной доски расположен ферзь; проверить, угрожает ли он полю (m,n)
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми:первое число-номер вертикали(при счете...

Определить, угрожает ли полю (m,n) ферзь, находящийся на поле (k,l).
6. Поле шахматной доски определяется парой (m,n) натуральных чисел (1&lt;=m&lt;=8,1&lt;=n&lt;=8). Первое число - номер строки ( номер горизонтали),...

На поле (k, l) расположен конь. Определить, угрожает ли он полю (m, n)
Здравствуйте всем, я начинающий программист... :) Помогите, пожалуйста, кто сможет, решаю контрольную работу по турбо паскалю (заодно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru