Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб. 3 УКПО

.docx
Скачиваний:
0
Добавлен:
25.01.2026
Размер:
369.95 Кб
Скачать

Лабораторная работа №3

Метрики Чепина

Код:

using System;

namespace KURS_4_C_SHARP

{

class Program

{

static int[,] CreateMatrix(int N, int M)

{

int[,] matrix = new int[N, M];

Random random = new Random();

for (int i = 0; i < N; i++)

{

for (int j = 0; j < M; j++)

{

matrix[i, j] = random.Next(0,2);

}

}

return matrix;

}

static List<int> CheckAlternation(int[,] matrix)

{

List<int> result = new List<int>();

for (int j = 0; j < matrix.GetLength(1); j++)

{

int prev = -1;

bool flag = true;

for (int i = 0; i < matrix.GetLength(0); i++)

{

if (matrix[i, j] == prev) { flag = false; break; }

prev = matrix[i, j];

}

if (flag) result.Add(j);

}

return result;

}

static void PrintMatrix(int[,] matrix)

{

Console.WriteLine("Двухмерный массив:");

for (int i = 0; i < matrix.GetLength(0); i++)

{

for (int j = 0; j < matrix.GetLength(1); j++)

{

Console.Write(matrix[i, j] + " ");

}

Console.WriteLine();

}

}

static void Main()

{

Console.Write("Введите количество строк: ");

string NString = Console.ReadLine();

Console.Write("Введите количество столбцов: ");

string MString = Console.ReadLine();

int N, M;

if (!int.TryParse(NString, out N)) { Console.WriteLine("Ошибка: Введённое значение для кол-ва строк не является целым числом!"); return; }

if (!int.TryParse(MString, out M)) { Console.WriteLine("Ошибка: Введённое значение для кол-ва столбцов не является целым числом!"); return; }

if (N < 1) { Console.WriteLine("Ошибка: Количество строк должно быть натуральным числом!"); return; }

if (M < 1) { Console.WriteLine("Ошибка: Количество столбцов должно быть натуральным числом!"); return; }

int[,] matrix = CreateMatrix(N, M);

List<int> result = CheckAlternation(matrix);

if (result.Count != 0)

{

Console.Write("Номера столбцов, для которых выполняется условие чередования: ");

for(int i = 0; i < result.Count; i++)

{

Console.Write($"{result[i]} ");

}

Console.WriteLine();

}

PrintMatrix(matrix);

}

}

}

Результат анализа объявленных переменных:

Расчёт метрики Чепина:

Q = 4 + 2 * 2 + 3 * 3 + 0,5 * 0 = 17

Вывод:

На основе полученных значений метрики Чепина уровень сложности данного решения можно считать сравнительно низким, так как в исходном тексте программы используется незначительное количество переменных, что не затрудняет понимание программы.

Соседние файлы в предмете Управление качеством программного обеспечения