Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
 
Exc1te777
0 / 0 / 1
Регистрация: 18.01.2016
Сообщений: 66
#1

Работа с массивами - C#

24.01.2016, 11:48. Просмотров 377. Ответов 16
Метки нет (Все метки)

Допустим есть два массива. float [,] arr и float [,] Pts. Первый может быть любых размеров , но все значения в нём лежат в пределах от 0 до 7. А во втором массиве 2 столбца и 100 строк. Столбцы это x,y координаты точек . Так вот вопрос , возможно ли как-нибудь сделать так, чтобы значения (по очередно) из первого массива сравнивались со значениями x(1 столбца) из второго массива и при совпадении, в новый массив записывалось значение y (2 столбца второго массива) в таком же порядке как они берутся из первого массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2016, 11:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа с массивами (C#):

Работа с массивами - C#
В колл-центре ведётся журнал исходящих звонков. Каждому звонку соответствует запись вида <Дата и время начала интервью>...

Массивы. Работа с массивами - C#
Доброго времени суток форумчане. Назрел вопрос. У меня берутся данные из Excel в datagridview. После успешной обработки данных в...

.NET 4.x Работа с массивами и конструктором - C#
Задание: В программе должно быть не менее двух классов связанных отношением наследования. Наличии конструктора обязательно Если все...

Работа с массивами в Windows Forms - C#
Задача следующая. Создать приложение которое предлагает пользователю задать размер линейного массива, заполняет автоматически этот масив...

Работа с одномерными массивами и матрицами - C#
Написать приложение, реализующее работу с массивами: а) Определить количество положительных, отрицательных и нулевых элементов одномерного...

Работа с массивами используя форму - C#
замечание. Задачи из данного пункта решить двумя способами, используя одномерный массив, а затем двумерный. Размерность массива вводится с...

16
Sanya_sa
Модератор
675 / 665 / 173
Регистрация: 03.02.2015
Сообщений: 4,159
Записей в блоге: 8
Завершенные тесты: 3
24.01.2016, 12:06 #2
Да возможно.
0
Exc1te777
0 / 0 / 1
Регистрация: 18.01.2016
Сообщений: 66
24.01.2016, 12:15  [ТС] #3
а по подробнее как это сделать ?)
0
Sanya_sa
Модератор
675 / 665 / 173
Регистрация: 03.02.2015
Сообщений: 4,159
Записей в блоге: 8
Завершенные тесты: 3
24.01.2016, 12:19 #4
Цитата Сообщение от Exc1te777 Посмотреть сообщение
а по подробнее как это сделать ?)
создаете третий массив например res
перебираете элементы имеющихся, сравнивате используя if и если все нормально записываете в res.

В чем конкретно то загвоздка?
1
Exc1te777
0 / 0 / 1
Регистрация: 18.01.2016
Сообщений: 66
24.01.2016, 12:55  [ТС] #5
Плохо знаю c#. Можете привести часть когда именно для сравнения ?

Добавлено через 16 минут
Не могу понять как сделать , чтобы именно 1 весь массив сравнивался со столбцом 2 массива, а потом выводил только 2 столбец 2 массива.

Добавлено через 15 минут
То есть что то типо этого. А какое действие писать после условия ?
C#
1
2
3
4
5
6
7
8
9
10
11
float[,] qwer;
            for (var j = 1; j < arr.Length; j++)
            {
                for (var i = 1; i < arr.Length; i++)
                {
                    if (arr[i,j] > Pts[i,2]) 
                    {
                        
                    }
                }
            }
0
maxillion
273 / 183 / 38
Регистрация: 25.12.2012
Сообщений: 616
24.01.2016, 13:04 #6
Exc1te777, а почему перебор с 1 ?
0
Exc1te777
0 / 0 / 1
Регистрация: 18.01.2016
Сообщений: 66
24.01.2016, 13:07  [ТС] #7
maxillion, ну типо с первого элемента массива? ну можно и 0 поставить
0
maxillion
273 / 183 / 38
Регистрация: 25.12.2012
Сообщений: 616
24.01.2016, 13:08 #8
arr.Length это количество всех элементов в массиве, для одного измерения нужно писать arr.GetLength(измерение).
0
Exc1te777
0 / 0 / 1
Регистрация: 18.01.2016
Сообщений: 66
24.01.2016, 13:13  [ТС] #9
maxillion,
Вот так ?
C#
1
2
3
4
5
6
7
8
9
10
11
float[,] qwer;
            for (var j = 0; j < arr.GetLength(j); j++)
            {
                for (var i = 0; i < arr.GetLength(i); i++)
                {
                    if (arr[i,j] > Pts[i,2]) 
                    {
                        
                    }
                }
            }
