Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
obuhovec
#1

Структуры в С++(Задача) - C++

19.05.2009, 12:48. Просмотров 1031. Ответов 1
Метки нет (Все метки)

Ввести перечислимые типы вертикаль, горизонталь для обозначения клеток шахматной доски. Составить и протестировать функции: ХОД_ФЕРЗЯ (К1, К2), которая проверяет, может ли ферзь за один ход перейти с поля К1 на поле К2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2009, 12:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структуры в С++(Задача) (C++):

[C++] Задача на структуры - C++
В Европе около 35 государств. По каждому государству имеется следующая информация: название, численность населения, площадь территории,...

Задача на структуры - C++
Помогите плиз з лабораторной, немогу написать... Из клавиатуры ввести набор данных с информацией о наличии санаторных путевок:...

Задача на структуры - C++
День (вечер) добрый, дали задачу на структуры - учитывая информацию о результатах сессии студентов, вывести на экран список тех, кто будет...

Структуры задача - C++
Горная вершина представлена названием, высотой в метрах, уровнем сложности восхождения на вершину. Среди некоторого кол-ва вершин отобрать...

Задача на структуры - C++
Помогите сделать задание, ибо у самого не получается. А для защиты надо. 1. Имеется список автомобилей. Информация в списке: марка,...

Задача. Структуры в С++ - C++
Дан список студентов 25 человек и сведения о результатах сдачи экзамена по дисциплинам информатика, мат.анализ, алгебра, история....

1
BullDogoff
10 / 10 / 1
Регистрация: 16.05.2009
Сообщений: 30
19.05.2009, 14:04 #2
Не совсем понятно, нафига там нужны энумы.. Чтоб к Декарту не приводить, разве что..
Вот так, вроде. У меня работает..
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream.h>
 
struct Cell                     //Структура описывает клетку с координатами X и Y
{
    int x, y;
};
 
bool QueenCource(Cell, Cell);
 
main()
{
    Cell A, B;
    bool i = false;
 
    char c;
 
//Ввод первой клетки
    
    do
    {
        cout<<"insert Horisontal for 1-st cell(A, B, C...): ";
        cin>>c;
        if(c>96 && c<105) c-=32;              //Проверка на нижний регистр
        if(int(c)-65>7 || int(c)-65<0)        //Проверка на вхождение в диапазон
        {
            cout<<"Error: illegal coordinates! Retry..\n\n";
            continue;                         //Если не входит - цикл сначала
        }
        else i = true;
    }while(!i);
    do
    {
        cout<<"insert Vertical for 1-st cell(1, 2, 3...):   ";
        cin>>A.y;
        if(A.y-1>7 || A.y-1<0) 
        {
            cout<<"Error: illegal coordinates! Retry..\n\n";
            continue;
        }
        else i = true;
    }while(!i);
 
    A.x=int(c)-65;                            //Приведение к традиционным Декартовым координатам с началом в (0, 0)
    A.y-=1;
 
//То же самое для второй клетки
    
    do
    {
        cout<<"insert Horisontal for 2-nd cell(A, B, C...): ";
        cin>>c;
        if(c>96 && c<105) c-=32;
        if(int(c)-65>7 || int(c)-65<0) 
        {
            cout<<"Error: illegal coordinates! Retry..\n\n";
            continue;
        }
        else i = true;
    }while(!i);
    do
    {
        cout<<"insert Vertical for 2-nd cell(1, 2, 3...):   ";
        cin>>B.y;
        if(B.y-1>7 || B.y-1<0) 
        {
            cout<<"Error: illegal coordinates! Retry..\n\n";
            continue;
        }
        else i = true;
    }while(!i);
 
    B.x=int(c)-65;
    B.y-=1;
 
    cout<<"\n\n";
 
    if(QueenCource(A, B))
            cout<<"Queen can pass from "<<char(A.x+65)<<A.y+1<<" to "<<char(B.x+65)<<B.y+1<<";\n\n";
    else                         
            cout<<"Queen can't pass from "<<char(A.x+65)<<A.y+1<<" to "<<char(B.x+65)<<B.y+1<<";\n\n";
 
    return 0;
}
 
bool QueenCource(Cell A, Cell B)         //Собственно функция
{
    if(A.x==B.x || A.y==B.y ||           //Проверка. Если клетки находятся на одной горизонтали или вертикали,
       A.x - B.x == A.y - B.y)           //соответствующие координаты равны. Если они находятся на одной диагонали,
        return true;                     //равна разность соответствующих координат.
    else
        return false;
}
Добавлено через 12 минут 32 секунды
Да, забыл совсем, воткни ещё защиту от введения двух клеток с одинаковыми координатами..
C++
1
2
3
4
5
if(A.x==B.x && A.y==B.y)
{
    cout<<"Error: 1-st and 2-nd cells have identical coordinates!\n\n";
    return 0;
}
В строку 76..
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2009, 14:04
Привет! Вот еще темы с ответами:

Задача С++ на структуры! - C++
Информация о детали состоит из названия, веса, экземпляра(в кг),количества экземпляров, имеющихся на складе(в штуках),статуса(заказана или...

Задача на структуры - C++
написать программу которая просит ввести число точек, их координаты, а затем найти среднюю точку, координаты которой равны среднему...

задача на структуры - C++
1.сформировать массив из элементов структурного типа. 2.распечатать сформированный массив на экране в виде таблицы. Проблема вот в чем,...

Задача на структуры - C++
Помогите пожалуйста! Составить программу.Начальные данные берутся из файла и вводятся вручную. Минимальное содержание 15 элементов. ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru