1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 81
1

Массив: Сформировать вектор D, каждый элемент которого равен среднему арифметическому значений элементов строк матрицы

18.09.2019, 05:47. Показов 2197. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо выполнить заданную обработку числового двумерного массива, имеющего произвольное количество строк(N) и столбцов(M). N <= 7, M <= 5. Элементы массива должны вводиться с клавиатуры.
Сформировать вектор D, каждый элемент которого равен среднему арифметическому значений элементов строк матрицы
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2019, 05:47
Ответы с готовыми решениями:

Найти вектор B(l), каждый элемент которого равен среднему арифметическому элементов матрицы
Задана матрица A(k,l). Найти вектор B(l), каждый элемент которого равен среднему арифметическому...

Найти вектор B(l), каждый элемент которого равен среднему арифметическому элементов соответствующего столбца матрицы А
Задана матрица A(k,l). Найти вектор B(l), каждый элемент которого равен среднему арифметическому...

Получить файл, каждый элемент которого равен среднему арифметическому соответствующих элементов файлов
Помогите решить. Даны два файла с числами. Получить новый файл, каждый элемент которого равен...

Сформировать вектор, каждый элемент которого равен произведению элементов соответствуюшей строки матрицы
Кто решит задачу тому 100 р на счет... Дан массив А (n,n), сформировать В(n), каждый элемент...

10
351 / 246 / 76
Регистрация: 18.03.2016
Сообщений: 979
18.09.2019, 12:53 2
Лучший ответ Сообщение было отмечено KristinaBest как решение

Решение

KristinaBest,
C#
1
2
using System;
using System.Linq;
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
public static class Extension
    {
        static Random r = new Random();
        
        public static void FillArray(this double[,] numbers) 
        {
            for(int i = 0; i< numbers.GetLength(0); i++)
                for(int j = 0; j< numbers.GetLength(1); j++)
                    numbers[i, j] = r.Next(-150, 150)*r.NextDouble();
        }
    }
    
    public class Program
    {
        public static void Main()
        {
            double[,] numbers = new double[5,5];
            
            numbers.FillArray();
            
            var result = Enumerable.Range(0, numbers.GetLength(0))
                        .Select(i => 
                                Enumerable.Range(0, numbers.GetLength(1))
                                .Select(x => numbers[i, x])
                                .Average()
                               )
                        .ToArray();
 
            Array.ForEach(result, Console.WriteLine);
        }             
    }
1
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 81
19.09.2019, 13:59  [ТС] 3
Извините, не могли бы вы пояснить, какая функция за что отвечает и немного расписать что за что отвечает, буду признательна

Добавлено через 16 минут
jester, мне нужно чтобы элементы массива вводились вручную, извините, не могли бы вы пояснить, какая функция за что отвечает и немного расписать что за что отвечает, буду признательна
0
351 / 246 / 76
Регистрация: 18.03.2016
Сообщений: 979
19.09.2019, 15:02 4
KristinaBest,
ввод
C#
1
2
3
4
double[,] numbers = new double[5,5];
for(int i = 0; i< numbers.GetLength(0); i++)
                for(int j = 0; j< numbers.GetLength(1); j++)
                    numbers[i, j] = int.Parse(Console.ReadLine());
C#
1
2
3
4
5
6
7
8
9
var result = Enumerable.Range(0, numbers.GetLength(0)) // перебор строк
                        .Select(i => 
                                Enumerable.Range(0, numbers.GetLength(1)) // перебор ячеек строки
                                .Select(x => numbers[i, x]) //обращение к их значениям
                                .Average() //функция нахождения среднего значения (в данном случае среди всех значений к которым мы обращались через Select
                               )
                        .ToArray(); // сохранить как массив
 
            Array.ForEach(result, Console.WriteLine); //вывод массива в консоль
