Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Lab6
- {
- class MyProgram
- {
- private static Matrix myMat;
- static void Main()
- {
- try
- {
- enterArr();
- menu();
- }
- catch (FormatException)
- {
- Console.WriteLine("Ошибка Ввода!");
- }
- Console.ReadKey();
- }
- static void enterArr()
- {
- Console.WriteLine("Введите кол-во строк");
- int ln = int.Parse(Console.ReadLine());
- Console.WriteLine("Введите кол-во столбцов");
- int cl = int.Parse(Console.ReadLine());
- double[,] arr = new double[ln,cl];
- Console.WriteLine("Введите коэффициенты матрицы:");
- for (int i = 0; i < ln; i++)
- {
- for (int k = 0; k < cl; k++)
- {
- Console.Write("a[{0},{1}]: ", i, k);
- arr[i, k] = double.Parse(Console.ReadLine());
- }
- Console.WriteLine();
- }
- myMat = new Matrix(arr, ln, cl);
- }
- static void menu()
- {
- Console.WriteLine("Выберите действие");
- Console.WriteLine("1.Преобразовать к треугольному виду");
- Console.WriteLine("2.Кол-во строк, среднее ариф. которых меньше заданой велечины");
- Console.WriteLine("3.Вывести матрицу");
- Console.WriteLine("4.Выход");
- switch (Convert.ToInt32(Console.ReadLine()))
- {
- case 1: myMat.convertToTriangle(); menu(); break;
- case 2: Console.WriteLine("Введите значение:"); Console.WriteLine(myMat.average(Convert.ToDouble(Console.ReadLine()))); menu(); break;
- case 3: printArr(myMat); menu(); break;
- case 4: Environment.Exit(0); break;
- }
- }
- static void printArr(Matrix inMat)
- {
- for (int i = 0; i < inMat.line; i++)
- {
- for (int k = 0; k < inMat.column; k++)
- {
- Console.Write("{0} ", inMat.arr[i,k]);
- }
- Console.WriteLine();
- }
- }
- }
- class Matrix
- {
- public int line;
- public int column;
- public double[,] arr;
- public Matrix (double[,] inMat, int ln, int cl)
- {
- this.arr = inMat;
- this.column = cl;
- this.line = ln;
- }
- public void convertToTriangle()
- {
- for (int i = 0; i < column-1; i++)
- {
- double multK = arr[i+1, i] / arr[i, i];
- if (double.IsInfinity(multK) || double.IsNaN(multK))
- {
- continue;
- }
- for (int k=i+1; k < line; k++)
- {
- arr[k,i] = 0;
- for (int j = 1; j < column; j++)
- {
- arr[k, j] -= arr[i, j] * multK;
- }
- }
- }
- }
- public int average(double val)
- {
- double avr;
- int n = 0;
- double sum = 0;
- for (int i = 0; i < line; i++)
- {
- sum = 0;
- for (int k = 0; k < column; k++)
- {
- sum += arr[i,k];
- }
- avr = sum / column;
- if (avr < val) n = n +1;
- }
- avr = sum / n;
- return n;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement