Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Описать структуру "Знакомый" и "Страница" https://www.cyberforum.ru/ csharp-beginners/ thread2141117.html
Описать структуру вида: Struct Знакомый { char фамилия; long номертелефона; }; Struct Страница { Struct Знакомый; }; struct Страница Блокнот; Составить программу, определяющую,...
C# Описать структуру с именем Student
1. Описать структуру с именем STUDENT, содержащую следующие поля: NAME – фамилия и инициалы; GROUP – номер группы; SES – успеваемость (массив из пяти элементов). 2. Написать программу,...
C# Строки, символы и множества https://www.cyberforum.ru/ csharp-beginners/ thread2141113.html
2. Для каждого слова заданного предложения, указать долю согласных. Определить слово, в котором доля согласных максимальна.
C# Функции библиотеки для работы со строками и символами С помощью текстового редактора создать файл, содержащий текст, длина кото¬рого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT.... https://www.cyberforum.ru/ csharp-beginners/ thread2141112.html
С помощью перестановок строк/столбцов разместить максимальный по модулю элемент матрицы в правом верхнем углу C#
Доброго времени соток уважаемые шаманы и программисты C#. Подскажите пожалуйста как решить данную задачку: 10. Дан массив размера n × n. С помощью перестановок двух строк или двух столбцов...
C# Обработка символьной информации: дописать одну строку в начало другой Составьте программу, которая дописывает одну строку у начало другой. https://www.cyberforum.ru/ csharp-beginners/ thread2141110.html
C# Произвести указанную корректировку, переформируя строки в пределах абзаца Текст записан 60-символьными строками, содержит знаки корректуры: $ - сделать красную строку; # - удалить следующее слово; @ - удалить следующую фразу. Произвести указанную корректировку,... https://www.cyberforum.ru/ csharp-beginners/ thread2141106.html Среди заданных чисел найти такие, десятичная запись которых не содержит одинаковых цифр C#
Среди заданных чисел найти такие, десятичная запись которых не содержит одинаковых цифр C#
C# Написать программу, которая: выводит текст на экран дисплея С помощью текстового редактора создать файл, содержащий текст, длина кото¬рого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT.... https://www.cyberforum.ru/ csharp-beginners/ thread2141104.html C# Заменить цифры в строке 1 на 2, 2 на 3, . , 9 на 0 https://www.cyberforum.ru/ csharp-beginners/ thread2141103.html
Строка состоит из цифр и букв. Заменить цифры в строке 1 на 2, 2 на 3, ... , 9 на 0. Уже второй день пытаюсь что-то внятное сделать... namespace _1._6 { public partial class Form1 : Form ...
C# Вычисление суммы сходящегося ряда
Доброго времени соток уважаемые шаманы и программисты C#. Подскажите пожалуйста как решить данную задачку: Вычислить сумму сходящего ряда по формуле: Как я понял что знак " - " в конце обозначает...
C# Описать функцию minmax(x,y), и благодаря ей перераспределить введёные данные Описать функцию minmax(x, y), которая присваивает первому параметру большее, второму меньшее из значений x, y. Используя эту функцию, перераспределить введёные значения переменных A,B,C так, чтобы... https://www.cyberforum.ru/ csharp-beginners/ thread2141044.html
44 / 45 / 41
Регистрация: 28.06.2017
Сообщений: 133
22.11.2017, 18:21 0

Алгоритм заполнения двумерных массивов - C# - Ответ 11872458

22.11.2017, 18:21. Показов 762. Ответов 4
Метки (Все метки)

Ответ

Захар1999, 2 в 1
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
using System;
 
namespace test
{
    public class Point
    {
        public int X
        {
            set; get;
        }
        public int Y
        {
            set; get;
        }
        public Point(int x, int y)
        {
            X = x;
            Y = y;
        }
    }
    class ArrowMoves
    {
        private Point arrow = null;
        private int lastMoveX = 0;
        private int lastMoveY = 0;
 
        public void ToDown()
        {
            lastMoveX = 0;
            lastMoveY = 1;
            arrow.Y += 1;
        }
        public void ToRight()
        {
            lastMoveX = 1;
            lastMoveY = 0;
            arrow.X += 1;
        }
        public void ToRightUp()
        {
            lastMoveX = 1;
            lastMoveY = -1;
 
            arrow.X += 1;
            arrow.Y += -1;
        }
        public void ToLeftDown()
        {
            lastMoveX = -1;
            lastMoveY = 1;
 
            arrow.X += -1;
            arrow.Y += 1;
        }
        public int LastX
        {
            get
            {
                return lastMoveX;
            }
        }
        public int LastY
        {
            get
            {
                return lastMoveY;
            }
        }
        public int GetX
        {
            get
            {
                return arrow.X;
            }
        }
        public int GetY
        {
            get
            {
                return arrow.Y;
            }
        }
 
        public ArrowMoves(int startX, int startY)
        {
            arrow = new Point(startX, startY);
        }
 
    }
    static class MyArray
    {
        static public int[,] FillingArr1(int n)
        {
            int[,] array = new int[n, n];            
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    array[i, j] = (j*array.GetLength(0))+i+1;
                }
            }
            return array;
        }
        static public int[,] FillingArr2(int n)
        {
            int[,] array = new int[n, n];
 
            int maxX = array.GetLength(0) - 1;
            int maxY = array.GetLength(1) - 1;            
            ArrowMoves point = new ArrowMoves(0, 0);
            int count = 1;
            array[point.GetY, point.GetX] = count;
            point.ToDown();
            while (count < n * n)
            {
                array[point.GetY, point.GetX] = ++count;
                // After down
                if (point.LastX == 0 && point.LastY== 1)
                {                    
                    if (point.GetX == 0)
                    {
                        point.ToRightUp();                        
                    }
                    else
                    {
                        point.ToLeftDown();
                    }
                    continue;
                }
                //After rigth
                if (point.LastX == 1 && point.LastY == 0)
                {
                    if (point.GetY == 0)
                    {
                        point.ToLeftDown();
                    }
                    else
                    {
                        point.ToRightUp();
                    }
                    continue;
                }
                // After right up
                if (point.LastX == 1 && point.LastY == -1)
                {
 
                    if (point.GetX == maxX)
                    {
                        point.ToDown();
                    }
                    else if (point.GetY == 0)
                    {
                        point.ToRight();
                    }
                    else
                    {
                        point.ToRightUp();
                    }                    
                    continue;
                }
                // After left down
                if (point.LastX == -1 && point.LastY == 1)
                {
                    if (point.GetY == maxY)                        
                    {
                        point.ToRight();                        
                    }
                    else if (point.GetX == 0)
                    {
                        point.ToDown();
                    }
                    else
                    {
                        point.ToLeftDown();
                    }
                    continue;
                }
 
            }
            return array;
        }
        static public void Show(int[,] array)
        {
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    Console.Write("{0,-4}", array[i, j]);
                }
                Console.WriteLine();
            }
        }
 
    }
    class Program
    {
        static void Main()
        {
            MyArray.Show(MyArray.FillingArr1(10));
            Console.WriteLine();
            MyArray.Show(MyArray.FillingArr2(10));
            Console.ReadLine();
        }
    }
}


Вернуться к обсуждению:
Алгоритм заполнения двумерных массивов C#
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2017, 18:21
Готовые ответы и решения:

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

Обработка двумерных массивов
Задан массив A(m,n). Сформировать массив C из элементов четных столбцов и массив B из элементов...

Обработка двумерных массивов
Хелп ми плиз

Создание n-го количества двумерных массивов
По заданию необходимо создать N двумерных массивов. В качестве N выступает количество элементов в...

4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2017, 18:21

Создание и заполнение двумерных массивов
как нада сделатъ ето на Двухмерный массив? using System; using System.Collections.Generic; using...

Как создать N двумерных массивов на n столбцов
1. Посчитать количество (N) объектов; 1.1 Найти максимальный элемент; 2. Посчитать количество(n)...

Сравнение элементов матриц (двумерных массивов)
Здравствуйте! Несколько подзавис при написании программы. Суть в том, что 2 матрицы a (n*m) и b...

Объединение двух двумерных массивов в один
Есть двумерный массив N*N и к нему нужно справа добавить ещё один массив такого же размера у...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.