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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread35022.html
помогите решить задачу пожалуйста!!! нужно реализовать динамический массив и показать работу с ним: удаление, добавление, вставка элемента на си.
C++ Ввести структуру для описания комплексного числа,ребят выручайте,нужна ваша помощь Ввести структуру для описания комплексного числа.Составить и протестировать функцию для преобразования комплексного числа из алгебраической формы в показательную http://www.cyberforum.ru/cpp-beginners/thread35015.html
Как завершить поток C++
Как завершить поток, начатый _beginthread( Thread, 0, NULL );
C++ Машина Тьюринга. (Динамический массив))
Написал машину Тьюринга для умножения трех натуральных чисел: #include <stdio.h> #include <conio.h> #include <math.h> #include <dos.h> #include <alloc.h> #include <stdlib.h> char *r; //...
C++ Найти среднее арифметическое заданных чисел http://www.cyberforum.ru/cpp-beginners/thread34982.html
Не могу решить задачку на VS. Подскажите, кто может! Условие: Найти среднее арифметическое заданных чисел. Числа вводятся через пробел до знака "-1".
C++ Динамические структуры данных Вариант 18 Павловской И вот еще одна задачка из динамических массивов. Буду рад любой помощи!!! :help: На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах,... подробнее

Показать сообщение отдельно
BullDogoff
10 / 10 / 1
Регистрация: 16.05.2009
Сообщений: 30
19.05.2009, 14:04
Не совсем понятно, нафига там нужны энумы.. Чтоб к Декарту не приводить, разве что..
Вот так, вроде. У меня работает..
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru