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

Вывод матриц по образцу

18.03.2014, 20:03. Показов 1139. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Друзья, всем привет, обращаюсь к вам с просьбой о помощи, ибо нас, заочников, загрузили множеством заданий, некоторые из которых физически не успеваешь делать, тем более, когда не все еще и понятно(. В общем, я столкнулся с затруднениями в заданиях вывода матриц(прилагаю скриншоты заданий) и еще в двух заданиях. Там, где шахматная доска, не вышло только сделать пункт 4, а в задании 2.2. могу сделать только через DateTime, но нам по идее нужно как-то без использования подобных структур делать, а через switch, по-видимому. В качестве примера к матрицам дано вот такой вот случай:

Пример:

1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
namespace Hello
{
class Program
    {
static void Main()
            {
for (int i = 1; i<=4; ++i, Console.WriteLine())
             {
for(int j=1; j<=6; ++j)
Console.Write(“ “ + i);
             }
            }
   }
}
Заранее благодарю за помощь

Вывод матриц по образцу


Вывод матриц по образцу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2014, 20:03
Ответы с готовыми решениями:

Как сделать вывод записей по образцу
Как сделать вывод записей в таком виде как тут http://www.leoburnett.ru/ Плагин, шаблон, код,...

Вывод матриц
Ребята, на вас последняя надежда! Как сделать, чтобы выводилась вся таблица целиком, а не в сжатом...

Вывод матриц
Как и с помощью какого елемента в Делфи вывести матрицу?

Вывод двух матриц.
Само задание выглядит следующим образом: |2,7 3,8 4,1 7,3| Матрица 4х4. |2.1 5.6 6.8 ...

3
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
18.03.2014, 20:32 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Кизим, для решения 2.2 достаточно просто поискать по этому форуму, сам не раз выкладывал решения аналогичных задач

Добавлено через 16 минут
2.1.4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static bool CanAttack(int row1, int col1, Chess piece, int row2, int col2)
{
    switch (piece)
    {
        case Chess.Pawn:
            return col1 == col2 && Math.Abs(row1 - row2) == 1;
        case Chess.Knight:
            return row1 != row2 && col1 != col2 && 
                     Math.Abs(row1 - row2) + Math.Abs(col1 - col2) == 3;
        case Chess.Bishop:
            return row1 - col1 == row2 - col2;
        case Chess.Rook:
            return row1 == row2 || col1 == col2;
        case Chess.Queen:
            return CanAttack(row1, col1, Chess.Bishop, col1, col2) ||
                   CanAttack(row1, col1, Chess.Rook, col1, col2);
        case Chess.King:
            return Math.Abs(row1 - row2) < 2 && Math.Abs(col1 - col2) < 2;
    }
    return false;
}
C#
1
2
3
4
5
6
7
8
9
public enum Chess
{
    King,
    Queen,
    Rook,
    Bishop,
    Knight,
    Pawn
}
2
Заблокирован
19.03.2014, 00:14 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Кизим, по поводу вывода:

скорее всего кое-где можно упростить код:

Кликните здесь для просмотра всего текста

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
        static void Main(string[] args)
        {
          
            //1 задание
            int count3 = 8;
            int k3=1;
            for (int i = 7; i >= 0; i--)
            {
 
                for (int j = 0; j<k3; j++)
                {
                    Console.Write(" " + count3);
                }
                Console.WriteLine();
                if (i % 2 == 0)
                    k3++;
                else if (i % 2 != 0)
                    count3--;
            }
            Console.WriteLine();
            //2 задание
            int count4 = 1;
            int k4 = 1;
            for (int i = 8; i > 0; i--)
            {
                
                for (int j = 0; j < k4; j++)
                {
                    
                    Console.Write(" " + count4);
                }
                count4 += (int)(5 * Math.Pow(-1, i));
                Console.WriteLine();
                if (i % 2 != 0)
                {
                    k4++;
                    count4++;
                }
            }
            Console.WriteLine();
            //3 задание
            int count5 = 9;
            int k5 = 1;
            for (int i = 8; i > 0; i--)
            {
 
                for (int j = 0; j < k5; j++)
                {
 
                    Console.Write(" " + count5);
                }
                
                count5 -= (int)(5 * Math.Pow(-1, i));
                Console.WriteLine();
                if (i % 2 != 0)
                {
                    k5++;
                    count5--;
                }
                if(i==4)k5++;
            }
            Console.WriteLine();
 
            //6 задание
            int k6 = 1;
            for (int i = 3; i < 13; i++)
            {
                for (int j = 0; j < k6; j++)
                {
                    if(i%2!=0)
                    Console.Write(" " + i/2);
                    else
                    Console.Write(" " + 0);
                }
                Console.WriteLine();
                if(i%2==0)
                k6++;
            }
            Console.WriteLine();
            //4 задание
            int k7 = 1;
            for (int i = 3; i < 13; i++)
            {
                for (int j = 0; j < k7; j++)
                {
                    if (i % 2 != 0)
                    {
                        if (j != k7 - 1)
                            Console.Write(" " + 2);
                        else Console.Write(" " + 3);
                    }
                    else
                        if (j != k7 - 1)
                            Console.Write(" " + (10-k7+j+1));
                        else Console.Write(" " + 0);
                }
                Console.WriteLine();
                if (i % 2 == 0)
                    k7++;
            }
            Console.WriteLine();
            //5 задание
            int k8 = 5;
            for (int i = 9; i >= 0; i--)
            {
 
                for (int j = 0; j < k8; j++)
                {
                    if (i % 2 != 0)
                        Console.Write(" " + 2);
                    else
                        Console.Write(" " + (7 - k8 + j + 1));
                }
                Console.WriteLine();
                if (i % 2 == 0)
                    k8--;
                else if (i % 2 != 0)
                    count3--;
            }
            Console.ReadKey();
        }


Код
 8
 7
 7 7
 6 6
 6 6 6
 5 5 5
 5 5 5 5
 4 4 4 4

 1
 6
 2 2
 7 7
 3 3 3
 8 8 8
 4 4 4 4
 9 9 9 9

 9
 4
 8 8
 3 3
 7 7 7
 2 2 2 2
 6 6 6 6 6
 1 1 1 1 1

 1
 0
 2 2
 0 0
 3 3 3
 0 0 0
 4 4 4 4
 0 0 0 0
 5 5 5 5 5
 0 0 0 0 0

 3
 0
 2 3
 9 0
 2 2 3
 8 9 0
 2 2 2 3
 7 8 9 0
 2 2 2 2 3
 6 7 8 9 0

 2 2 2 2 2
 3 4 5 6 7
 2 2 2 2
 4 5 6 7
 2 2 2
 5 6 7
 2 2
 6 7
 2
 7
Надеюсь нигде не ошибся.
1
0 / 0 / 0
Регистрация: 18.03.2014
Сообщений: 13
19.03.2014, 01:13  [ТС] 4
Спасибо большое, ребят! Выручаете!
0
19.03.2014, 01:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2014, 01:13
Помогаю со студенческими работами здесь

Вывод строк матриц
Как правильно дописать программу? Задана целая прямоугольная матрица размером n×m. Вывести...

Красивый вывод матриц
Как сделать что бы матрицы красиво выводились? #include &lt;iostream&gt; #include&lt;cmath&gt; #define n 5...

Форматированный вывод матриц
как сделать красивый вывод матриц 2*2,3*3 ,4*4,5*5?чтоб не в одну строку все выводило.а так: 2*2:...

Вывод матриц в консоль
Допустим, имеется три массива-матрицы, над которыми проводятся арифметические действия. Как можно в...


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

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

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