Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 6

Обход квадратной матрицы по спирали

08.04.2020, 23:26. Показов 3567. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте, С#
Требуется совершить обход квадратной матрицы по спирали. Заполнение происходит с единицы из левого верхнего угла и заканчивается в центре числом N^2, N - порядок матрицы, нужно для матрицы 10х10. Делать с dataGridView. Буду рад любой помощи
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2020, 23:26
Ответы с готовыми решениями:

Обход квадратной матрицы по спирали
Требуется совершить обход квадратной матрицы по спирали в dataGridView так как показано на рисунке: заполнение происходит с единицы из...

Обход матрицы "по спирали"
Введена с клавиатуры матрица А 5Х5. Вывести в строку значения элементов на экран, выполнив обход матрицы по “спирали” как показано на...

Обход массива NxN по спирали
Ошибка выход за границы массива, не могу справится. class Program { static int N = 3; static int matrix=new...

6
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
08.04.2020, 23:51
Ну, если любой, то посмотрите здесь: Движение по спирали в квадратной матрице 9х9
1
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 6
09.04.2020, 01:46  [ТС]
Большое спасибо, много искал информации о том как можно сделать, но ничего стоящего так и не нашел. Но то что вы скинули и вправду помогло, появилось пару идей как можно сделать. Надеюсь хоть что-то да подойдет) Еще раз большое спасибо)
0
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 6
09.04.2020, 09:47  [ТС]
Дошел до этого, но оно как-то неправильно выводится, на скрине видно
Вот текст программы, подскажите что не так пожалуйста
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace l8
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.RowCount = 10;
            dataGridView1.ColumnCount = 10;
            const int n = 10;
            const int m = 10;
            int[,] a = new int[n, m];
            int s = 1;
            for (int y = 0; y < n; y++)
            {
                a[0, y] = s;
                s++;
            }
            for (int x = 1; x < m; x++)
            {
                a[x, n - 1] = s;
                s++;
            }
            for (int y = n - 2; y >= 0; y--)
            {
                a[m - 1, y] = s;
                s++;
            }
            for (int x = m - 2; x >= 0; x--)
            {
                a[x, 0] = s;
                s++;
            }
            int c = 1;
            int d = 1;
            while (s < m * n)
            {
                while (a[c, d + 1] == 0)
                {
                    a[c, d] = s;
                    s++;
                    d++;
                }
                while (a[c + 1, d] == 0)
                {
                    a[c, d] = s;
                    s++;
                    c++;
                }
                while (a[c, d - 1] == 0)
                {
                    a[c, d] = s;
                    s++;
                    d--;
                }
                while (a[c - 1, d] == 0)
                {
                    a[c, d] = s;
                    s++;
                    c--;
                }
            }
            for (int x = 0; x < m; x++)
            {
                for (int y = 0; y < n; y++)
                {
                    if (a[x, y] == 0)
                    {
                        a[x, y] = s;
                    }
                }
            }
            for (int i = 0; i < 10; i++)
                for (int j = 0; j < 10; j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = a[i, j].ToString();
                }
        }
    }
}
Миниатюры
Обход квадратной матрицы по спирали  
0
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 6
09.04.2020, 10:35  [ТС]
Все понял в чем ошибка была, тема закрыта)
0
1 / 1 / 0
Регистрация: 11.07.2020
Сообщений: 4
02.11.2020, 19:37
Добавлено через 37 секунд
Цитата Сообщение от dsadsafvdaf Посмотреть сообщение
Все понял в чем ошибка была, тема закрыта)
Мне всё-таки очень интересно - в чём именно была ошибка?) Тоже дошёл до такого момента, и не пойму почему выводится не совсем правильно(
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
03.11.2020, 07:10
Softer, Как-то так это делается:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            int i = 0;
            int j = 0;
            int tek_n = n - 1;
            while (tek_n > 0)
            {
                int k = 0;
                for (k = 0; k < tek_n; k++) mass[i, j++] = value++;
                for (k = 0; k < tek_n; k++) mass[i++, j] = value++;
                for (k = 0; k < tek_n; k++) mass[i, j--] = value++;
                for (k = 0; k < tek_n; k++) mass[i--, j] = value++;
                tek_n = tek_n - 2;
                i = i + 1;
                j = j + 1;
            }
            if (n % 2 == 1) //добить центр
                mass[n / 2 , n / 2] = value;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2020, 07:10
Помогаю со студенческими работами здесь

Требуется совершить обход квадратной матрицы по спирали
помогите с этой задачкой )) Спираль (Время: 1 сек. Память: 16 Мб Сложность: 38%) Требуется совершить обход квадратной...

Обход матрицы по спирали
program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var i,j,y,n,x,p:integer;

Обход матрицы по спирали
Дана квадратная матрица A порядка M (M — нечетное число). Начи- ная с элемента A1;1 и перемещаясь против часовой стрелки, вывести все ...

Обход матрицы по спирали
Вывести на экран элементы матрицы размером N*M элементов при ее обходе по спирали по и против часовой стрелки. Предусмотреть возможность...

Обход матрицы по спирали
Пожалуйста, подскажите как должен выглядеть листинг к такой программе!? Обойти по спирали, начиная с центра, все элементы квадратной...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru