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

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

Войти
Регистрация
Восстановить пароль
 
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
#1

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

29.03.2013, 03:24. Просмотров 366. Ответов 6
Метки нет (Все метки)

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

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

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

Из элементов создать новый, который будет содержать товары, изготовленные фирмой Sony C++
Дан двумерный массив А который состоит из m строк и n столбцов C++
.Создать класс Binary1, который будет содержать число в двоичной системе C++
C++ Создать приложение в котором в левой чисти экрана будет куб который будет вращаться с помощью "перетаскивания мыши"
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах C++
C++ Как реализовать класс Pricelist, который будет содержать динамический массив объектов Model
Создать третий массив, который будет состоять из чередующихся элементов первого и второго массивов 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
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
29.03.2013, 14:14  [ТС]     Создать двумерный массив, который будет представлять декартову плоскость #3
насколько я понял мы все равно работает с положительными числами, только весь наш массив несколько смещается .

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

возможно будут еще какие-то варианты? спасибо.
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.03.2013, 14:45     Создать двумерный массив, который будет представлять декартову плоскость #4
Цитата Сообщение от slipp1 Посмотреть сообщение
создать динамический двумерный массив целых чисел з произвольным (включая и отрицательные) размером.
отрицательный размер это сильно
Индексация массивов в С++ идет с нуля. Это аксиома. Если хотите имитировать отрицательные индексы - создаете свой тип и перегружаете для него operator[]. Другого решения нет. Хотите отрицательные индексы в базовом типе массивов - используйте паскаль.
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 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++ Полиморфизм. Как в предке объявить статический массив, который можно будет использовать в наследниках?
C++ Создать двумерный массив 10 на 20, который будет сортировать четные числа по возростанию и нечетные по убывани
Создать класс, который представляет собой двумерный массив размером n x m C++
Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива C++
Создать упорядоченный по убыванию список, который будет содержать числа, являющиеся простыми C++

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

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

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