Форум программистов, компьютерный форум CyberForum.ru

ферзь - C++

Восстановить пароль Регистрация
 
sirserik
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 156
16.06.2011, 15:32     ферзь #1
Всем доброго времени суток помогите найти ошибку в решений задачи
Даны координаты доски 2-х различных полей шахматной доски x1,y1,x2,y2;(Целые числа в диапозоне от 1 до 8) Проверить истинность высказывания. Ферзь за один ход может перейти с одного поля на другоеВсем спасибо заранееРешать только через бул

Пример 7.8-3.4 -Истина
Вот мой код

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
#include <math.h>
#include <iostream>
using namespace std;
void main()
{
    int x1,y1,x2,y2,w,z,a,b,m,n;
    cin>>x1,y1,x2,y2;
    w = x2-x1;
    z = y2-y1;
    a = (x1+y1)%2;
    b = (x2+y2)%2;
    m = (x2-x1);
    n = (y2-y1);
    bool d,e,f,g,h,l;
    d = ((x1-x2==0))&&((z<=7)||(z>=7));
    e = ((z==0))&&((w<=7)||(w>=-7));
    f = ((a==0)&&(b==0))||((a==1)&&(b==1));
    g = (m==n)&&((m!=0)||(n!=0));
    h = m==-n;
    l = ((d)&&(e))||((f)&&(g)||(f)&&(h));
    cout<<l;
    cin.get();
cin.get();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
16.06.2011, 15:51     ферзь #2
Добрый день! Встречный вопрос? Доска пустая? Или могут быть другие фигуры?

Добавлено через 11 минут
Для пустой доски. Обработки ошибок нет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Даны координаты доски 2-х различных полей шахматной доски x1,y1,x2,y2;
// (Целые числа в диапозоне от 1 до 8) Проверить истинность высказывания.
//Ферзь за один ход может перейти с одного поля на другое
//  Пример 7.8-3.4 -Истина
#include <iostream>
using namespace std;
int main()
{
    int x1,y1,x2,y2;
    bool d;
 
 
    cin>>x1>>y1>>x2>>y2;
    d = x1==x2 || y1==y2 || x1-y1==x2-y2 || x1+y1==x2+y2;
    cout<<d;
    cin.get();
 
    return 0;
}
sirserik
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 156
16.06.2011, 15:55  [ТС]     ферзь #3
Доска пустая но при попытке скомпелировать данный код выдает что у меня не определены переменные х2 и у2 не пойму
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
16.06.2011, 16:04     ферзь #4
G++/Code::Blocks. Какая у Вас среда, компилятор?
sirserik
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 156
16.06.2011, 16:15  [ТС]     ферзь #5
Цитата Сообщение от lamed Посмотреть сообщение
G++/Code::Blocks. Какая у Вас среда, компилятор?
все ошибку сам нашел cin>>x1,y1,x2,y2;
а надо было x1>>y1>>x2>>y2;
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
16.06.2011, 16:19     ферзь #6
Нет, это не причина ошибки компилятора. Я запускал Вашу программу. Компилировалась нормально. Это логическая ошибка. Вполне легальный оператор "запятая".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2011, 16:23     ферзь
Еще ссылки по теме:

Шахматы. Каждый ферзь бьет ровного одного ферзя C++
C++ Слон, конь, ферзь
C++ На доске стоят два ферзя. Указать поля, на которые может пойти белый ферзь, чтобы не попасть под удар черного

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

Или воспользуйтесь поиском по форуму:
sirserik
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 156
16.06.2011, 16:23  [ТС]     ферзь #7
Цитата Сообщение от lamed Посмотреть сообщение
Нет, это не причина ошибки компилятора. Я запускал Вашу программу. Компилировалась нормально. Это логическая ошибка. Вполне легальный оператор "запятая".
у меня mvc++ 2010 там только из за этой ошибки не вводлась вторая переменная
Yandex
Объявления
16.06.2011, 16:23     ферзь
Ответ Создать тему
Опции темы

Текущее время: 02:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru