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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 12:39   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Восклицание int mass to double

Здравствуйте не получается умножить массив типа инт на число типа double подскажите как это сделать
Код:
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;
//using System.Array;

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("Порядок Матрицы не задан");            

            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 dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
        {

        }

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

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

               }
                        
            for (int i = 0; i < K; i++)//сумма
                for (int j = 0; j < K; j++)
                {

                   t2[i,j] = t[i, j] + t1[i , j];                            
                   

                }
            for (int i = 0; i < K; i++)//произведение
                for (int j = 0; j < K; j++)
                {

                    t2[i * p, j * p];//в этом месте не выходит подскажите как


                }
            for (int i = 0; i < K; i++)//вывод массива
                for (int j = 0; j < K; j++)
                {

                    textBox1.Text += Convert.ToString(t2[i, j]);
                    

                }
          
           
          
            
        }

        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Clear();           
        }

        private void label1_Click_1(object sender, EventArgs e)
        {

        }
    }
}
________for (int i = 0; i < K; i++)//произведение
for (int j = 0; j < K; j++)
{

t2[i * p, j * p];//в этом месте не выходит подскажите как


}
_________
Alex_sim вне форума Ответить с цитированием
Старый 08.05.2010, 12:42   #2
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

через это не полусается может как то по другому можно
"Convert.ToDouble"
Alex_sim вне форума Ответить с цитированием
Старый 08.05.2010, 12:43   #3
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Попробуй t2[i * Convert.ToInt32(p),j*Convert.ToInt3 2(p)];
Cpluser вне форума Ответить с цитированием
Старый 08.05.2010, 12:54   #4
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

так тогда потеряется десятичное число
мне нужно умножить массив на десятичное число например 1.5;
Alex_sim вне форума Ответить с цитированием
Старый 08.05.2010, 12:58   #5
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Не понял чуть вы хотите умножите все елементы массива на число 1.5 или хотите получить елемент например t2[4.5,4.5]?)
Cpluser вне форума Ответить с цитированием
Старый 08.05.2010, 13:01   #6
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Умножить все элементы на 1.5
Alex_sim вне форума Ответить с цитированием
Старый 08.05.2010, 13:04   #7
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

И подскажи у меня не выходит вывести результат через dataGridView а то что бы проверить выполняется ли операции с массивом приходится через текстбокс выводить .
Alex_sim вне форума Ответить с цитированием
Старый 08.05.2010, 13:14   #8
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Умножить все элементы на 1.5 нада тогда массив делать double.

И подскажи у меня не выходит вывести результат через dataGridView а то что бы проверить выполняется ли операции с массивом приходится через текстбокс выводить .
Код:
 int K = 5;
            double p = 1.5;
            int[,] t2 = new int[K, K];

            for (int i = 0; i < K; i++)
            {
                dataGridView1.Columns.Add(i.ToString(), i.ToString());//добавляем столбец
                dataGridView1.Rows.Add();//добавляем строку
                for (int j = 0; j < K; j++)
                {
                    t2[i, j] = i;
                }
            }

            for (int i = 0; i < K; i++)
            {
                for (int j = 0; j < K; j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = t2[i, j];
                }
            }
Вот для массива
Код:
            int K = 5;
            double p = 1.5;
            double[,] t2 = new double[K, K];
            Random a = new Random();
            for (int i = 0; i < K; i++)
            {
                for (int j = 0; j < K; j++)
                {
                    t2[i, j]=a.Next(-100,100);
                    t2[i, j] *= p;
                }
            }

Последний раз редактировалось Cpluser; 08.05.2010 в 13:32.
Cpluser вне форума Ответить с цитированием
Старый 08.05.2010, 13:24   #9
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

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

не перевести, а изначально работать с массивом типа double.
так как если мы умножим int на double то получим double. а если это число записать в int, то произойдёт потеря дробной части.
Dimarik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
E2015 Ambiguity between 'std::log(double)' and 'std::log(long double)' Namolem Помощь студентам 3 02.04.2011 20:22
long double vs. double VoidMan Общие вопросы C/C++ 1 21.09.2009 18:45
округливание в C#( double to int) Natok Помощь студентам 1 25.05.2009 22:58
преобразование int в double Си++ t1empo Помощь студентам 11 27.04.2009 19:31
Mass Effect не работает. Ошибка при запуске. Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 05.08.2008 17:14