0
maxillion
273 / 183 / 38
Регистрация: 25.12.2012
Сообщений: 616
24.01.2016, 13:14 #10
Exc1te777,
C#
1
2
for (int i = 0; i < arr.GetLength(1); i++)            
    if (arr[0, i] == ptr[0, i])
1
Exc1te777
0 / 0 / 1
Регистрация: 18.01.2016
Сообщений: 66
24.01.2016, 13:22  [ТС] #11
maxillion, а что за действие писать после условия ?
0
Sanya_sa
Модератор
675 / 665 / 173
Регистрация: 03.02.2015
Сообщений: 4,159
Записей в блоге: 8
Завершенные тесты: 3
24.01.2016, 13:25 #12
C#
1
2
3
4
5
6
7
8
9
            // вот такой вариант более громоздкий но он универсальнее и быстрее 
            // например нужно изменить число элементов и что бы не метаться по всему коду
            // просто изменяем например Xqwer и всё
            // так же этот код по идеи должен работать шустрее т.к. не будут вызываться GetLength
            // ведь нам известны размерности
 
            int Xqwer = 2; // например
            int Yqwer = 5; // например
            float[,] arr= new float[Xqwer, Yqwer ];
0
maxillion
273 / 183 / 38
Регистрация: 25.12.2012
Сообщений: 616
24.01.2016, 13:27 #13
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
как то так наверно
C#
1
2
3
4
5
6
7
8
9
var ptr = new float[2, 100];
var arr = new float[3, 50];
var L = new List<float>();
            
for (int i = 0; i < arr.GetLength(1); i++)           
    if (arr[0, i] == ptr[0, i])
        L.Add(ptr[1, i]);
 
var res = L.ToArray();
1
Exc1te777
0 / 0 / 1
Регистрация: 18.01.2016
Сообщений: 66
31.01.2016, 00:39  [ТС] #14
maxillion, в моём случае допустим так :
Но почему он выводит только одно значение ? ну т.е. я так понял он один раз сравнивает , а мне нужно все элементы массива arr сравнить с одним столбцом массива Pts. И arr может быть намного больше Pts , в таком случае всё должно повторится , пока алгоритм сравнения не пройдёт по всем элементам.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void button3_Click(object sender, EventArgs e)
        {    
            progressBar1.Value = 0;
            for (int i = 0; i < Pts.GetLength(1); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    if (arr[i,j] == Pts[i, 0])   
                    textBox9.Text = textBox9.Text + "; " + Convert.ToString(Pts[i, 1]);          // НОВАЯ СТРОКА
                    progressBar1.Value = i++;
                }
            }
        }
0
Даценд
Модератор
Эксперт .NET
3961 / 3801 / 1914
Регистрация: 20.04.2015
Сообщений: 6,887
31.01.2016, 00:50 #15
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void button3_Click(object sender, EventArgs e)
{
    progressBar1.Value = 0;
    for (int i = 0; i < arr.GetLength(0); i++)
    {
        for (int j = 0; j < arr.GetLength(1); j++)
        {
            for (int k = 0; k < Pts.GetLength(0); k++)
            {
                if (arr[i, j] == Pts[k, 0])
                    textBox9.Text = textBox9.Text + "; " + Convert.ToString(Pts[k, 1]);          // НОВАЯ СТРОКА
                progressBar1.Value = i++;
            }
        }
    }
}
1
31.01.2016, 00:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2016, 00:50
Привет! Вот еще темы с ответами:

Работа с массивами виндовс приложение - C#
Даны массивы Q и W состоящие из n элементов. Постройте массив G, каждый элемент которого равен сумме соответвующих элементов массива Q и W.

Работа с массивами - C#
Доброго времени суток. Вот чтото поставила меня в ступор задачка: Дан массив ненулевых целых чисел размера n. Проверить чередуются ли...

работа с массивами - C#
в одномерном массиве состоящем из n вещественных элементов вычислить 1) произведения элементов массива с чётными номерами 2) сумма...

Работа с массивами - C#
Будь-ласка (потрібна допомога)


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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