Раздел 3. Алгоритмизация задачи
Вводится с клавиатуры размер двумерного массива, а именно: количество строк (n) и количество столбцов (m), и заполняем массив случайными числами, в диапазоне от 0 до 10. Исходная матрица выводится на экран.
Исходный массив отправляем в метод «numberOfColumnsWithZeroElement» для поиска столбцов с нулевым элементом. В методе инициализируется две переменных «Count» и «result». «Count» - для подсчёта нулевых элементов в столбце, а «result» - для подсчёта столбцов, содержащих хоть один нулевой элемент. В цикле проверяются все столбцы, а во внутреннем цикле проверяются элементы столбца. Если проверяемый элемент равен нулю, то счётчик «Count» увеличивается на единицу. Если в столбце есть хоть один нулевой элемент, то счётчик столбцов с нулевым элементом увеличивается на единицу. При переходе на новый столбец счётчик «Count» сбрасывается на ноль. После проверки всех столбцов, результат выполнения метода (количество столбцов содержащих нулевой элемент) возвращается в основную программу и выводится на экран.
В основном методе инициализируются две переменные: «maxEqual» и «row», для записи максимальной последовательности одинаковых элементов и для запоминания строки с этой последовательностью, соответственно. Вызывается метод «numberOfLineSameElement».
В методе проверяется все строки. Во внутреннем цикле проверяются все элементы строки. Если нашли равные элементы, то считаем последовательность. если элементы не равны, то считаем новую последовательность, если полученная последовательность больше найденной, то сохраняем новый результат. если в строке найдена новая последовательность, и она больше последовательностей в других строках, то сохраняем новое значение наибольшей последовательности и запоминаем строку.
После этого возвращаемся в основной метод для вывода результатов.
Раздел 4 Идентификаторы программы
Обозначения параметров |
Смысл параметров |
|
В формулах |
В программе |
|
|
mass [n*m] |
Двумерный массив размерностью n*m. |
|
n
|
количество строк
|
|
m |
количество столбцов |
|
rand |
Переменная для случайных чисел |
|
i |
Индекс строки |
|
g |
Индекс столбца |
|
maxEqual |
Переменная для записи максимальной последовательности |
|
row |
Переменная для запоминания строки |
Таблица 1 – Идентификаторы метода «main»
Раздел 5. Схемы алгоритмов
Метод Main
Рисунок 1- Метод Main
Метод numberOfColumnsWithZeroElement
Рисунок 2- numberOfColumnsWithZeroElement
Метод numberOfLineSameElement
Рисунок 3- Метод numberOfLineSameElement
Раздел 6. Текст программы
Листинг 1 метод Main
Console.WriteLine("vvedite coll-vo strok");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("vvedite coll-vo stolbcov");
int m = int.Parse(Console.ReadLine());
int[,] mass = new int[n, m];
Random rand = new Random();
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
mass[i, j] = rand.Next(0, 10);
Console.Write("{0} ", mass[i, j]);
}
Console.WriteLine();
}
Console.WriteLine("количество столбцов, содержащих нулевой элемент {0}", numberOfColumnsWithZeroElement(mass));
int maxEqual = 0;
int row = -1;
numberOfLineSameElement(mass, ref row, ref maxEqual);
if (row > 0)
Console.WriteLine("Найдена наибольшая серия из {0} элементов в строке № {1}", maxEqual, row);
else Console.WriteLine("Серий одинаковых элементов в строках не найдено");
Console.Read();