1
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 81
19.09.2019, 17:40  [ТС] 5
jester, что не так, подскажите, пожалуйста.
Миниатюры
Массив: Сформировать вектор D, каждый элемент которого равен среднему арифметическому значений элементов строк матрицы  
0
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 81
19.09.2019, 17:46  [ТС] 6
jester, и здесь, пожалуйста
Миниатюры
Массив: Сформировать вектор D, каждый элемент которого равен среднему арифметическому значений элементов строк матрицы  
0
351 / 246 / 76
Регистрация: 18.03.2016
Сообщений: 979
19.09.2019, 17:56 7
KristinaBest,
первое
когда метод создавал забыл убрать строку в FillArray
C#
1
double[,] numbers = new double[5,5];
второе
Строка некорректного формата
Нужно дробные числа через точку писать
0
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 81
19.09.2019, 18:22  [ТС] 8
jester, при любом вводе значение программа выдаёт эту же ошибку, как во втором скрине, не понимаю, можете скинуть как выглядит ваш тест программы?
0
351 / 246 / 76
Регистрация: 18.03.2016
Сообщений: 979
19.09.2019, 18:38 9
KristinaBest, эх(
поменять
C#
1
numbers[i, j] = int.Parse(Console.ReadLine());
на
C#
1
numbers[i, j] = double.Parse(Console.ReadLine());
0
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 81
19.09.2019, 18:52  [ТС] 10
jester, я не так ввожу?
Миниатюры
Массив: Сформировать вектор D, каждый элемент которого равен среднему арифметическому значений элементов строк матрицы  
0
351 / 246 / 76
Регистрация: 18.03.2016
Сообщений: 979
19.09.2019, 21:17 11
KristinaBest, нет, нужно писать каждый элемент в строке.

Если хотите матрицей вводить тогда так:

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
public static class Extension
    {
        public static void FillArray(this double[,] numbers)
        {
            int rowsCount = numbers.GetLength(0),
                columnsCount = numbers.GetLength(1);
 
            Console.WriteLine("Введи матрицу размером {0}X{1} значений", rowsCount, columnsCount);
 
            for (int i = 0; i < rowsCount; i++)
            {
                string[] input = Console.ReadLine() // Чтение с консоли
                                        .Replace(',', '.') // Замена запятых на точки, чтобы можно было применять оба разделителя
                                        .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // Разбивка на подстроки по пробелам
                Array.ForEach(input, Console.WriteLine);
                for (int j = 0; j < columnsCount && j < input.Length; j++)
                {
                    numbers[i, j] = double.Parse(input[j], CultureInfo.InvariantCulture);
                }
            }
        }
    }
    public class Program
    {
        public static void Main(string[] args)
        {
            int rowsCount = 5,
                columnsCount = 7;
 
            double[,] test = new double[rowsCount, columnsCount];
 
            test.FillArray();
 
            Console.WriteLine("Введённый массив:");
            for (int i = 0; i < rowsCount; i++)
            {
                for (int j = 0; j < columnsCount; j++)
                {
                    Console.Write(test[i, j] + " ");
                }
                Console.WriteLine();
            }
        }
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2019, 21:17
Помогаю со студенческими работами здесь

Сформировать новый массив по правилу: элемент равен среднему арифметическому элементов массива А с номерами от К до N
Дан массив А размера N. Сформировать новый массив В того же размера по следующему правилу: элемент...

Сформировать вектор, каждый элемент которого равен среднему арифметическому значений элементов строк матрицы
Сформировать вектор D=(d1, d2, d3,...,dk), каждый элемент которого равен среднему арифметическому...

Построить вектор В, каждый элемент которого равен среднему арифметическому положительных элементов матрицы
Здравствуйте, помогите пожалуйста с задачей. Дана матрица А(7,7). Построить вектор В , каждый...

Найти вектор B(l), каждый элемент которого равен среднему арифметическому элементов соответствующего столбца матрицы A
Задана матрица A(k,l). Найти вектор B(l), каждый элемент которого равен среднему арифметическому...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru