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

Заполнить матрицу А(n, m) определенным образом

03.01.2013, 15:06. Показов 3431. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста заполнить матрицу А(n, m) следующим образом. Для заданных k и l элементу а[i][j] присвоить значение 1; элементам, окаймляющим его (соседним с ним по вертикали, горизонтали и диагоналям) — значение 2; элементам следующего окаймления — значение 3 и так далее до заполнения всей матрицы. Примечание. Алгоритм не изменится, если координаты элемента (несуществующего) k и l находятся за пределами матрицы.

Добавлено через 5 минут
Вот начал, а сам процесс окаймления не могу написать
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
            Console.WriteLine("Введите размерность массива");
            int n = int.Parse(Console.ReadLine());
            int m = int.Parse(Console.ReadLine());
 
            int[,] mass = new int[n, m];
 
            Console.WriteLine("Введите k - строку матрицы");
            int k = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите l - столбец матрицы");
            int l = int.Parse(Console.ReadLine());
 
            int p = 1;
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    mass[i, j] = 0;
                    mass[k, l] = p;
                    Console.Write("{0,3}", mass[i, j]);
                }
                Console.WriteLine();
            }
            Console.WriteLine("Заполнение матрицы");
 
            /*while (t < m)
            {
                for (t = 1; t <= m; t++)
                    mass[k, l+t] = t+1;
            }
 
            for (int i=0; i< mass.GetLength (0); i++)
                for (int j = 0; j<mass .GetLength (1);j++)
                    Console .WriteLine (mass [i,j]);
            Console.WriteLine();
            */
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2013, 15:06
Ответы с готовыми решениями:

Заполнить квадратную матрицу определённым образом
Размерность матрицы вводится пользователем вручную с клавиатуры. Предусмотреть проверку (!)...

Заполнить массив определенным образом
Помогите пожалуйста: Дана целочисленная матрица А (10х10). Заполнить массив А следующим образом:...

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

Преобразовать матрицу определённым образом
Дана действительная квадратная матрица порядка n. Преобразовать матрицу по правилу: строку с...

4
283 / 254 / 73
Регистрация: 17.07.2012
Сообщений: 618
03.01.2013, 15:24 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            //заплнение
            Random r = new Random();
            int[,] arr = new int[8, 8];
            for (int i = 0; i < arr.GetLength(0); i++)
                for (int j = 0; j < arr.GetLength(1); j++)
                    arr[i, j] = r.Next(-10,10);
 
            //замена символов массива
            int k = 3, l = 3;//уже введены
            for (int i = 0; i < arr.GetLength(0) ; i++)
                for (int j = 0; j < arr.GetLength(1) ; j++)
                    if( i > k-2 && i < k + 2 && j > l-2 && j < k + 2)
                    arr[i, j] = 2;
            arr[k, l] = 1;
            //вывод массива на экран
            for (int i = 0; i < arr.GetLength(0); i++, Console.WriteLine())
                for (int j = 0; j < arr.GetLength(1); j++)
                    Console.Write("{0,3} ",arr[i,j]);
            Console.ReadKey();
        }
    }
}
0
3 / 3 / 0
Регистрация: 09.12.2012
Сообщений: 39
03.01.2013, 15:39  [ТС] 3
А что он вывел то?
Первое окаменение выполнено, а дальше идут и минусы и нули, все числа в разброс

Добавлено через 3 минуты
А как дальше окаймлять?
0
283 / 254 / 73
Регистрация: 17.07.2012
Сообщений: 618
03.01.2013, 16:20 4
Вот тебе все сразу и на блюдечке) Заполнение можно начинать откуда угодно, только что бы k,l не выходили за пределы массива, я думаю вариант выхода за пределы ты уже и сам сможешь написать.
И числа в разброс , это рандомное заполнение.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            //заполнение нулями
            int[,] arr = new int[9, 9];
            for (int i = 0; i < arr.GetLength(0); i++)
                for (int j = 0; j < arr.GetLength(1); j++)
                    arr[i, j] =0;
            int k =6 , l =6;//уже введено
            int num = 2,n = 1;
            bool flag = true;//для выхода из цикла
            while (flag)
            {
                //заполнение 1,2,3 и.т.д
                for (int i = 0; i < arr.GetLength(0); i++)
                    for (int j = 0; j < arr.GetLength(1); j++)
                        if (i == k - n || i == k + n || j == l - n || j == l + n)
                            arr[i, j] = num;
                arr[k, l] = 1;
                n++;
                num++;
                //выход , если все заполнилось
                if (n == arr.GetLength(1))
                    flag = false;
            }
            //вывод массива
            for (int i = 0; i < arr.GetLength(0); i++, Console.WriteLine())
                for (int j = 0; j < arr.GetLength(1); j++)
                    Console.Write("{0,3} ",arr[i,j]);
            
            Console.ReadKey();
        } 
    }
}
1
3 / 3 / 0
Регистрация: 09.12.2012
Сообщений: 39
03.01.2013, 16:29  [ТС] 5
Спсибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2013, 16:29
Помогаю со студенческими работами здесь

Заполнить матрицу случайным образом
Помогите исправить двумерный массив, заполненный случайным образом string ss; Random b = new...

Заполнить матрицу 10×10 следующим образом
Здравствуйте снова. У меня проблема с матрицей. Мне нужно ее заполнить вот так вот, как на скрине....

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

Заполнить массив А определенным образом
1. var A:array of byte; Заполнить массив А следующим образом: 1 2 3 … 10 0 1 2 … 9...


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

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

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