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

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

Войти
Регистрация
Восстановить пароль
 
yukas
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 56
#1

Небольшая прога по методам доступа к элементам массива - C++

15.02.2011, 19:54. Просмотров 535. Ответов 4
Метки нет (Все метки)

Смысл такой, имеется трехмерный массив A[50][50][50]. Данные считываются с файла(тут все верно). Хотелось бы обращаться к элементам данного массива по индексам, начинающимся не с нуля как обычно, а задать самому интервалы индексирования(A[l1...h1][l2...h2][l3...h3]).
Видимо чего-то недопонел: программа не работает. Код полностью:
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
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
 
void main()
{
int A[50][50][50],
        l1,
      l2,
      l3,
      h1,
      h2,
      h3,
      D1,
      D2,
      D3 = 1,
      i,
      j,
      k,
      Index,
      Sum=0;
 
FILE *f;
 
cout << "Index: \n";
cin >> l1 >> h1 >> l2 >> h2 >> l3 >> h3;
D2 = (h3 - l3 + 1) * D3;
D1 = (h2 - l2 + 1) * D2;
 
//Zapolnenie dannih
f = fopen("Data.txt", "r");
for(i = 0; i < h1 - l1 + 1; i++)
for(j = 0; j < h2 - l2 + 1; j++)
for(k = 0; k < h3 - l3 + 1; k++)
    fscanf(f, "%d", &A[i][j][k]);
fclose(f);
 
Index = (0 - l1) * D1 + (0 - l2) * D2 + (0 - l3) * D3;
 
int ***B;
 
**B = &**A[-Index];
for(i = l1; i <= h1; i++)
for(j = l2; j <= h2; j++)
for(k = l3; k <= h3; k++)
{
cout << "B[" << i << "," << j << "," << k << "]= " << *(*(*(B + i) + j) + k) << endl;
Sum = Sum + *(*(*(B + i) + j) + k);
}
cout << "Summa= " << Sum << endl;
getch();
}
Добавлено через 1 минуту
Доступ к элементам необходимо организовать именно используя данные формулы(D1,D2,D3,Index). Может, кто сталкивался с подобным?
Теорию не смог найти, как ни гуглил-(
Кто выручит хотя бы с теорией, уже буду благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2011, 19:54     Небольшая прога по методам доступа к элементам массива
Посмотрите здесь:

Напишите цикл for для доступа к элементам массива в обратном порядке - C++
Правильно ли? #include &lt;iostream&gt; using namespace std; int main() { int size; cout &lt;&lt; &quot;Enter number: &quot;; cin &gt;&gt;...

Получение доступа к методам дочернего класса через указатель на родительский, хранимый в vector - C++
Была подобная тема с list'ом, но решение, предложенное там, мне не помогло. Соль проблемы заключается в следующем: имеется vector,...

Скорость доступа к элементам вектора - C++
Всем привет! Использую вектор и интеерсует вопрос скорости выбора элементов из него. У вектора есть метод vector.at(int index),...

Структура и осуществление доступа к ее элементам - C++
Получить программную реализацию задачи обработки таблицы дан- ных. Таблица должна представлять собой массив элементов соответствую- ...

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

Использование #define для доступа к элементам класса - C++
Добрый день. Имеется класс вида: class Test { int key; int smth; } И я хочу сделать #define чтобы быстро получать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.02.2011, 01:02     Небольшая прога по методам доступа к элементам массива #2
Отрицательные индексы элементов массива.
yukas
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 56
16.02.2011, 20:55  [ТС]     Небольшая прога по методам доступа к элементам массива #3
Одномерный случай - это просто, мне бы с трехмерным разобраться, но все равно спасибо.

Добавлено через 11 часов 32 минуты
Может кто-то еще помочь сможет?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.02.2011, 21:14     Небольшая прога по методам доступа к элементам массива #4
Имя одномерного массива, является указателем, имя двумерного массива, является указателем на указатель, имя 3-х мерного массива, является указателем на указатель который указывает на указатель. А дальше робота примерная по ссылке выше.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2011, 22:21     Небольшая прога по методам доступа к элементам массива
Еще ссылки по теме:

Error C2039 при использовании методов доступа к элементам вектора - C++
# include &lt;iostream&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;vector&gt; using namespace std; class Load ...

friend функции не имеют доступа к private элементам класса, почему? - C++
Учусь по Лафоре Р. - Объектно-ориентированное программирование в С++ (Классика Computer Science) - 2004. Выполняю задания на Microsoft...

Обращение к элементам массива в C++ - C++
#include &lt;SFML\Graphics.hpp&gt; const int number_units = 1; Sprite Person; Sprite unitsSprite = { Person }; for (int i = 0; i &lt;...

Разбивка массива по элементам! - C++
Разбивка массива по элементам! Здравствуйте!!! Подскажите, пожалуйста, как решить следующею задачу: Дан массив вида: 11223344 ...


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4961 / 3037 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
16.02.2011, 22:21     Небольшая прога по методам доступа к элементам массива #5
Цитата Сообщение от Maxwe11 Посмотреть сообщение
имя двумерного массива, является указателем на указатель, имя 3-х мерного массива, является указателем на указатель который указывает на указатель
Это не так. Имя двумерного массива указывает на начало памяти, в которой последовательно расположены несколько одномерных массивов, т.е. для компилятора двумерный массив является одномерным. Именно поэтому при передаче в функцию именно двумерного массива (а не указателя на указатель) необходимо указывать второе измерение - это нужно компилятору, чтобы вычислять смещение по строкам.
Аналогично для массивов любой размерности, большей 1.
Yandex
Объявления
16.02.2011, 22:21     Небольшая прога по методам доступа к элементам массива
Ответ Создать тему
Опции темы

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