Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [c#] datagridview, max in datagridview 
V
    Опции темы
Integra
Дата 13.5.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 23.4.2007
Где: Омск

Репутация: нет
Всего: нет



Как в квадратной datagridview размера N  найти максимальные числа в верхнем треугольнике, полученном пересечением диагоналей. У меня не получается сделать условие, чтобы именно в этом треугольнике искал максимальное число. ( диагонали тоже входят в этот треугольник)?
PM MAIL ICQ   Вверх
archeg
Дата 13.5.2007, 17:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 9
Всего: 27



Код

for (int i=0; i<N / 2; i++)
 for (int j=0; j<N / 2; j++)
  {
     if (max < (int) dataGridView1.Rows[i].Cells[j].Value)
            max = (int) dataGridView1.Rows[i].Cells[j].Value;
  }



--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
Integra
Дата 14.5.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 23.4.2007
Где: Омск

Репутация: нет
Всего: нет



Спасибо! не успела еще проверить, т.к. срочно нужно сделать другое...

Помогите. У меня есть код нахождения минимальных элементов в квадратной матрице по строчно . Теперь мне надо искать минимальные элементы выше главной зануленной диагонали по столбцам.( в 1 и 2 столбцах- поиск мин. по всему столбцу, в ост.случаях- выше диагонали.) Как это сделать?  ниже приведен код всех действий, выполняемых при нажатии на кнопку)

 
Код

private void b1_Click(object sender, EventArgs e)
        {
            j = 0;
            matr = new double[N,N];
            bool fdiag = false; // флаг ошибки заполнения главной диагонали
            for (int i = 0; i < N; i++)
                for (j = 0; j < N; j++)
                {
                    try
                    {
                        matr[i, j] = Convert.ToDouble(dgv1.Rows[i].Cells[j].Value);
                        if ((i==j) && (matr[i, j] != 0))
                        {
                            matr[i, j] = 0;                            
                            fdiag = true;
                        }
                    }
                    catch (FormatException)
                    {
                        MessageBox.Show("Не ясно значение ячейки (" + (i+1) + "," + (j+1) + ")", "Ошибка ввода");
                        return;
                    }
                }
            bool fsym = false; // коррекция симметричности матрицы смежности
            for (int i = 0; i < N; i++)
                for (j = i+1; j < N; j++)
                    if ((matr[i, j] != matr[j, i]))
                    {
                        matr[j, i] = matr[i, j];
                        fsym = true;
                    }
            // вывод скорректированной матрицы
            for (int i = 0; i < N; i++)
                for (j = 0; j < N; j++)
                    dgv1.Rows[i].Cells[j].Value = matr[i, j];
      
            if (fdiag) MessageBox.Show("Главная диагональ была занулена", "Коррекция ввода");
            if (fsym) MessageBox.Show("Симметричность восстановлена по правой треугольной матрице", "Коррекция ввода");


            mass = new double[N, N];
            min = new double[N];
          
            for (int i = 0; i < N; i++)
                for (j = 0; j < N; j++)
                    mass[i, j] = Convert.ToDouble(dgv1.Rows[i].Cells[j].Value);
            for (int i = 0; i < N; i++)
            {
                j = 0;
                do { if (mass[i, j] > 0) min[i] = mass[i, j]; j++; }
                while ((mass[i, (j-1)] <= 0) && ((j-1) < N));
                for ( j = 0; j < N; j++)
                    if (mass[i, j] < min[i] && mass[i, j] > 0) min[i] = mass[i, j];
            }
            for ( i = 0; i < N; i++)
                for (j = 0; j < N; j++)
                    dgv2.Rows[i].Cells[j].Value = 0;
                    for (i = 0; i < N; i++)
                    {
                        for ( j = 0; j < N; j++)
                            if (mass[i, j] == min[i])
                                dgv2.Rows[i].Cells[j].Value = min[i];
                    }
                   bool sym = false; 
                    for ( i = 0; i < N; i++)
                        for ( j = i + 1; j < N; j++)
                            if ((dgv2.Rows[i].Cells[j].Value != dgv2.Rows[j].Cells[i].Value))
                            {
                                dgv2.Rows[j].Cells[i].Value = dgv2.Rows[i].Cells[j].Value;
                                sym = true;
                            }
                    for ( i = 0; i < N; i++)
                        for ( j = 0; j < N; j++)
                            dgv2.Rows[i].Cells[j].Value = dgv2.Rows[j].Cells[i].Value;

if (sym) MessageBox.Show("Симметричность восстановлена по правой треугольной матрице", "Коррекция ввода");

        }


Это сообщение отредактировал(а) Integra - 14.5.2007, 15:03
PM MAIL ICQ   Вверх
Integra
Дата 27.5.2007, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 23.4.2007
Где: Омск

Репутация: нет
Всего: нет



Я уже разобралась с данным вопросом..
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.