МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА
Лабораторна робота №1
з дисципліни
"Операційні системи"
Варіант №4
Мета роботи: реалізація консольної програми мовою С#.
/
4
A 3×3×4 → С# [ , , ] ;
фронтальна площина – метод обміну – за зростанням;
вектор максимальних значень фронтальних площин.
/
Код програми:
using System;
class Matrix
{
static void Main()
{
double[] maxP = new double[3];
double[,][] M = new double[3, 3][];
for (int k = 0; k < 3; k++)
{
M[k, 0] = new double[4];
M[k, 1] = new double[4];
M[k, 2] = new double[4];
}
Vvid(M);
Console.WriteLine();
Console.WriteLine("Введений масив:");
Console.WriteLine();
Vuvid(M);
Sort(M);
Console.WriteLine("Посортований масив:");
Console.WriteLine();
Vuvid(M);
VMZ(maxP, M);
Console.WriteLine("вектор максимальних значень фронтальних площин: {0} {1} {2}", maxP[0], maxP[1], maxP[2]);
Console.ReadKey(true);
}
//===================================================
//Function
//=====================================================
// vvid---------------------------------------
static void Vvid(double[,][] M)
{
string vvid;
for (int k = 0; k < 3; k++)
{
Console.WriteLine();
Console.WriteLine("{0} - фронтальна площина:", k + 1);
Console.WriteLine();
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; j++)
{
vvid = Console.ReadLine();
M[k, i][j] = Convert.ToDouble(vvid);
}
}
}
//------------------------------
// vuvid---------------------------------------
static void Vuvid(double[,][] M)
{
for (int k = 0; k < 3; k++)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
Console.Write("{0} ", M[k, i][j]);
Console.Write("\t");
}
Console.WriteLine();
}
Console.WriteLine(); Console.WriteLine();
}
}
//------------------------------
// sort---------------------------------------
static void Sort(double[,][] M)
{
double temp;
for (int k = 0; k < 3; k++)
{
for (int t = 0; t < 12; t++)
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (j < 3)
{
if (M[k, i][j] > M[k, i][j + 1])
{
temp = M[k, i][j];
M[k, i][j] = M[k, i][j + 1];
M[k, i][j + 1] = temp;
}
else ;
}
else
{
if (i < 2)
{
if (M[k, i][j] > M[k, i + 1][j - 3])
{
temp = M[k, i + 1][j - 3];
M[k, i + 1][j - 3] = M[k, i][j];
M[k, i][j] = temp;
}
else ;
}
else ;
}
}
}
}
}
//------------------------------
//вектор максимальних значень фронтальних площин
static void VMZ(double[] maxP, double[,][] M)
{
for (int k = 0; k < 3; k++)
{
double max = M[k, 0][0];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (max < M[k, i][j])
max = M[k, i][j];
else ;
}
}
maxP[k] = max;
}
}
//---------------------------------------------
}
Результат роботи програми:
/
Висновок: при виконанні даної лабораторної роботи я навчився реалізовувати програму мовою C#, а саме ввід даних з клавіатури, сортування матриці методом обміну, знаходження вектора максимальних значень фронтальних площин.