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

Описать процедуру ArrayToMatrCol(A, K, M, N, B), формирующую по вещественному массиву A размера K матрицу B размера M х N

12.01.2013, 06:33. Показов 2755. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Помоги с задачкой пожалуйста, если вам не сложно..
Описать процедуру ArrayToMatrCol(A, K, M, N, B), формирующую по вещественному массиву A размера K матрицу B размера M х N (матрица заполняется элементами массива A по столбцам). «Лишние» элементы массива игнорируются; если элементов массива недостаточно, то оставшиеся элементы матрицы полагаются равными 0. Двумерный массив B является выходным параметром. С помощью этой процедуры на основе данного массива A размера K и целых чисел M и N сформировать матрицу B размера M х N.
Очень на вас надеюсь..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2013, 06:33
Ответы с готовыми решениями:

Описать метод - процедуру Split1(A, na, B, nb, C, nc), формирующую по вещественному массиву A
9.Описать метод - процедуру Split1(A, na, B, nb, C, nc), формирующую по вещественному массиву A...

Описать процедуру, формирующую по вещественному массиву A размера K матрицу B размера M Ј N
Описать процедуру Matr(A, K, M, N, B), формирующую по вещественному массиву A размера K матрицу B...

Описать процедуру SortIndex(A, N, I), формирующую для вещественного массива A размера N индексный массив I
Прошу помощи в решении задачи. Описать процедуру SortIndex(A, N, I), формирующую для...

Описать процедуру Split2, формирующую по целочисленному массиву массив четных и массив нечетных
Описать процедуру Split2(A, NA, B, NB, C, NC), формирующую по целочисленному массиву A размера NA...

7
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
12.01.2013, 12:37 2
Задание написано не очень понятно, вот одно из решений:
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
        static void Main(string[] args)
        {
            double[] A = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            int K = 10;
            int M = 12, N = 3;
            double[,] B;
            ArrayToMatrCol(A, K, M, N, out B);
            PrintArray(B);
            Console.ReadLine();
        }
        //Искомая процедура
        static void ArrayToMatrCol(double[] a, int k, int m, int n, out double[,] b)
        {
            b = new double[m, n];
 
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                {
                    if (j > 0)
                        b[i, j] = 0;
                    else
                        b[i, j] = (k > i ? a[i] : 0);
                }
        }
        //функция выводит матрицу на экран
        static void PrintArray(double[,] array)
        {
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    Console.Write("{0,5}", array[i, j]);
                }
                Console.WriteLine();
            }
        }
1
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
12.01.2013, 13:09 3
kmaffa, у Вас не записываются числа во вторую и дальше столбцы, только в первый.

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
 static void Main(string[] args)
        {
 
            double[] arr = { 1,2,3,4,5,6,7,8,9,10};
            int N = 3, M = 3;
            double[,] B;
            ArrayToMatrCol(arr, arr.Length, M, N,out B);
            PrintArray(B);
            Console.ReadLine();
        }
        static void ArrayToMatrCol(double[] A, int K, int M, int N,out double[,] B)
        {
            B = new double[M, N];
            int j = 0;
            for (int i = 0, l=0 ; i < K; i++ , l++)
            {
                if (l == M)
                {
                    j++;
                    l = 0;
                }
                if (i >= M*N)
                    break;
                B[l, j] = A[i];
            }
        }
1
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.01.2013, 13:18 4
-=- LIsA -=-, через задницу написано задание
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
using System;
 
namespace ConsoleApplication62
{
    public class Program
    {
        private static void Main()
        {
            var input = new double[] {1, 2, 3, 4, 5, 6, 7};
            var output = ArrayToMatrCol(input, 3, 3);
            PrintArray(output);
            Console.ReadKey();
        }
 
 
        private static double[,] ArrayToMatrCol(double[] a, int m, int n)
        {
            var result = new double[m,n];
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    result[i, j] = i * m + j < a.Length ? a[i * m + j] : 0;
            return result;
        }
 
 
        private static void PrintArray<T>(T[,] array)
        {
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                    Console.Write("{0,5}", array[i, j]);
                Console.WriteLine();
            }
        }
    }
}
2
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
12.01.2013, 14:11 5
Цитата Сообщение от ITL Посмотреть сообщение
kmaffa, у Вас не записываются числа во вторую и дальше столбцы, только в первый.
Ну да, так как исходный массив одномерный, а конечный массив прямоугольный.
1
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
12.01.2013, 14:25 6
Цитата Сообщение от kmaffa Посмотреть сообщение
Ну да, так как исходный массив одномерный, а конечный массив прямоугольный.
Тогда смысла в задании нету,а написано же
(матрица заполняется элементами массива A по столбцам)
1
Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
13.01.2013, 02:18 7
Цитата Сообщение от Psilon Посмотреть сообщение
C#
26
private static void PrintArray<T>(T[,] array)
Можете, пожалуйста, объяснить эту часть <T>(T[,] array
Это так правильно передавать неявно типизированную переменную?
1
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.01.2013, 02:19 8
Dragokas, обычный обобщенный метод. Вид вызываемого метода определяется типом массива, который передается, поэтому явно может не указываться (хотя можно написать PrintArray<int>, будет то же самое). Метод выполняется, потому что в нем вызывается ToString(), который определен для всех классов.
1
13.01.2013, 02:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2013, 02:19
Помогаю со студенческими работами здесь

Сформировать квадратную матрицу размера n по заданному массиву
Требуется помощь по двумерным массивам в PascalABC. Никак не могу составить программу. Задание...

Описать процедуру Smooth(A,N), выполняющую сглаживание массива A размера N
Описать процедуру Smooth(A,N), выполняющую сглаживание массива A размера N следующим образом:...

Описать процедуру Smooth(A,N),выполняющую сглаживание вещественного массива А размера N
Описать процедуру Smooth(A,N),выполняющую сглаживание вещественного массива А размера N следующим...

Описать процедуру Sort(A, N), выполняющую сортировку по возрастанию вещественного массива A размера N
Безысходность(((не понимаю вообще как это сделать(((спасайте... Описать процедуру Sort(A, N),...


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

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