С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 78
1

Как обратиться к массиву буквой?

27.10.2014, 18:00. Показов 1044. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Текст задания :
Шахматная партия. Шахматная доска имеет размер 8х8. При этом координаты фигуры задаются в шахматной нотации , т.е. состоят из буквы(от a до h) , которая означает № столбца и цифры - № строки (например e2).
Пользователь задает позиции нескольких фигур. Предвидеть задания таких фигур как : конь , пешка , тура. Типы задаются буквами соответственно : К , П , Т.
После ввода данных про каждую из фигур вывести на экран шахматную доску , обозначить на ней позиции заданных фигур , символом "*" - обозначить позиции на которую можно переместить последнюю введенную фигуру , а символом "." все остальные клетки.
Буду признателен за любую помощь )
Пока есть конкретный вопрос : как обратиться к массиву с помощью буквы ? т.е. как задать расположение фигуры ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2014, 18:00
Ответы с готовыми решениями:

Как обратиться к массиву
вот я создал динамический массив: int a1 = 4; // строк int a2 = 7; // столбцов // создадим...

Как обратиться к массиву string
Задача состоит в том чтобы закинуть все слова из строки string в массив слов string, вроде делаю...

Как обратиться к массиву, находящемуся внутри функции?
Есть функция в которой как локальная переменная масив, как вызвать это массив в маине? int...

Как обратиться к массиву?
Хотелось бы узнать как работает данный массив. Что такое PAD_MAX . И как обращаиться к данному...

8
Супер-модератор
6197 / 2946 / 1300
Регистрация: 04.03.2013
Сообщений: 5,791
Записей в блоге: 1
27.10.2014, 18:18 2
romalikons, если вы имеете в виду как записать индексы по горизонталям доски (строкам двумерного массива), то объявите константы от A до H...
C++
1
2
3
4
#define A 0;
#define B 1;
...
#define H 7;
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
27.10.2014, 18:18 3
Зачем это нужно? К массиву только по индексу можно. Просто пронумеруй буквы.
0
Модератор
Эксперт CЭксперт С++
5286 / 2373 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
27.10.2014, 18:20 4
Цитата Сообщение от romalikons Посмотреть сообщение
как обратиться к массиву с помощью буквы ? т.е. как задать расположение фигуры ?
Коды букв - это цифры. То есть, если буквы - это символы типа char, то их легко перевести в тип int:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main()
{
    std::cout << "Enter the position of the chess piece on the board\n";
    char chessPiecePosition[2];
    std::cin >> chessPiecePosition;
    int letterToNumber = chessPiecePosition[0];
    std::cout << chessPiecePosition[0] << std::endl;
    std::cout << chessPiecePosition[1] << std::endl;
    std::cout << "And here is first character code:\n";
    std::cout << letterToNumber << std::endl;
 
    return 0;
}
Добавлено через 1 минуту
То есть, к примеру, английская буква A имеет код 65.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.10.2014, 18:21 5
ildwine, дефайны в плюсах следует использовать только если нет ничего более лучшего.
В данном случае могу предложить использовать enum:
C++
1
enum fieldLetter { A, B, C, D, E, F, G, H };
2
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
27.10.2014, 18:24 6
Tulosba, без значений, что ли?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.10.2014, 18:25 7
nmcf, первое поле будет иметь значение 0 (по умолчанию), каждое последующее +1.
1
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 78
27.10.2014, 20:46  [ТС] 8
с этим разобрался , спасибо. Ещё вопрос , как ввести значение массива не с первого элемента ? т.е. если пользователь задаст координаты , они запишутся в первый элемент массива , так ? Надо , что бы при вводе координаты A4 это значение присваивалось элементу массива mas[0][5] , а не mas[0][0]
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
29.10.2014, 14:55 9
Ну подставь нужные индексы.
0
29.10.2014, 14:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2014, 14:55
Помогаю со студенческими работами здесь

Как обратиться к массиву?
Есть массив res типа obj. и не могу вывести в label то что помечено красным. Как это сделать?...

Как обратиться к массиву структур
Создал структуру class strForDebug { public double dCoordinates; public...

Обратиться к массиву, как к таблице
есть пример работающего кода, приведен ниже, там вроде вопросов нет, массив, к нему потом...

Как обратиться к инициализированному массиву
Здравствуйте, массив заявлен, но про него еще ничего не ясно и как работать с этим идентификатором,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru