Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Інститут Комп’ютерних Технологій, Автоматики та Метрології
Кафедра КСА
/
Лабораторна робота №1
з дисципліни:
«Операційні системи»
Варіант: 4
Мета роботи
Реалізування простих консольних програм мовою С#.
Завдання
Створити кубічну матрицю -
А
3х3х4
→С#[,,]. Відсортувати фронтальні площини матриці методом обміну за зростанням. Обрахувати вектор максимальних значень фронтальних площин.
Код програми
static void WriteConsole (int [,,] Cube)
{
int n = Cube.GetLength(0); int m = Cube.GetLength(1);
int l = Cube.GetLength(2);
for (int k = 0; k < n; k++)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < l; j++)
{
Console.Write("{0} ", Cube[k, i, j]);
}
Console.WriteLine();
}
Console.WriteLine();
}
}
static int [] Vector(int [,,] Cube)
{
int n = Cube.GetLength(0);
int[] a = new int[n];
for (int i = 0; i < n; i++)
{
a[i] = Cube[i, Cube.GetLength(1) - 1, Cube.GetLength(2) - 1];
}
return a;
}
static void Sort(ref int [,,] Cube)
{
int n = Cube.GetLength(0);
int m = Cube.GetLength(1);
int l = Cube.GetLength(2);
for (int k = 0; k < n; k++)
{
for (int i = 0; i < n * l - 1; i++)
{
for (int j = 0; j < n * l - i - 1; j++)
{
if (Cube[k, j / l, j % l] > Cube[k, (j + 1) / l, (j + 1) % l])
{
Cube[k, j / l, j % l] ^= Cube[k, (j + 1) / l, (j + 1) % l];
Cube[k, (j + 1) / l, (j + 1) % l] ^= Cube[k, j / l, j % l];
Cube[k, j / l, j % l] ^= Cube[k, (j + 1) / l, (j + 1) % l];
}
}
}
}
}
static void InputConsole(ref int[,,] Cube)
{
Console.WriteLine("Enter the size of the array:[n, m, l]");
List<int> Size = Console.ReadLine().Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
int n = Size[0], m = Size[1], l = Size[2];
Cube = new int[n, m, l];
Console.WriteLine("Enter the elements of the array:");
for (int k = 0; k < n; k++)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < l; j++)
{
Console.Write("Cube[{0}, {1}, {2}]=", k, i, j);
Cube[k, i, j] = Convert.ToInt32(Console.ReadLine());
}
}
}
}
static void InputFile(ref int[,,] Cube)
{
System.IO.StreamReader File = new System.IO.StreamReader(@"C:\Users\Misha\Documents\Visual Studio 2015\Projects\Lab1_M\test.txt");
List<int> Size = File.ReadLine().Split().Select(int.Parse).ToList();
int n = Size[0], m = Size[1], l = Size[2];
Cube = new int[n, m, l];
for (int k = 0; k < n; k++)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < l; j++)
{
Cube[k, i, j] = Convert.ToInt32(File.ReadLine());
}
}
}
}
static void Main(string[] args)
{
int[,,] Cube = null;
InputConsole(ref Cube);
int n = Cube.GetLength(0);
int m = Cube.GetLength(1);
int l = Cube.GetLength(2);
Console.WriteLine("Input array:");
WriteConsole(Cube);
Sort(ref Cube);
Console.WriteLine("Output array:");
WriteConsole(Cube);
Console.WriteLine("Vector of maximum values of the front planes:");
foreach (var s in Vector(Cube))
{
Console.Write("{0} ", s);
}
Console.WriteLine();
Console.ReadKey();
}
Скріншоти програми
/
Висновок
Отже, на цій лабораторній роботі я навчився створювани прості консольні програми мовою С#.