Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372

Квадратная целочисленная матрица

20.06.2010, 18:13. Показов 6306. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Квадратная целочисленная матрица размером NxN заполняется от датчика случайных чисел в диапазоне значений от -50 до +50. Значение N вводится с клавиатуры и должно быть четным. Матрица условно разбита на четыре квадрата одинакового размера. Определить и вывести на экран cумму элементов матрицы, расположенных в каждом квадрате в области, отмеченной серым цветом. Границы принадлежат проверяемой области. Для приведенного примера суммы равны: Квадрат 1 = 5 Квадрат 2 = 11 Квадрат 3 = 6 Квадрат 4 = 12
Вложения
Тип файла: rar задача масс.rar (21.6 Кб, 30 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2010, 18:13
Ответы с готовыми решениями:

целочисленная квадратная матрица.
о великие умы ......позарез нужна помощь.....задали сделать лабу по C# на автоматический экзамен по программированию......помогите...

Дана целочисленная квадратная матрица
о великие умы ......позарез нужна помощь.....задали сделать лабу по C# на автоматический экзамен по программированию......помогите...

дана целочисленная квадратная матрица
Добрый день Дана целочисленная квадратная матрица. Определить: 1) сумму элементов в тех столбцах, которые не содержат отрицательных...

26
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
20.06.2010, 23:33  [ТС]
помогите(((

Добавлено через 2 часа 58 минут
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            bool f = true;
            int[,] Matrix;
            int N=0;
            
            
            //смотрим размерность
            while (f)
            {
                Console.WriteLine("Введите размерность");
                N = int.Parse(Console.ReadLine());
                if (N % 2 != 0)
                {
                    Console.WriteLine("N должно быть четным!");
                }
                else
                {
                    f = false;
                }
            }
 
            //заполняем матрицу случайными числами
            Matrix = new int[N,N];
 
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    Matrix[i, j] = rnd.Next(0, 10);
                }
            }
 
            int[] Kvadrat = new int[4];
           
            
            //подсчет треугольников
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    if ((i == 0 && j == 0) ||
                        (i == 0 && j == N - 1) ||
                        (i == N - 1 && j == 0) ||
                        (i == N - 1 && j == N - 1))
                    {
                      //выкидываем краевые точки                
                    }
                    else
                    {
                        //если лежит в верхней половине
                        if (i < N / 2)
                        {
                            //первый квадрат
                            if (j < N / 2)
                            {
                                Kvadrat[0] += Matrix[i, j];
                                
                            }
                            //второй квадрат
                            else
                            {
                                Kvadrat[1] += Matrix[i, j];
                                
                            }
                        }
                        //если в нижней
                        else
                        {
                            //третий квадрат
                            if (j < N / 2)
                            {
                                Kvadrat[2] += Matrix[i, j];
                                
                            }
                            //четвертый квадрат
                            else
                            {
                                Kvadrat[3] += Matrix[i, j];
                              
                            }
                        }
                    }
                }
            }
 
 
            
            //Вывод матрицы
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    Console.Write("{0} ", Matrix[i, j]);
                }
                Console.WriteLine();
            }
 
 
            for (int i = 0; i < 4; i++)
            {
                Console.WriteLine("Сумма {0} квадрата: {1}", i + 1, Kvadrat[i]);
            }
 
            Console.ReadLine();
 
 
        }
    }
}
вот попробовал написать код, но он только выкидывает вершины квадрата, а надо чтобы было так

0 0 Х Х 0 0
0 Х Х Х Х 0
Х Х Х Х Х Х
Х Х Х Х Х Х
0 Х Х Х Х 0
0 0 Х Х 0 0

где Х - элементы, которые суммируются
0 - не суммируются
то есть получается что-то вроде ромба, разделённого на 4 треугольника

помогите доделать задачу
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
20.06.2010, 23:57
Цитата Сообщение от Helios1.618 Посмотреть сообщение
Матрица условно разбита на четыре квадрата одинакового размера.
Не пойму на рисунке где расположенны эти 4 квадратa ?Не мог бы уточнить?

Добавлено через 8 минут
все допёр.
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 00:09  [ТС]
0 0 Х Х 0 0
0 Х Х Х Х 0
Х Х Х Х Х Х

Х Х Х Х Х Х
0 Х Х Х Х 0
0 0 Х Х 0 0

где Х - элементы, которые суммируются
0 - не суммируются
то есть получается что-то вроде ромба, разделённого на 4 треугольника

Добавлено через 12 минут
][irurg, если знаешь, помоги пожалуйста
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 00:11
Helios1.618, буду не Я если не сделаю ))
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 01:10  [ТС]
кто-нибудь может подправить код ?
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 01:28
Helios1.618, так подойдет ?
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
using System;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            bool f = true;
            int[,] Matrix;
            int N = 0;
            int sumKvadrat1 = 0;
            int sumKvadrat3 = 0;
            int sumKvadrat2 = 0;
            int sumKvadrat4 = 0;
 
            //смотрим размерность
            while (f)
            {
                Console.WriteLine("Введите размерность");
                N = int.Parse(Console.ReadLine());
                if (N % 2 != 0)
                {
                    Console.WriteLine("N должно быть четным!");
                }
                else
                {
                    f = false;
                }
            }
 
            //заполняем матрицу случайными числами
            Matrix = new int[N, N];
 
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    Matrix[i, j] = rnd.Next(0, 10);
                }
            }
//--------------------------------------------------------
 
            for (int i = N / 2 - 1,k =0 ; i >= 0; --i,++k)
            {
                for (int j = k; j < N / 2; j++)
                {
                    sumKvadrat1 += Matrix[i, j];
                }
            }
//-----------------------------------------------------------
            for (int i = N / 2,k = 0 ; i < N; ++i,++k)
            {
                for (int j = k; j < N / 2; j++)
                {
                    sumKvadrat3 += Matrix[i, j];
                }
            }
//------------------------------------------------------------
            for (int i = N / 2-1, k = 0; i >= 0; --i, ++k)
            {
                for (int j = N/2; j < N-k; j++)
                {
                    sumKvadrat2 += Matrix[i, j];
                }
            }
//-----------------------------------------------------------
            for (int i = N / 2, k = 0; i <N ; ++i, ++k)
            {
                for (int j = N / 2; j < N - k; j++)
                {
                    sumKvadrat4 += Matrix[i, j];
                }
            }
//-----------------------------------------------------------
 
            //выводим массив
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    Console.Write(Matrix[i, j]);
                }
                Console.WriteLine();
            }
 
            Console.WriteLine("сумма первого    квадрата = " + sumKvadrat1);
            Console.WriteLine("сумма второго    квадрата = " + sumKvadrat2);
            Console.WriteLine("сумма третьего   квадрата = " + sumKvadrat3);
            Console.WriteLine("сумма четвертого квадрата = " + sumKvadrat4);
 
 
            Console.ReadKey();
        }
    }
 
    
}
1
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 11:18  [ТС]
][irurg, можешь помочь с ещё одной задачей?
Вложения
Тип файла: rar задача масс.rar (19.4 Кб, 17 просмотров)
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 12:10
Helios1.618, так ?
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            bool f = true;
            int[,] Matrix;
            int N = 0;
            int M = 0;
            string kontur = "";
 
            //смотрим размерность
            while (f)
            {
                Console.WriteLine("Введите число строк");
                N = int.Parse(Console.ReadLine());
 
                Console.WriteLine("Введите число столбцов");
                M = int.Parse(Console.ReadLine());
                Console.WriteLine();
 
                if (N == M)
                {
                    Console.WriteLine("N и M должны быть разными!");
                }
                else
                {
                    f = false;
                }
            }
 
            //заполняем матрицу случайными числами
            Matrix = new int[N, M];
 
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    Matrix[i, j] = rnd.Next(0, 10);
                }
            }
//---------------------------------------------------
 
            for (int i = 0; i < N; ++i)
            {
                 if(i == 0)
                        {
                            for (int j = 0; j < M ; ++j)
                            {
                                kontur += Matrix[i, j];
                            }
                        } 
                 else
 
                     if (i == N - 1)
                     {
                         for (int j = M - 1; j >= 0; --j)
                         {
                             kontur += Matrix[i, j];
                         }
                     }
                     else
                     {
                         kontur += Matrix[i, M - 1];
                     }
                       
            }
            for (int i = N - 2; i > 0; --i)
            {
                kontur += Matrix[i, 0];
            }
 
//----------------------------------------------------
            //Вывод матрицы
            for(int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    Console.Write("{0} ", Matrix[i, j]);
                }
                Console.WriteLine();
            }
 
            Console.WriteLine();
            Console.WriteLine("kontur "+kontur);
            Console.ReadLine();
 
        }
    }
}
1
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 12:45  [ТС]
C#
1
kontur += Matrix[i, j];
а разве это означает не сумму ?
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 12:54
kontur += Matrix[i, j];
это означает конкатенацию двух строк (тут элемент массива Matrix[i, j] неявно приводится к типу string)
1
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 13:16  [ТС]
спасибо большое за помощь)))
не знаешь, как сделать это:
Оформить функцию, выполняющую сдвиг элементов главной диагонали квадратной целочисленной матрицы сверху вниз. Освободившийся элемент заполняется нулем. Используя разработанную функцию выполнить сдвиг главной диагонали матрицы размером 5x5. Матрицу заполнить случайными числами в диапазоне от 10 до 50.
?
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 13:28
Цитата Сообщение от Helios1.618 Посмотреть сообщение
Оформить функцию, выполняющую сдвиг элементов главной диагонали квадратной целочисленной матрицы сверху вниз. Освободившийся элемент заполняется нулем. Используя разработанную функцию выполнить сдвиг главной диагонали матрицы размером 5x5.
нужно сделать вот так ?
[|][ ][ ][ ][ ]
[ ][|][ ][ ][ ]
[ ][ ][|][ ][ ]
[ ][ ][ ][|][ ]
[ ][ ][ ][ ][|]

после

[0][ ][ ][ ][ ]
[|][0][ ][ ][ ]
[ ][|][0][ ][ ]
[ ][ ][|][0][ ]
[ ][ ][ ][|][0]
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 13:46  [ТС]
][irurg, да
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 14:10
C#
1
2
3
4
5
6
7
8
9
10
11
public static void sdvig(int[,] array)
        {
            for (int i = 0; i < (int)Math.Sqrt(array.Length); ++i)
            {
                if (i < (int)Math.Sqrt(array.Length) - 1)
                {
                    array[i + 1, i] = array[i, i];
                }
                array[i, i] = 0;
            }
        }
1
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 14:17  [ТС]
][irurg, можете объяснить зачем вам понадобился квадратный корень ?
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 14:21
Helios1.618, Для того чтобы найти длину измерения матрицы

Добавлено через 1 минуту
Количество строк или столбцов короче.
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 15:41  [ТС]
можешь подсказать, как матрицу заполнить рандомно буквами латинского алфавита ?
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
21.06.2010, 16:14
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
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
 
        static void Main(string[] args)
        {
            Random rnd = new Random();
            char[,] Matrix;
            int N = 3;
            int M = 4;
            Matrix = new char[N, M];
 
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    Matrix[i, j] = Convert.ToChar(rnd.Next(97,123));
                }
            }
 
            //Вывод матрицы
            for(int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    Console.Write("{0} ", Matrix[i, j]);
                }
                Console.WriteLine();
            }
 
            Console.ReadLine();
        }
    }
}
1
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
21.06.2010, 16:27  [ТС]
C#
1
Matrix[i, j] = Convert.ToChar(rnd.Next(97,123));
никак не пойму, почему у тебя генерируется случайное число в диапозоне от 97 до 123
конвертируется в символ и получается английская буква
объясни пожалуйста, как это происходит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2010, 16:27
Помогаю со студенческими работами здесь

Дана целочисленная квадратная матрица, получить вектор
Дана целочисленная квадратная матрица. Получить вектор В , где bi значение первого попорядку положительного элемента i-той строки (если...

Дана целочисленная квадратная матрица порядка N. Найти номера столбцов все элементы четны
не могу ни как найти условия что б проверить все элементы на четность и потом вывести их. using System; ...

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

Целочисленная прямоугольная матрица
Прошу помогите. Это новая тема с двухмерными массивами, я ещё на разобрался.

Целочисленная прямоугольная матрица
Даровки всем.Пишу сюда,т.к уже мозги кипят.Помогите пожалуйста написать код по этому заданию(Дана целочисленная прямоугольная матрица....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru