Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2010, 17:06   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Восклицание DataGridView

Здравствуйте у меня такая задача дана квадратная матрица А
полуть следующее выражение 1.5*(А+А*) где А* транспонированная
я все вроде бы сделал но не получается с dataGridView пишит ошибку
выход индекса за предел массива вот мой код что я написал__
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        int K;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)//Заполнение------------------------------------------------
        {

            dataGridView1.RowCount = (int)numericUpDown1.Value;
            dataGridView1.ColumnCount = (int)numericUpDown1.Value;
            //if (dataGridView1.ColumnCount == '0'&&dataGridView1.RowCount=='0')
            if (dataGridView1.ColumnCount == '0' && dataGridView1.RowCount == '0')
                MessageBox.Show("Порядок Матрицы не задан");            

            int K;
            Random A = new Random();
            K = (int)numericUpDown1.Value;
            for (int i = 0; i < K; i++)
                for (int j = 0; j < K;j++ )
                {
                    dataGridView1[i,j].Value = A.Next(-100,100);

                }            
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)//РЕВЕРС-------------------------------------------
        {
            int N;
            double p=1.5;
            int[,] t = new int[K, K];
            int[,] t1 = new int[K, K];
            N = (int)numericUpDown1.Value;
            for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++ )
                {
                    
                    t[j, i] = Convert.ToInt32(dataGridView1[j, N - i - 1].Value);//revers
                   
                }
            for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                {

                    t1[i,j] = Convert.ToInt32(dataGridView1[i,j].Value);//original mass

                }
            for (int i = 0; i < N; i++)//operation mass
                for (int j = 0; j < N; j++)
                {

                       t[i,j]+= t1[i,j];
                       //t[i * p, j * p];
                    
                }
           
          
           
          
            
        }

        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
Alex_sim вне форума Ответить с цитированием
Старый 04.05.2010, 19:42   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Код:
 private void button1_Click(object sender, EventArgs e)//Заполнение------------------------------------------------
        {

            dataGridView1.RowCount = (int)numericUpDown1.Value;
            dataGridView1.ColumnCount = (int)numericUpDown1.Value;
            //if (dataGridView1.ColumnCount == '0'&&dataGridView1.RowCount=='0')
            if (dataGridView1.ColumnCount == '0' && dataGridView1.RowCount == '0')
                MessageBox.Show("Порядок Матрицы не задан");            

            int K;//вот ето удали
            Random A = new Random();
            K = (int)numericUpDown1.Value;
            for (int i = 0; i < K; i++)
                for (int j = 0; j < K;j++ )
                {
                    dataGridView1[i,j].Value = A.Next(-100,100);

                }            
        }
Cpluser вне форума Ответить с цитированием
Старый 05.05.2010, 20:10   #3
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

А можно ли то что я написал оптимальнее сделать ?
Alex_sim вне форума Ответить с цитированием
Старый 08.05.2010, 21:16   #4
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

а что не так? медленно работает что ли?
for (int i = 0; i < K; i++)
for (int j = 0; j < K;j++ )
{
dataGridView1[i,j].Value = A.Next(-100,100);

}
поробуй так сделать: dataGridView1[i,j].Value = Convert.ToString(A.Next(-100,100)); - может поэтому у тебя ошибка
Dimarik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
datagridview ttwork Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 4 06.01.2012 06:28
DataGridView Dimarik Общие вопросы .NET 2 03.05.2010 15:55
C#, datagridview Studento4ka Помощь студентам 0 21.11.2009 13:34
DataGridView bondik Общие вопросы .NET 2 13.05.2009 19:42