Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 39

Двумерные массивы

12.03.2016, 22:48. Показов 980. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте,

есть 10 двумерных массивов размером 10x10
C#
1
2
3
4
5
6
7
8
9
10
int[,] tab1 = new int[10, 10];
int[,] tab2 = new int[10, 10];
int[,] tab3 = new int[10, 10];
int[,] tab4 = new int[10, 10];
int[,] tab5 = new int[10, 10];
int[,] tab6 = new int[10, 10];
int[,] tab7 = new int[10, 10];
int[,] tab8 = new int[10, 10];
int[,] tab9 = new int[10, 10];
int[,] tab10 = new int[10, 10];
Моя задача - для каждого элемента в этих десяти массивах, посчитать сумму элементов, которые:
1. его обрамляют в этом же массиве, то есть для tab2[i,j] посчитать сумму tab2[i+1,j]+tab2[i-1,j]+tab2[i,j+1],tab2[i,j-1];

это я сделал
C#
1
2
3
4
5
6
7
8
              for (int i = 1; i < 10-1; i++)
                {
                    for (int j = 1; j < 10-1; j++)
                    {
                        tab2[i, j] = (tab2[i - 1, j] + tab2[i + 1, j] + tab2[i, j - 1] + tab2[i, j + 1]);
 
                    }
                }
2. Для каждого массива, например, для tab2[i,j] найти сумму пунктов соседних таблиц (tab1,tab3) с таким же положением по i,j (то есть найти tab1[i,j] и tab3[i,j]);

вот не знаю как сделать это в цикле, чтобы вручную, не писать, что если это tab2, то брать нужно от tab1 и tab3 и так далее. хотел бы узнать, как можно это сделать автоматически.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2016, 22:48
Ответы с готовыми решениями:

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил &quot;Запрещено создавать темы с множеством...

Двумерные массивы
Дан двумерный массив целых чисел размерностью NxN. Найти сумму его элементов. Помогите решить, пожалуйста

Двумерные массивы
Задание дано на рисунке. Помогите выполнить данное задание Спасибо!

6
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
12.03.2016, 23:07
nokiago, сделайте 3хмерный массив да и все.
0
12.03.2016, 23:40

Не по теме:

забавно, первый раз такое вижу: j < 10-1, а не проще сразу 9 написать?

0
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 39
13.03.2016, 00:46  [ТС]
Ну правильно вы заметили, я и хочу найти соседов элемента как бы в "кубе", но поскольку трехмерные массивы я никогда не писал, поэтому и разбил куб на отдельные плоскости в виде двухмерных массивов.

Можете помочь написать для трехмерного как это будет выглядеть?

Добавлено через 58 секунд
там было width-1, но я 10-1 поставил, чтобы в путаницу никого не впутывать.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
13.03.2016, 01:47
nokiago, я задачу не понимаю чтобы что-то разумное написать.
Цитата Сообщение от nokiago Посмотреть сообщение
2. Для каждого массива, например, для tab2[i,j] найти сумму пунктов соседних таблиц (tab1,tab3) с таким же положением по i,j (то есть найти tab1[i,j] и tab3[i,j]);
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication76
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,,] arr = new int[3, 2, 2]
            {
                {{ 11,22 },
                { 33,44 }},
                {{55,66 },
                {77,88},},
                {{99,1 },
                {2,3 },}
            };
            var result = GetNeighborsSumm(1, arr);
            for (int i = 0; i < result.GetLength(1); i++) {
                for (int j = 0; j < result.GetLength(2); j++)
                    Console.Write(result[i, j].ToString() + " ");
                Console.WriteLine();
            }
            Console.Read();
 
        }
        static int[,] GetNeighborsSumm(int index, int[,,]arr)
        {
            if (index < 1 || index == arr.GetLength(0) - 1 || arr.GetLength(0) < 3) throw new ArgumentException("Неверные парметры");
            int[,] summ = new int[arr.GetLength(1), arr.GetLength(2)];
            for (int j = 0; j < arr.GetLength(1); j++)
            {
                for (int k = 0; k < arr.GetLength(2); k++)
                {
                    summ[j,k] = arr[index - 1, j, k] + arr[index + 1, j, k];
                }
            }
            return summ;
        }
    }
}
Это так понимать?
1
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 39
13.03.2016, 02:39  [ТС]
EvilFromHell, спасибо,
в функции
C#
1
2
3
4
5
for (int i = 0; i < result.GetLength(1); i++) {
                for (int j = 0; j < result.GetLength(2); j++)
                    Console.Write(result[i, j].ToString() + " ");
                Console.WriteLine();
            }
выводит Индекс находился вне границ массива.
если for (int j = 0; j < result.GetLength(2); j++) заменить на 1, то исключение пропадает.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
13.03.2016, 02:51
nokiago, там 0 и 1 должно быть. Я попутал немножко.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2016, 02:51
Помогаю со студенческими работами здесь

Двумерные массивы
Помогите расшифровать отрывок кода int t, i; int table = new int; for (t = 0; t &lt; 3; ++t) { for (i = 0; i &lt; 4; ++i) { ...

Двумерные массивы
Дан двумерный массив, например 1-2-3 4-5-6 ...

Двумерные массивы
Создать случайную матрицу размера M×N. В каждой ее строке найти количество элементов, больших среднего арифметического всех элементов...

Преобразовать матрицу так, чтобы все элементы, расположенные ниже главной диагонали, были уменьшены вдвое ...
День добрый. Помогите решить. Преобразовать матрицу A так, чтобы все элементы, расположенные ниже главной диагонали, были уменьшены...

Двумерные массивы (C# windows.forms)
Составить программу для ввода натурального числа k и матрицы A n*m . Требуется из матрицы A сформировать матрицу B k*m , включив в нее k...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru