Практикум по курсу "Алгоритмизация и программирование". Часть 1. Андрианова А.А - 83 стр.

UptoLike

83
for(int x = 0; x < m; x++)
for(int y = 0; y < n; y++)
int.TryParse(Console.ReadLine(),out a[x, y]);
Console.WriteLine("Введите матрицу B:");
for(int x = 0; x < k; x++)
for(int y = 0; y < t; y++)
int.TryParse(Console.ReadLine(),out b[x, y]);
// вычисление произведения матриц
for(int x = 0; x < m; x++)
for(int y = 0; y < t; y++)
{
int s=0;
for(int p = 0; p < n; p++)
s = s + a[x, p]*b[p, y];
c[x, y]=s;
}
Console.WriteLine("Полученная матрица:");
for (int x = 0; x < m; x++)
{
for (int y = 0; y < t; y++)
Console.Write("{0}\t", c[x, y]);
Console.WriteLine();
}
}
}
}
Задача 4. Дана квадратная матрица. Поменять в ней местами элементы
главной и побочной диагоналей.
Здесь сделаем только одно пояснение: элемент, находящийся в x-ой
строке на главной диагонали, имеет индексы
( , )xx
, а соответствующий
элемент побочной диагонали -
(, 1)xn x
. Поэтому требуется просто
перебрать строки матрицы и поменять в них местами элементы, имеющие
такие индексы. Блок-схема решения задачи представлена на Рис.6.8.
Код программы для задачи 4.
using System;
namespace Examples
{
class Program1
{
static void Main(string[] args)
{
int n;
Console.Write("Введите размер матрицы n:");
int.TryParse(Console.ReadLine(), out n);
if (n <= 0)
{
                for(int x = 0; x < m; x++)
                      for(int y = 0; y < n; y++)
                            int.TryParse(Console.ReadLine(),out a[x, y]);
                Console.WriteLine("Введите матрицу B:");
                for(int x = 0; x < k; x++)
                      for(int y = 0; y < t; y++)
                            int.TryParse(Console.ReadLine(),out b[x, y]);
                // вычисление произведения матриц
                for(int x = 0; x < m; x++)
                      for(int y = 0; y < t; y++)
                      {
                            int s=0;
                            for(int p = 0; p < n; p++)
                                  s = s + a[x, p]*b[p, y];
                            c[x, y]=s;
                      }
                Console.WriteLine("Полученная матрица:");
                for (int x = 0; x < m; x++)
                {
                    for (int y = 0; y < t; y++)
                        Console.Write("{0}\t", c[x, y]);
                    Console.WriteLine();
                }
            }
        }
    }

    Задача 4. Дана квадратная матрица. Поменять в ней местами элементы
главной и побочной диагоналей.
    Здесь сделаем только одно пояснение: элемент, находящийся в x-ой
строке на главной диагонали, имеет индексы ( x, x) , а соответствующий
элемент побочной диагонали - (xn    , x1). Поэтому требуется просто
перебрать строки матрицы и поменять в них местами элементы, имеющие
такие индексы. Блок-схема решения задачи представлена на Рис.6.8.

   Код программы для задачи 4.
    using System;

    namespace Examples
    {
        class Program1
        {
            static void Main(string[] args)
            {
                int n;
                Console.Write("Введите размер матрицы n:");
                int.TryParse(Console.ReadLine(), out n);
                if (n <= 0)
                {
                                       83