Advertisement
MyOnAsSalat

Untitled

Jan 18th, 2018
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.91 KB | None | 0 0
  1. //Лабораторная работа №7.
  2. //ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ПРОЦЕДУР
  3. //17. Даны две целые квадратные матрицы C и T порядка N.
  4. //Если сумма чётных элементов побочной диагонали матрицы C больше суммы аналогичных элементов матрицы T,
  5. //то найти матрицу H = T + 2C, иначе матрицу F= C - 5T.
  6. using System;
  7. using System.Linq;
  8. class Program
  9. {  
  10.     static void Main()
  11.     {
  12.         int[][] C;
  13.         int[][] T;
  14.         int N;
  15.         input(out C,out T, out N);
  16.         if (!check(C, T, N)) {Console.WriteLine("Неверный ввод"); return;}
  17.         prtout(procdt(C, T, N),N);
  18.     }
  19.  
  20.     static void input(out int[][] C, out int[][] T, out int N)
  21.     {
  22.         Console.WriteLine("Введите N");
  23.         N = Convert.ToInt32(Console.ReadLine());
  24.         C = new int[N][];
  25.         T = new int[N][];
  26.         Console.WriteLine("Введите матрицу C");
  27.         for (int i = 0; i < N; i++)
  28.         {
  29.             C[i] = Console.ReadLine().Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Select(x=> Convert.ToInt32(x)).ToArray();
  30.         }
  31.         Console.WriteLine("Введите матрицу T");
  32.         for (int i = 0; i < N; i++)
  33.         {
  34.             T[i] = Console.ReadLine().Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt32(x)).ToArray();
  35.         }
  36.     }
  37.  
  38.     static bool check(int[][] C, int[][] T, int N)
  39.     {
  40.         return C.Length == T.Length;
  41.     }
  42.  
  43.     static int[][] procdt(int[][] C, int[][] T, int N)
  44.     {
  45.         int sumC = 0;
  46.         int sumT = 0;
  47.         for (int i = 1; i < N; i += 2)
  48.         {
  49.             sumC += C[N - i][i];
  50.             sumT += T[N - i][i];
  51.         }
  52.         int indexI = 0;
  53.         int indexJ = 0;
  54.         return sumC > sumT
  55.             ? T.Select(x =>            
  56.                 {
  57.                     indexI++;
  58.                     var buf = x.Select(y =>
  59.                     {
  60.                         indexJ++;
  61.                         return y + 2 * C[indexI - 1][indexJ - 1];
  62.                     }).ToArray();
  63.                     indexJ = 0;
  64.                     return buf;
  65.                 }).ToArray()
  66.             :
  67.             C.Select(x =>
  68.             {
  69.                 indexI++;
  70.                 var buf = x.Select(y =>
  71.                 {
  72.                     indexJ++;
  73.                     return y - 5 * T[indexI - 1][indexJ - 1];
  74.                 }).ToArray();
  75.                 indexJ = 0;
  76.                 return buf;
  77.             }).ToArray()
  78.         ;
  79.     }
  80.     static void prtout(int[][] P,int N)
  81.     {
  82.         Console.WriteLine("Ответ:");
  83.         for (int i = 0; i < N; i++)
  84.         {
  85.             Console.WriteLine(String.Join(" ",P[i]));
  86.         }
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement