Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Лабораторная работа №7.
- //ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ПРОЦЕДУР
- //17. Даны две целые квадратные матрицы C и T порядка N.
- //Если сумма чётных элементов побочной диагонали матрицы C больше суммы аналогичных элементов матрицы T,
- //то найти матрицу H = T + 2C, иначе матрицу F= C - 5T.
- using System;
- using System.Linq;
- class Program
- {
- static void Main()
- {
- int[][] C;
- int[][] T;
- int N;
- input(out C,out T, out N);
- if (!check(C, T, N)) {Console.WriteLine("Неверный ввод"); return;}
- prtout(procdt(C, T, N),N);
- }
- static void input(out int[][] C, out int[][] T, out int N)
- {
- Console.WriteLine("Введите N");
- N = Convert.ToInt32(Console.ReadLine());
- C = new int[N][];
- T = new int[N][];
- Console.WriteLine("Введите матрицу C");
- for (int i = 0; i < N; i++)
- {
- C[i] = Console.ReadLine().Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Select(x=> Convert.ToInt32(x)).ToArray();
- }
- Console.WriteLine("Введите матрицу T");
- for (int i = 0; i < N; i++)
- {
- T[i] = Console.ReadLine().Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt32(x)).ToArray();
- }
- }
- static bool check(int[][] C, int[][] T, int N)
- {
- return C.Length == T.Length;
- }
- static int[][] procdt(int[][] C, int[][] T, int N)
- {
- int sumC = 0;
- int sumT = 0;
- for (int i = 1; i < N; i += 2)
- {
- sumC += C[N - i][i];
- sumT += T[N - i][i];
- }
- int indexI = 0;
- int indexJ = 0;
- return sumC > sumT
- ? T.Select(x =>
- {
- indexI++;
- var buf = x.Select(y =>
- {
- indexJ++;
- return y + 2 * C[indexI - 1][indexJ - 1];
- }).ToArray();
- indexJ = 0;
- return buf;
- }).ToArray()
- :
- C.Select(x =>
- {
- indexI++;
- var buf = x.Select(y =>
- {
- indexJ++;
- return y - 5 * T[indexI - 1][indexJ - 1];
- }).ToArray();
- indexJ = 0;
- return buf;
- }).ToArray()
- ;
- }
- static void prtout(int[][] P,int N)
- {
- Console.WriteLine("Ответ:");
- for (int i = 0; i < N; i++)
- {
- Console.WriteLine(String.Join(" ",P[i]));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement