D7. Работа с квадратными массивами

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Внимание! При решении задач обязательно учтите Рекомендации по оформлению решений задач на двумерные массивы

Решены задачи нет. Не решены: пока все.

В задачах рассматривается двумерный массив с одинаковым количеством строк и столбцов; такой массив называют квадратным. Для квадратного массива введем два определения.
1. Примем, что главную диагональ такого массива образуют элементы, расположенные между элементами в левом верхнем и правом нижнем углах массива (включая сами эти элементы). Индексы элементов главной диагонали всегда совпадают друг с другом.
2. Побочную диагональ квадратного массива образуют элементы, расположенные между элементами в правом верхнем и левом нижнем углах массива (включая сами эти элементы). Взаимосвязь индексов элемента главной диагонали, стоящего на пересечении i-й строки и j-го столбца, выражается соотношением i + j = n + 1, n — число строк/столбцов (если индекс начинать с 1).

Задачи

D7.1. Известен номер строки, на которой расположен элемент главной диагонали квадратного массива. Вывести на экран значение этого элемента.
D7.2. Известен номер столбца, на котором расположен элемент побочной диагонали квадратного массива. Вывести на экран значение этого элемента.
D7.3. Вывести на экран (в одну строку):
а) все элементы главной диагонали квадратного массива, начиная с элемента, расположенного в левом верхнем углу;
б) все элементы побочной диагонали квадратного массива, начиная с элемента, расположенного в левом нижнем углу.
D7.4. Вывести на экран (в одну строку):
а) все элементы побочной диагонали квадратного массива, начиная с элемента, расположенного в правом верхнем углу;
б) все элементы главной диагонали квадратного массива, начиная с элемента, расположенного в правом нижнем углу.
D7.5. Составить программу расчета суммы двух любых элементов главной диагонали квадратного массива.
D7.6. Составить программу расчета произведения двух любых элементов побочной диагонали квадратного массива.
D7.7. Заменить значения всех элементов главной диагонали квадратного массива нулевыми.
D7.8. Заменить значения всех элементов побочной диагонали квадратного массива значениями, равными 100.
D7.9. Определить:
а) сумму элементов главной диагонали квадратного массива;
б) сумму элементов побочной диагонали квадратного массива.
D7.10. Определить:
а) среднее арифметическое элементов главной диагонали квадратного массива;
б) среднее арифметическое элементов побочной диагонали квадратного
массива.
D7.11. Для каждой строки квадратного массива определить сумму тех двух элементов, которые принадлежат главной и побочной диагоналям. Задачу решить двумя способами:
1) с использованием дополнительного одномерного массива;
2) без использования дополнительного массива.
D7.12. Для каждого столбца квадратного массива определить сумму тех двух элементов, которые принадлежат главной и побочной диагоналям. Задачу решить двумя способами:
1) с использованием дополнительного одномерного массива;
2) без использования дополнительного массива.
D7.13. Составить программу, которая меняет местами два любых элемента главной диагонали квадратного массива.
D7.14. Составить программу, которая меняет местами два любых элемента побочной диагонали квадратного массива.
D7.15. Верно ли, что сумма элементов главной диагонали квадратного массива не превышает 100?
D7.16. В квадратном массиве записаны целые числа. Верно ли, что сумма элементов побочной диагонали массива оканчивается цифрой 0?
D7.17. Определить, сумма каких элементов квадратного массива больше — расположенных на главной диагонали или находящихся на побочной диагонали.
D7.18. В квадратном массиве записаны целые числа. Определить:
а) сумму элементов главной диагонали массива, больших 20;
б) сумму элементов побочной диагонали массива, кратных четырем;
в) количество элементов побочной диагонали массива, равных пяти;
г) число четных элементов главной диагонали массива.
D7.19. В квадратном массиве записаны целые числа. Определить:
а) произведение элементов побочной диагонали массива, меньших 10;
б) сумму элементов главной диагонали массива, оканчивающихся цифрой 7;
в) количество нулевых элементов главной диагонали массива;
г) число нечетных элементов побочной диагонали массива.
D7.20. Определить:
а) минимальный элемент главной диагонали квадратного массива;
б) максимальный элемент побочной диагонали квадратного массива.
D7.21. Определить:
а) максимальный элемент главной диагонали квадратного массива;
б) минимальный элемент побочной диагонали квадратного массива.
D7.22. Определить:
а) координаты первого максимального элемента главной диагонали квадратного массива;
б) координаты первого минимального элемента побочной диагонали квадратного массива.
В обеих задачах принять, что диагональ просматривается сверху вниз.
D7.23. Определить:
а) координаты последнего минимального элемента главной диагонали квадратного массива;
б) координаты последнего максимального элемента побочной диагонали квадратного массива.
В обеих задачах принять, что диагональ просматривается сверху вниз.
D7.24. В квадратном массиве из n строк, где n — нечетное число, все элементы различны. Наибольший элемент среди стоящих на главной и побочной диагоналях поменять местами с элементом, стоящим на пересечении этих диагоналей.
D7.25. В квадратном массиве из n строк, где n — нечетное число, все элементы различны. Наименьший элемент среди стоящих на главной и побочной диагоналях поменять местами с элементом, расположенным в левом нижнем углу массива.
D7.26. Заполнить квадратный массив размером n n таким образом, чтобы:
а) его элементы имели значения, симметричные относительно главной диагонали;
б) его элементы имели значения, симметричные относительно побочной диагонали.
D7.27. Над главной диагональю квадратного массива размером 18 18 записано количество очков, набранных той или иной командой во встречах с другими командами (3 — если данная команда выиграла игру, 0 — если проиграла, 1 — если игра закончилась вничью). Для каждой команды определить:
а) количество выигрышей, количество ничьих и количество проигрышей;
б) общее число набранных ею очков.
Обе задачи решить двумя способами:
1) с использованием дополнительного двумерного массива или трех одномерных массивов;
2) без использования дополнительного массива (дополнительных массивов).
D7.28. Решить предыдущую задачу для случая, когда в исходном массиве записаны двузначные или однозначные числа, запись которых образована цифрами, означающими количество забитых и пропущенных в данной игре мячей. Например, 32 — три забитых, два пропущенных, 22 — два забитых, два пропущенных, 0 — ноль забитых, ноль пропущенных. Определить также общее число забитых и общее число пропущенных каждой командой мячей.
D7.29. Дан квадратный массив размером 10 10, заполненный двузначными целыми числами. Вывести на экран часть массива:
а) расположенную выше главной диагонали;
б) расположенную ниже побочной диагонали.
D7.30. Дан квадратный массив размером 15 15, заполненный цифрами. Вывести на экран часть массива:
а) расположенную выше побочной диагонали;
б) расположенную ниже главной диагонали.
D7.31. Составить программу, которая определяет, есть ли хотя бы один элемент, равный заданному числу на главной диагонали квадратного массива. В случае положительного ответа должны быть напечатаны координаты любого из них.
D7.32. Составить программу, которая определяет, есть ли хотя бы один элемент, равный заданному числу на побочной диагонали квадратного массива. В случае положительного ответа должны быть напечатаны координаты любого из них.
D7.33. Составить программу, которая определяет, является ли последовательность элементов главной диагонали квадратного массива упорядоченной по не убыванию (при просмотре от левого верхнего угла массива). В случае отрицательного ответа должны быть напечатаны координаты первого элемента, нарушающего указанную упорядоченность.
D7.34. Составить программу, которая определяет, является ли последовательность элементов побочной диагонали квадратного массива упорядоченной по не возрастанию (при просмотре от правого верхнего угла массива). В случае отрицательного ответа должны быть напечатаны координаты первого элемента, нарушающего указанную упорядоченность.
D7.35. Дан квадратный массив целых чисел. Определить, является ли он симметричным относительно своей главной диагонали.
D7.36. Дан квадратный массив целых чисел. Определить, является ли он симметричным относительно своей побочной диагонали.
D7.37. В квадратном массиве выделим четыре четверти, ограниченные главной и побочной диагоналями (без учета элементов, расположенных на диагоналях): верхнюю, нижнюю, левую и правую.Найти сумму элементов:
а) верхней четверти;
б) нижней четверти;
в) правой четверти;
г) левой четверти.
D7.38. В квадратном массиве выделим четыре четверти, ограниченные главной и побочной диагоналями (без учета элементов, расположенных на диагоналях): верхнюю, нижнюю, левую и правую. Поменять местами элементы:
а) верхней и нижней четвертей;
г) правой и нижней четвертей;
б) правой и левой четвертей;
д) верхней и правой четвертей;
в) левой и верхней четвертей;
е) левой и нижней четвертей.
В задачах (а) и (б) в результате обмена элементы должны перемещаться симметрично относительно точки пересечения главной и побочной диагоналей, в остальных — относительно диагонали, смежной для обмениваемых четвертей.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
4 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

D7.30. Дан квадратный массив размером 15 15, заполненный цифрами. Вывести на экран часть массива:
а) расположенную выше побочной диагонали;
б) расположенную ниже главной диагонали.

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;


namespace Learning_Csharp
{
    interface IResultate
    {
        void Result();
    }


    struct Data
    {
        public int[,] array;
        public static readonly string prission = string.Concat(Enumerable.Repeat("#", 100));
        public static readonly string downSpace = string.Concat(Enumerable.Repeat("_", 100));


        public void PrintArray<T>(T[,] array)
        {
            Console.WriteLine("Array: ");
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                    Console.Write(array[i,j] + " ");
                Console.WriteLine();
            }
        }
    }


    abstract class Array : IResultate
    {
        protected Data data;
        private const int minValue = 10;
        private const int maxValue = 100;
        protected static readonly Random rand = new Random();


        public Array(int[,] array) => data = new Data() { array = array };


        protected virtual void CreateArray(int[,] array)
        {
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                    array[i, j] = rand.Next(minValue, maxValue);
            }
        }


        public abstract void Result();
    }


    class Solution : Array
    {
        private int countJ;
        private int countK;


        private bool condition { get; set; }


        public Solution(int[,] array) : base(array) => CreateArray(data.array);


        private void FirstPoint(in int[,] array)
        {
            condition = false;
            countJ = array.GetLength(1) - 1;


            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    condition = j != countJ;
                    if (condition)
                    {
                        Console.Write(array[i, j] + " ");
                    }
                    else break;
                }
                countJ--;
                Console.WriteLine();
            }


        }


        private void SecondPoint(in int[,] array)
        {
            countK = 1;
            condition = false;
            for (int i = 1; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    condition = j != countK;
                    if (condition)
                    {
                        Console.Write(array[i, j] + " ");
                    }
                    else break;
                }
                countK++;
                Console.WriteLine();
            }
        }




        private void AnsewrForMission()
        {
            Console.WriteLine("First Point:\n");
            FirstPoint(data.array);


            Console.WriteLine($"\n{Data.downSpace}\n");


            Console.WriteLine("Second Point:\n");
            SecondPoint(data.array);
        }


        public override void Result()
        {
            data.PrintArray(data.array);


            Console.WriteLine($"\n{Data.prission}\n");


            AnsewrForMission();
        }
    }


    static class Result
    {
        public static void PrintResultate(this IResultate result) => result.Result();
    }


    class Program
    {
        static void Main(string[] args)
        {
            int[,] array = new int[15, 15];


            Solution userSol = new Solution(array);


            if (userSol is IResultate) userSol.PrintResultate();
        }
    }
}
using System;
namespace Less7_35
{
    class Array2D
    {
        int[,] array; int line; int coloumn;
        public Array2D(int[,] array, int line, int coloumn)
        {
            this.array = array;
            this.line = line;
            this.coloumn = coloumn;
        }
        public void GetArray()
        {
            var num = 0;
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    array[i, j] = new Random().Next(1, 5);
                    Console.Write(array[i, j] + "\t");
                }
                Console.WriteLine("\n");
            }
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    if (array[i, j] != array[j, i])
                    {
                        num++;
                        break;
                    } 
                }
            }
            if (num>0)
                Console.WriteLine("No");
            else
                Console.WriteLine("Yes");
        }
    }
    class Program
    {
        static void Main()
        {
            int line = 5;
            int coloumn = 5;
            int[,] array = new int[line, coloumn];
            Array2D X = new (array, line, coloumn);
            X.GetArray();
        }
    }
}
using System;
namespace Less7_24
{
    class Array2D
    {
        int[,] array; int line; int coloumn;
        public Array2D(int[,] array, int line, int coloumn)
        {
            this.array = array;
            this.line = line;
            this.coloumn = coloumn;
        }
        public void GetArray()
        {
            var num = 0; var max = 0; var max1 = 0; var rev=0; var rev1 = 0;
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    num++;
                    array[i, j] = num; 
                    Console.Write(array[i, j]+"\t");
                    if (i == j && array[i, j] > max)
                    {
                        max = array[i, j];
                    }
                    if (i == line - 1 - j && array[i, j] > max1)
                    {
                        max1 = array[i, j];
                    }
                }
                Console.WriteLine("\n");
            }
            rev = max;
            rev1 = max1;
            Console.WriteLine();
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    if (rev == array[i, j])
                    {
                        array[i, j] = max1;                       
                    }
                    else if (rev1 == array[i, j])
                    {
                        array[i, j] = max;
                    }
                    Console.Write(array[i, j] + "\t");
                }
                Console.WriteLine("\n");
            }
        }
    }
    class Program
    {
        static void Main()
        {
            int line = 5;
            int coloumn = 5;
            int[,] array = new int[line, coloumn];
            Array2D X = new (array, line, coloumn);
            X.GetArray();
        }
    }
}
№7.1, 7.2
using System;
namespace Task7_1
{
    class Program
    {
        int[,] array; int line; int coloumn;
        public Program(int[,] array, int line, int coloumn)
        {
            this.array = array; this.line = line; this.coloumn = coloumn;
        }
        public void GetArray2D()
        {
            var num = 0; var num11 = 0; var num1 = 0;
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    Console.Write($"{array[i, j] = new Random().Next(0, 15)} \t");     
                }
                Console.WriteLine("\n");
            }
            Console.Write("Введите номер строки: ");
            var nummer = Convert.ToInt32(Console.ReadLine())-1;
            Console.Write("Введите номер столбца: ");
            var nummer1 = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    if (i == nummer)
                        num = array[nummer, nummer];
                    if (j == nummer1-1)
                    {
                        num11 = line - nummer1;
                        num1 = array[num11, nummer1 - 1];
                    }
                }
            }
            Console.WriteLine(num+ " - элемент главной диагонали квадратного массива");
            Console.WriteLine(num1 + " - элемент побочной диагонали квадратного массива");
            
        }
    }
    class Array2D
    {
        static void Main()
        {
            int line = 6;
            int coloumn = 6;
            int[,] array = new int[line, coloumn];
            Program Object = new(array, line, coloumn);
            Object.GetArray2D();
        }
    }
}
Последний раз редактировалось 1 год назад Евгений ем
4
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x