Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 13.03.2015
Сообщений: 10
1

Написать программу суммирования двух векторов

06.05.2015, 17:50. Показов 5659. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Заданы две матрицы А (4, 4) и В (4, 4). Написать программу суммирования двух векторов X и Y, где X - вектор, в котором размещены элементы столбца матрицы А с минимальным средним арифметическим значением, Y - то же для матрицы В.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2015, 17:50
Ответы с готовыми решениями:

Написать программу для объединения двух произвольных векторов в один
Задание: написать программу для объединения двух произвольных векторов в один.

Написать рекурсивную программу для определения скалярного произведения двух векторов
Напишите рекурсивную программу для определения скалярного произведения двух векторов. помогите...

Написать программу, вычисляющую скалярное произведение двух векторов произвольной размерности n.
Помогите Написать программу, вычисляющую скалярное произведение двух векторов произвольной...

Написать подпрограмму суммирования двух n-мерных массивов
Написать подпрограмму суммирования двух n-мерных массивов. Используя ее, просуммировать A и B bp...

7
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
06.05.2015, 18:00 2
Mariya2204, что такое вектор в матрице?
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
06.05.2015, 18:37 3
kypiwindy,нужно выбрать столбец в матрице, у которого наименьшая сумма элементов
0
1 / 1 / 0
Регистрация: 13.03.2015
Сообщений: 10
06.05.2015, 20:42  [ТС] 4
Заданы две матрицы А (4, 4) и В (4, 4). Написать программу суммирования двух векторов X и Y, где X - вектор, в котором размещены элементы столбца матрицы А с минимальным средним арифметическим значением, Y - то же для матрицы В.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication41
{
    class Program
    {
        public static int[] VectorSum(int[,] A, int[,] B) 
        {
            int minA = A[4, 4];
            int minB = B[4, 4];
            int rowA = 0;
            int rowB = 0;
            for (int i = 0; i < 4; ++i)
            {
                if (minA > A[i, i]) { minA = A[i, i]; rowA = i; }
                if (minB > B[i, i]) { minB = B[i, i]; rowB = i; }
            }
 
            int[] resultVector = new int[4];
            for (int i = 0; i < 4; ++i)
                resultVector[i] = A[rowA, i] + B[rowB, i];
            return resultVector;
        }
    }
}
Выдает такую ошибку:
Код
Ошибка	1	Программа "C:\Users\админ\Documents\Visual Studio 2010\Projects\ConsoleApplication41\ConsoleApplication41\obj\x86\Debug\ConsoleApplication41.exe" не содержит статического метода "Main", подходящего для точки входа	ConsoleApplication41
0
12 / 12 / 7
Регистрация: 20.04.2015
Сообщений: 29
06.05.2015, 20:59 5
Ну так создайте метод Main, программа от куда должна стартовать по Вашему?
0
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
06.05.2015, 21:09 6
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
using System;
using System.Linq;
 
class Program
{
    private static void Main()
    {
        const int min = 10, max = 45;
 
        int[] arr = { 4, 4, min, max };
        var a = arr.Generate();
        var b = arr.Generate();
 
        a.Show();
        b.Show();
 
        int index0, index1;
        var x = a.GetVector(out index0);
        var y = b.GetVector(out index1);
 
        Console.WriteLine("Index {0}", index0 + 1);
        Console.WriteLine(string.Join(" ", x));
        Console.WriteLine();
 
 
        Console.WriteLine("Index {0}", index1 + 1);
        Console.WriteLine(string.Join(" ", y));
 
        Console.WriteLine();
        var summ = x.Select((q, i) => q + y[i]);
        Console.WriteLine(string.Join(" ", summ));
 
        Console.ReadKey(true);
 
 
    }
 
}
 
static class Ex
{
    public static void Show(this int[,] matrix)
    {
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                Console.Write("{0,3}", matrix[i, j]);
            }
            Console.WriteLine();
        }
        Console.WriteLine();
    }
    public static int[,] Generate(this int[] arr)
    {
        int size0 = arr[0];
        int size1 = arr[1];
        Random rnd = new Random(DateTime.Now.Millisecond);
        var matrix = new int[size0, size1];
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                matrix[i, j] = rnd.Next(arr[2], arr[3]);
            }
        }
        return matrix;
    }
 
    public static int[] GetVector(this int[,] matrix, out int index)
    {
        var summ = new double[matrix.GetLength(1)];
 
        for (int i = 0; i < matrix.GetLength(1); i++)
        {
            for (int j = 0; j < matrix.GetLength(0); j++)
            {
                summ[i] += matrix[j, i];
            }
            summ[i] /= matrix.GetLength(0);
        }
 
        var min = summ.Min();
        index = Array.FindIndex(summ, pred => Math.Abs(pred - min) < 0.000001);
 
        var result = new int[matrix.GetLength(0)];
 
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            result[i] = matrix[i, index];
        }
        return result;
    }
 
 
 
}
0
Заблокирован
06.05.2015, 21:12 7
Лучший ответ Сообщение было отмечено Mariya2204 как решение

Решение

Mariya2204, проверяйте:
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
static void Main(string[] args)
        {
            const int n= 4;
            int[,] A = new int[n,n];
            int[,] B = new int[n, n];
            Random rand = new Random();
            for(int i=0;i<n;i++)
                for (int j = 0; j < n; j++)
                {
                    A[i, j] = rand.Next(0, 10);
                    B[i, j] = rand.Next(0, 10);
                }
            Console.WriteLine("A");
            Print(A);
            Console.WriteLine("B");
            Print(B);
            Console.WriteLine("Sum");
            Print(VectorSum(A, B));
            Console.ReadKey(true);
        }
        public static void Print(int[] vector)
        {
            for (int i = 0; i < vector.Length; i++)
                Console.Write("{0} ", vector[i]);
            Console.WriteLine();
 
        }
        public static void Print(int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                for (int j = 0; j < matrix.GetLength(1); j++)
                    Console.Write("{0} ", matrix[i, j]);
                Console.WriteLine();
            }
            Console.WriteLine();
 
        }
 
        public static int MinColumnIndex(int[,] matrix)
        {
            int index = 0;
            double average = 0;
            double temp = int.MaxValue;
            for (int i = 0; i < matrix.GetLength(1); i++)
            {
                average = 0;
                for (int j = 0; j < matrix.GetLength(0); j++)
                    average += matrix[j, i];
 
                average /= matrix.GetLength(0);
               
                if (temp > average) { temp = average; index = i; }
            }
            return index;
        }
 
        public static int[] VectorSum(int[,] A, int[,] B)
        {
            int n = A.GetLength(0);
            int[] resultVector = new int[n];
            int ind1 = MinColumnIndex(A);
            int ind2 = MinColumnIndex(B);
            Console.WriteLine("A:\t{0} cтолбец ", ind1 + 1);
            Console.WriteLine("B:\t{0} cтолбец ", ind2 + 1);
            for (int i = 0; i < n; i++)
                resultVector[i] = A[i, ind1] + B[i, ind2];
 
            return resultVector;
        }
Код
A
0 9 6 0
5 2 9 5
7 9 4 5
4 6 6 2

B
0 4 6 5
4 8 6 2
8 4 1 6
9 2 0 1

Sum
A:      4 cтолбец
B:      3 cтолбец
6 11 6 2
1
1 / 1 / 0
Регистрация: 13.03.2015
Сообщений: 10
06.05.2015, 22:02  [ТС] 8
Огромное спасибо!
0
06.05.2015, 22:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2015, 22:02
Помогаю со студенческими работами здесь

Написать программу для проверки работы процедуры ScalarProduct для вычисления скалярного произведения двух векторов
Написать программу для проверки работы процедуры ScalarProduct для вычисления скалярного...

Написать программу цикла суммирования от 0 до 5
нужно написать программу цикла суммирования от 0 до 5 0+1+2+3+4+5 sub eax, eax mov ecx, 5...

Написать программу суммирования 10 чисел
Надо написать программу получения машинного нуля!желательно в scilab! Добавлено через 9 минут...

Написать процедуру, реализующую блок суммирования содержимого двоичных разрядов двух чисел по представленной ниже схеме
Задача: Написать процедуру, реализующую блок суммирования содержимого двоичных разрядов двух...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru