Створити статичний клас Array2DHelper, що містить такі методи для двовимірних цілочисельних масивів:
| Метод | Вхідні параметри | Повертане значення | Що робить метод |
|---|---|---|---|
| CreateRandomArray | - | Двовимірний масив array | Заповнює двовимірний масив array випадковими числами. Кількість рядків, стовпчиків і діапазон випадкових значень вводяться з клавіатури |
| PrintArray | Двовимірний масив array | - | Виводить на екран двовимірний масив array |
| SumByRows | Двовимірний масив array | Одномірний масив В | Кожен елемент масиву є сумою всіх елементів відповідного рядка масиву А |
| SumByColumns | Двовимірний масив array | Одномірний масив В | Кожен елемент масиву є сумою всіх елементів відповідного стовпця масив А |
public static class Array2DHelper
{
public static int[,] CreateRandomArray()
{
Random rand = new Random();
Console.WriteLine("Введіть розмірність масиву");
Console.Write("Рядків (n) = ");
int rows = Convert.ToInt32(Console.ReadLine());
Console.Write("Стовпців (m) = ");
int cols = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введіть діапазон значень");
Console.Write("Мінімум (X) = ");
int min = Convert.ToInt32(Console.ReadLine());
Console.Write("Максимум (Y) = ");
int max = Convert.ToInt32(Console.ReadLine());
int[,] array = new int[rows, cols];
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
array[i, j] = rand.Next(min, max + 1);
}
}
return array;
}
public static void PrintArray(int[,] array)
{
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
Console.Write($"{array[i, j],5}");
}
Console.WriteLine();
}
}
}
public static class ArrayConverter
{
///
/// Сумує елементи по рядках (горизонтальна сума)
///
public static int[] SumByRows(int[,] matrix)
{
int rows = matrix.GetLength(0);
int[] result = new int[rows];
for (int i = 0; i < rows; i++)
{
int sum = 0;
for (int j = 0; j < matrix.GetLength(1); j++)
{
sum += matrix[i, j];
}
result[i] = sum;
}
return result;
}
///
/// Сумує елементи по стовпцях (вертикальна сума)
///
public static int[] SumByColumns(int[,] matrix)
{
int cols = matrix.GetLength(1);
int[] result = new int[cols];
for (int j = 0; j < cols; j++)
{
int sum = 0;
for (int i = 0; i < matrix.GetLength(0); i++)
{
sum += matrix[i, j];
}
result[j] = sum;
}
return result;
}
}
Створити статичний клас Array1DUtils, що містить такі методи для одновимірних цілих масивів:
| Метод | Вхідні параметри | Повертане значення | Що робить метод |
|---|---|---|---|
| PrintArray | Одномірний масив array | - | Виводить одновимірний масив у консоль |
| CountSingleDigitNumbers | Одномірний масив array | Ціло число | Підраховує кількість одноцифрових чисел у масиві |
| HalveEvenNumbers | Одномірний масив array | - | Зменшує парні числа у масиві вдвічі |
public static class Array1DUtils
{
///
/// Виводить одновимірний масив у консоль
///
public static void PrintArray(int[] array)
{
Console.WriteLine(string.Join(" ", array));
}
///
/// Підраховує кількість одноцифрових чисел у масиві
///
public static int CountSingleDigitNumbers(int[] array)
{
int count = 0;
foreach (int num in array)
{
if (num >= -9 && num <= 9) // Враховуємо від'ємні одноцифрові числа
count++;
}
return count;
}
///
/// Зменшує парні числа у масиві вдвічі
///
public static void HalveEvenNumbers(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 2 == 0)
array[i] /= 2;
}
}
}
У класі Program:
static void Main(string[] args)
{
// 1. Створення та виведення двовимірного масиву
int[,] matrix2D = Array2DHelper.CreateRandomArray();
Console.WriteLine("Початковий двовимірний масив:");
Array2DHelper.PrintArray(matrix2D);
// 2. Обробка за рядками
int[] rowSums = Array2DHelper.SumByRows(matrix2D);
Console.WriteLine("\nОдновимірний масив (суми по рядкам):");
Array1DUtils.PrintArray(rowSums);
int singleDigitCount = Array1DUtils.CountSingleDigitNumbers(rowSums);
Console.WriteLine($"Кількість одноцифрових чисел: {singleDigitCount}");
// 3. Обробка за стовпцями
int[] colSums = Array2DHelper.SumByColumns(matrix2D);
Console.WriteLine("\nОдновимірний масив (суми по стовпцям):");
Array1DUtils.PrintArray(colSums);
Array1DUtils.HalveEvenNumbers(colSums);
Console.WriteLine("Масив після зміни парних чисел (поділ на 2):");
Array1DUtils.PrintArray(colSums);
Console.ReadKey();
}
Результат:
Початковий двовимірний масив:
10 15 20
25 30 35
40 45 50
Одновимірний масив (суми по рядкам):
45 90 135
Кількість одноцифрових чисел: 0
Одновимірний масив (суми по стовпцям):
75 90 105
Масив після зміни парних чисел (поділ на 2):
37 45 52
Створити статичний клас DimTwo, що містить статичні методи для двовимірних масивів: Input, Print, Metod1, Metod2.
Створити статичний клас DimOne, що містить статичні методи для одновимірних масивів: Print, Metod3, Metod4
У класі, що тестує:
| Варіант | Metod1 | Metod2 | Metod3 | Metod4 |
|---|---|---|---|---|
| 1 | Кожен елемент масиву B є сумою парних елементів відповідного рядка масиву А | Кожен елемент масиву B є кількістю додатних елементів відповідного стовпця масиву А | Знаходить у масиві B індекс першого числа, яке закінчується цифрою 2. Якщо таких чисел немає, повертає -1. | У масиві B збільшити значення всіх чисел на 1 |
| 2 | Кожен елемент масиву B є кількістю від'ємних елементів відповідного рядка масиву А | Кожен елемент масиву B є сумою непарних елементів відповідного стовпця масиву А | Знаходить у масиві В індекс першого числа, що дорівнює 0. Якщо таких чисел немає, повертає -1. | У масиві В поміняти знак усіх чисел на протилежний |
| 3 | Кожен елемент масиву B є добутком непарних елементів відповідного рядка масиву А | Кожен елемент масиву B є кількістю двозначних елементів відповідного стовпця масиву А | Знаходить у масиві В індекс першого числа, яке закінчується цифрою 1. Якщо таких чисел немає, повертає -1. | У масиві B всі 0 замінити на 1 |
| 4 | Кожен елемент масиву B є кількістю двозначних елементів відповідного рядка масиву А | Кожен елемент масиву B є добутком додатних елементів відповідного стовпця масиву А | Знаходить у масиві В індекс першого числа, що дорівнює 0. Якщо 0 немає, повертає -1. | У масиві B всі непарні числа помножити на 2 |
| 5 | Кожен елемент масиву В дорівнює true, якщо у відповідному рядку масиву А всі числа однозначні і дорівнює false в іншому випадку | Кожен елемент масиву B є мінімальним числом (першим) відповідного стовпця масиву А | Знаходить у масиві B Кількість значень true | У масиві B всі однозначні числа помножити на 10 |
| 6 | Кожен елемент масиву В дорівнює true, якщо у відповідному рядку масиву А є однозначні числа і дорівнює false у противному випадку | Кожен елемент масиву B є максимальним числом (першим) відповідного стовпця масиву А | Знаходить у масиві B Кількість значень false | У масиві B всі числа кратні 3 розділити на 3 |
| 7 | Кожен елемент масиву B дорівнює true, якщо у відповідному рядку масиву А всі числа додатні і дорівнює false в іншому випадку | Кожен елемент масиву B є сумою однозначних чисел відповідного стовпця масиву А | Знаходить у масиві B Кількість значень true | У масиві В усі від'ємні числа замінити на протилежні за знаком |
| 8 | Кожен елемент масиву В дорівнює true, якщо у відповідному рядку масиву А є двозначні числа і дорівнює false в іншому випадку | Кожен елемент масиву B є сумою від'ємних чисел відповідного стовпця масиву А | Знаходить у масиві B Кількість значень false | У масиві B всі числа кратні 5 розділити на 5 |
| 9 | Масив В є останнім рядком масиву А, в якому парних чисел більше, ніж непарних | Кожен елемент масиву B є кількістю однозначних чисел відповідного стовпця масиву А | Знаходить у масиві В індекс першого максимального числа. | У масиві B всі непарні числа помножити на 2 |
| 10 | Масив В є першим рядком масиву А, в якому додатних чисел більше, ніж від'ємних | Кожен елемент масиву B є сумою від'ємних чисел відповідного стовпця масиву А | Знаходить у масиві В індекс першого двозначного числа. Якщо двозначних чисел немає, повертає -1. | У масиві B всі парні числа поділити на 2 |
| 11 | Масив В є останнім рядком масиву А, в якому найменша кількість однозначних чисел | Масив В є першим стовпчиком, в якому парних чисел більше, ніж непарних | Знаходить у масиві В індекс першого простого числа. Якщо простих чисел немає, то повертає -1. | У масиві B всі числа паліндроми замінити 0 |
| 12 | Масив В є останнім рядком масиву А, в якому найбільша кількість парних чисел | Масив В є першим стовпчиком, в якому однозначних чисел більше, ніж не однозначних. | Знаходить у масиві В індекс першого числа паліндрому. Якщо паліндромів немає, повертає -1. | У масиві B всі прості числа замінити 0 |
Визначимо клас Cats, який моделює ситуацію, коли безліч альбомів із фотографіями котиків ділять між собою пам'ять телефону. Для різних котиків різні альбоми.
Клас містить:
У класі Program:
Між Землею та Марсом налагоджений транспортний маршрут, яким кожне протистояння необхідно доставити 100000 тонн вантажу.
Відомо, що один корабель виходить із ладу, доставивши 3500 тонн вантажу.
Потрібно створити клас, що моделює поведінку кількох кораблів у такому режимі роботи, причому спочатку є два кораблі, а при виході обох з ладу збирається додатково на один корабель більше (тобто після доставки 7000 тонн створюється вже 3 корабля, і т.д. .д.), крім випадку, коли так багато кораблів не потрібно (наприклад, якщо після завершення циклу роботи п'яти кораблів залишається 4000 тонн вантажу для доставки, то створюється не 6 кораблів, а 2, оскільки їх буде достатньо виконання завдання).
Наприкінці вивести кількість збудованих кораблів.