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

Создать двумерный массив, который будет представлять декартову плоскость - C++

Восстановить пароль Регистрация
 
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
29.03.2013, 03:24     Создать двумерный массив, который будет представлять декартову плоскость #1
нужно создать двумерный массив, который будет представлять декартову плоскость

то есть чтобы координаты можно было задавать отрицательными, к примеру

C++
1
cin>>array[-1][-10];
не могу понять, как реализовать?
спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2013, 03:24     Создать двумерный массив, который будет представлять декартову плоскость
Посмотрите здесь:

Дан двумерный массив А который состоит из m строк и n столбцов C++
.Создать класс Binary1, который будет содержать число в двоичной системе C++
Создать уникальный двумерный массив C++
C++ Создать приложение в котором в левой чисти экрана будет куб который будет вращаться с помощью "перетаскивания мыши"
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SDev
43 / 41 / 10
Регистрация: 15.03.2013
Сообщений: 88
29.03.2013, 04:42     Создать двумерный массив, который будет представлять декартову плоскость #2
по-моему есть два варианта:
1-простой без оператора []
использовать такую функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
const int left=-10;
const int top=10;
const int right=10;
const int bottom=-10;
int matr[21][21];// 10+10+1
 
int item(int i,int j)
{
int ii,jj;
ii=i-bottom;
jj=j-left;
return matr[ii][jj];
}
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
class Vector
{
  int vec[21];
public:
int& operator[](int i)
{//Здесь логика преобразования индекса i в ii как в 1-м варианте
  return vec[ii];
 };
};
 
 
class Matr
{
   Vector matr[21];
public:
Vector& operator[](int i)
{
 //Здесь логика преобразования индекса i в ii как в 1-м варианте
return mart[ii];
};
};
 
main()
{
Matr array;
cin>> array[-1][-10];
}
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
29.03.2013, 14:14  [ТС]     Создать двумерный массив, который будет представлять декартову плоскость #3
насколько я понял мы все равно работает с положительными числами, только весь наш массив несколько смещается .

само задания звучит так:
создать динамический двумерный массив целых чисел з произвольным (включая и отрицательные) размером.

возможно будут еще какие-то варианты? спасибо.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.03.2013, 14:45     Создать двумерный массив, который будет представлять декартову плоскость #4
Цитата Сообщение от slipp1 Посмотреть сообщение
создать динамический двумерный массив целых чисел з произвольным (включая и отрицательные) размером.
отрицательный размер это сильно
Индексация массивов в С++ идет с нуля. Это аксиома. Если хотите имитировать отрицательные индексы - создаете свой тип и перегружаете для него operator[]. Другого решения нет. Хотите отрицательные индексы в базовом типе массивов - используйте паскаль.
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
29.03.2013, 16:26  [ТС]     Создать двумерный массив, который будет представлять декартову плоскость #5
Цитата Сообщение от slipp1 Посмотреть сообщение
насколько я понял мы все равно работает с положительными числами, только весь наш массив несколько смещается
я сделал правильные выводы?
SDev
43 / 41 / 10
Регистрация: 15.03.2013
Сообщений: 88
29.03.2013, 16:45     Создать двумерный массив, который будет представлять декартову плоскость #6
в правильном направлении :-)
пишите свою реализацию, присылайте с вопросами.
вместе доделаем
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 23:34     Создать двумерный массив, который будет представлять декартову плоскость
Еще ссылки по теме:

C++ Как реализовать класс Pricelist, который будет содержать динамический массив объектов Model
Создать третий массив, который будет состоять из чередующихся элементов первого и второго массивов C++
C++ Полиморфизм. Как в предке объявить статический массив, который можно будет использовать в наследниках?

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

Или воспользуйтесь поиском по форуму:
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
09.04.2013, 23:34  [ТС]     Создать двумерный массив, который будет представлять декартову плоскость #7
up!
Yandex
Объявления
09.04.2013, 23:34     Создать двумерный массив, который будет представлять декартову плоскость
Ответ Создать тему
Опции темы

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