Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.08.2010
Сообщений: 4
1

Описание кода )

09.03.2011, 23:48. Просмотров 1106. Ответов 1
Метки нет (Все метки)

Есть код ,реализовывает класс квадратной матрицы заданного пользователем размера .Реализовываются методы позволяющие производить операции над матрицами.Поверхностно вроде ясно ,а по шагово разобраться не могу ?? Кто сможет напишите реализацию(подробно) что куда и как )спасибо !
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
{
    class Matrix
    {
        private int N;
        private double[,] mas;
        public Matrix(int N_cons)
        {
            N = N_cons;
            mas = new double[N_cons,N_cons];
            for (int i=0; i<N_cons; i++)
                for(int j=0; j<N_cons; j++)
                    mas[i,j]=0;
        }
        public void error_exit()
        {
            System.Console.Write("Error input data. Try agan. Program will switch of now ...");
            System.Console.ReadLine();
            System.Environment.Exit(0);
         
 
        }
        public void Fill_Matrix()
        {
            System.Console.WriteLine("Filling Matrix...");
            for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                {
                    try
                    {
                        System.Console.Write("Insert " + i + ", " + j + " element: ");
                        mas[i, j] = double.Parse(System.Console.ReadLine());
                    }
                    catch
                    {
                        error_exit();
                    }
               }
        }
        public void Get_Matrix()
        {
            System.Console.WriteLine("Matrix is...");
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                    System.Console.Write("\t" + mas[i, j]);
                System.Console.Write("\n");
            }
        }
        public Matrix Mul_Matrix(Matrix snd_m)
        {
                Matrix m_res = new Matrix(this.N);
                for (int i = 0; i < N; i++)
                    for (int j = 0; j < N; j++)
                        for (int k = 0; k < N; k++)
                            m_res.mas[i, j] += this.mas[i, k] * snd_m.mas[k, j];
                return m_res;
        }
        public int GetDimSum_Matrix(ref double SumEl)
        {
            SumEl = 0;
            for (int i = 0; i < N; i++)
                for(int j=0; j<N; j++)
                    SumEl += mas[i, j];
            return N;
        }
        public void GetMulDiag_Matrix(ref double in_Mul1, ref double in_Mul2)
        {
            in_Mul1 = 1;
            in_Mul2 = 1;
            for (int i = 0; i < N; i++)
            {
                in_Mul1 *= mas[i, i];
                in_Mul2 *= mas[i, (N - i - 1)];
            }
        }
    }
    class Application
    {
 
 
        public static void error_exit()
        {
            System.Console.Write("Error input data. Try agan. Program will switch of now ...");
            System.Console.ReadLine();
            System.Environment.Exit(0);
        }
        
        public static void Main()
        {
             int popo = 0;
            double Sum1=0, Sum2=0;
            double mul1_1=0, mul1_2=0, mul2_1=0, mul2_2=0;
            int ans=0;
            bool ex=false;
 
            try
            {
                System.Console.WriteLine("Insert the dimension of First Matrix: ");
                int popo1 = int.Parse(System.Console.ReadLine());
                popo = popo1;
            }
            catch
            {
                error_exit();
            }
            Matrix m1 = new Matrix(popo);
 
            try
            {
                System.Console.WriteLine("Insert the dimension of Second Matrix: ");
                int popo1 = int.Parse(System.Console.ReadLine());
                popo = popo1;
            }
            catch
            {
                error_exit();
            }
            Matrix m2 = new Matrix(int.Parse(System.Console.ReadLine()));
            m1.Fill_Matrix();
            m2.Fill_Matrix();
           
            while (!ex)
            {
                System.Console.WriteLine("Choose operation:\n1 -Multiply\n2 -Get sum of elem. and dimension\n3 -Get mult. on all diagonales\n4 -Exit\n");
                try
                {
                    int ans1 = int.Parse(System.Console.ReadLine());
                    ans = ans1;
                }
                catch
                {
                    error_exit();
                }
                    switch (ans)
                {
                    case (1):
                        {
                            if (m1.GetDimSum_Matrix(ref Sum1) == m2.GetDimSum_Matrix(ref Sum2))
                            {
                                System.DateTime t1 = System.DateTime.Now;
                                m1.Mul_Matrix(m2).Get_Matrix();
                                System.DateTime t2 = System.DateTime.Now;
                                System.TimeSpan tres = t2 - t1;
                                System.Console.WriteLine("Time : " + tres.TotalMilliseconds);
                            }
                            else
                                System.Console.WriteLine("Dimensions must be equal!");
                            continue;
                        }
                        break;
                    case (2):
                        {
                            System.DateTime t1, t2;
                            System.TimeSpan tres;
                            int ans2=0;
                            System.Console.WriteLine("Which Matrix:\n\t1 -First\n\t2 -Second\n");
                            try
                            {
                                int ans21 = int.Parse(System.Console.ReadLine());
                                ans2 = ans21;
                            }
                            catch
                            {
                                error_exit();
                            }
                                switch(ans2)
                            {
                                case (1):
                                    {
                                        t1 = System.DateTime.Now;
                                        System.Console.WriteLine("Matrix with dim = " + m1.GetDimSum_Matrix(ref Sum1) + " has sum = " + Sum1+"\n");
                                        t2 = System.DateTime.Now;
                                        tres = t2 - t1;
                                        System.Console.WriteLine("Time : " + tres.TotalMilliseconds);
                                    }
                                    break;
                                case (2):
                                    {
                                        t1 = System.DateTime.Now;
                                        System.Console.WriteLine("Matrix with dim = " + m2.GetDimSum_Matrix(ref Sum2) + " has sum = " + Sum2+"\n");
                                        t2 = System.DateTime.Now;
                                        tres = t2 - t1;
                                        System.Console.WriteLine("Time : " + tres.TotalMilliseconds);
                                    }
                                    break;
                                default:
                                    {
                                        System.Console.WriteLine("Uknown matrix.\n");
                                    }
                                    break;
                            }
                            continue;
                        }
                        break;
                    case (3):
                        {
                            System.DateTime t1, t2;
                            System.TimeSpan tres;
                            int ans3=0;
                            System.Console.WriteLine("Which Matrix:\n\t1 -First\n\t2 -Second\n");
                            try
                            {
                                int ans31 = int.Parse(System.Console.ReadLine());
                                ans3 = ans31;
                            }
                            catch
                            {
                                error_exit();
                            }
                                switch (ans3)
                            {
                                case (1):
                                    {
                                        t1 = System.DateTime.Now;
                                        m1.GetMulDiag_Matrix(ref mul1_1, ref mul1_2);
                                        System.Console.WriteLine("Multiply of elem. on main diag. is " + mul1_1 + " on alternative is " + mul1_2 + ".\n");
                                        t2 = System.DateTime.Now;
                                        tres = t2 - t1;
                                        System.Console.WriteLine("Time : " + tres.TotalMilliseconds);
                                    }
                                    break;
                                case (2):
                                    {
                                        t1 = System.DateTime.Now;
                                        m2.GetMulDiag_Matrix(ref mul2_1, ref mul2_2);
                                        System.Console.WriteLine("Multiply of elem. on main diag. is " + mul2_1 + " on alternative is " + mul2_2 + ".\n");
                                        t2 = System.DateTime.Now;
                                        tres = t2 - t1;
                                        System.Console.WriteLine("Time : " + tres.TotalMilliseconds);
                                    }
                                    break;
                                default:
                                    {
                                        System.Console.WriteLine("Uknown matrix.\n");
                                    }
                                    break;
                            }
                            continue;
                        }
                        break;
                    case (4):
                        {
                            ex = true;
                        }
                        break;
                    default:
                        {
                            System.Console.WriteLine("Unknown operation.\n");
                        }
                        break;
                }
            }
            System.Console.Read();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2011, 23:48
Ответы с готовыми решениями:

Описание программного кода
Ребята, выручайте, необходимо описать эту программу(желательно каждую в ней строку) using...

Описание кода класса EightNumber
Сам код using System; namespace ConsoleApplication1 { class Program { static void...

Дать описание фрагменту кода
Дать описание фрагменту кода: string ports = SerialPort.GetPortNames(); ...

Дать описание фрагменту кода
#region Constructor / Deconstructor public modbus() { } ...

1
121 / 121 / 16
Регистрация: 18.09.2010
Сообщений: 212
10.03.2011, 01:44 2
Цитата Сообщение от G0g1puL Посмотреть сообщение
Есть код ,реализовывает класс квадратной матрицы заданного пользователем размера .Реализовываются методы позволяющие производить операции над матрицами.Поверхностно вроде ясно ,а по шагово разобраться не могу ??
Реализация безобразная и с ошибками.. Если хотя бы слегка пройтись напильником будет что-то вроде этого:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using System;
 
    class Matrix//класс Матрица
    {
        private int N;//размер
        private double[,] mas;
        public Matrix(int N_cons)//конструктор
        {
            N = N_cons;
            mas = new double[N_cons,N_cons];
            for (int i=0; i<N_cons; i++)
                for(int j=0; j<N_cons; j++)
                    mas[i,j]=0;
        }
        public void Fill_Matrix()//ввод матрицы пользователем
        {
            System.Console.WriteLine("Filling Matrix...");
            for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                {
                    System.Console.Write("Insert {0} x {1} element: ", i + 1, j + 1);
                    mas[i, j] = double.Parse(System.Console.ReadLine());
                }
        }
        public void Get_Matrix()//вывести матрицу на экран
        {
            System.Console.WriteLine("Matrix is...");
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                    System.Console.Write("\t" + mas[i, j]);
                System.Console.Write("\n");
            }
        }
        public Matrix Mul_Matrix(Matrix snd_m)//умножение матриц
        {
                Matrix m_res = new Matrix(this.N);
                for (int i = 0; i < N; i++)
                    for (int j = 0; j < N; j++)
                        for (int k = 0; k < N; k++)
                            m_res.mas[i, j] += this.mas[i, k] * snd_m.mas[k, j];
                return m_res;
        }
        public double GetDimSum_Matrix()//получить сумму элементов матрицы
        {
            double SumEl = 0;
            for (int i = 0; i < N; i++)
                for(int j=0; j<N; j++)
                    SumEl += mas[i, j];
            return SumEl;
        }
        public void GetMulDiag_Matrix(ref double in_Mul1, ref double in_Mul2)//получить произведения диагоналей матрицы
        {
            for (int i = 0; i < N; i++)
            {
                in_Mul1 *= mas[i, i];
                in_Mul2 *= mas[i, (N - i - 1)];
            }
        }
    }
    class Application//класс содержащий Main()
    {
        public static void Main()
        {
            int choice;
            bool exit = false;
            Console.WriteLine("**Fun with matrix**");
            while (!exit)//пока пользователь не выберет выход
            {
                try
                {
                    int size;
                    Console.WriteLine("Make a choice:\n1 - Multiply two matrices\n2 - Get sum of elements in matrix\n3 - Multiply matrix diag\n4 - Exit");
                    choice = Convert.ToInt32(Console.ReadLine());
                    switch (choice)//исследуем выбор пользователя
                    {
                        case 1://умножение матриц
                            Console.Write("Input size of matrices: ");
                            size = Convert.ToInt32(Console.ReadLine());
                            Matrix m1 = new Matrix(size);
                            Matrix m2 = new Matrix(size);
                            Matrix result;
                            m1.Fill_Matrix();
                            m2.Fill_Matrix();
                            result = m1.Mul_Matrix(m2);
                            result.Get_Matrix();
                            Console.WriteLine("Operation finished . .");
                            break;
                        case 2://сумма элементов матрицы
                            double sum;
                            size = 0;
                            Console.Write("Input size of matrix: ");
                            size = Convert.ToInt32(Console.ReadLine());
                            Matrix m3 = new Matrix(size);
                            m3.Fill_Matrix();
                            sum = m3.GetDimSum_Matrix();
                            Console.WriteLine("Sum of elements is: {0}", sum);
                            Console.WriteLine("Operation finished . .");
                            break;
                        case 3://произведения диагоналей матрицы
                            double d1 = 1, d2 = 1;
                            size = 0;
                            Console.Write("Input size of matrix: ");
                            size = Convert.ToInt32(Console.ReadLine());
                            Matrix m4 = new Matrix(size);
                            m4.Fill_Matrix();
                            m4.GetMulDiag_Matrix(ref d1, ref d2);
                            Console.WriteLine("Result is: first diag - {0} ; second diag - {1}", d1, d2);
                            Console.WriteLine("Operation finished . .");
                            break;
                        case 4://выход
                            exit=true;
                            break;
                        default://выводим заново меню при некорректном выборе
                            break;
                    }
                }
                catch (Exception e)//обработка исключений
                {
                    Console.WriteLine(e.Message);
                    Console.ReadLine();
                    System.Environment.Exit(1);
                }
            }
            Console.WriteLine("Finished . .");//завершение работы
            Console.ReadLine();
        }
    }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2011, 01:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать листинг и описание кода?
простейшее консольное прога на дискриминант. как делать ЛИСТИНГ и описание кода? подскажите...

Составить описание класса для представления даты, разбор кода
Составить описание класса для представления даты. Предусмотреть возможности допустимости вводимых...

Описание кода
Нужно подробное описание программы. Как писалось что делалось и какой код за что отвечает.

Описание кода
Здравствуйте! Можете описать/комментировать код? procedure Tserver.FormCreate(Sender: TObject);...

Описание кода
Помогите пожалйста с описание строк кода.

Шо цэ? Описание кода
Код не большой. Суть в том, что он делает? Сам глазами пробежался, дак ничего вредоносного, но...


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

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

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