Назад Вперед Зміст

Приклад

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Клас Ar

Поля

public class Ar
{
    // Поля класу
    private int n;          // Кількість чисел у масиві
    private int[] a;        // Одновимірний масив
    private int negativeCount;  // Кількість від'ємних чисел у масиві

Перший конструктор

public Ar(int n, int x) { // Конструктор 1 // Створюємо порожній масив розміром n елементів this.n = n; a = new int[n]; // Заповнюємо масив випадковими числами Random rand = new Random(); for (int i = 0; i < n; i++) a[i] = rand.Next(-x, x + 1); // x+1 щоб включно з верхньою межею }

Другий конструктор

public Ar(string filePath)
{
    // Конструктор 2
    // Заповнює масив числами з текстового файлу
    // По одному числу на кожному рядку
    
    // Перше читання - підрахунок кількості чисел
    int count = 0;
    using (StreamReader reader = new StreamReader(filePath))
    {
        while (!reader.EndOfStream)
        {
            reader.ReadLine();
            count++;
        }
    }

    // Створюємо масив потрібного розміру
    n = count;
    a = new int[n];

    // Друге читання - заповнення масиву
    using (StreamReader reader = new StreamReader(filePath))
    {
        for (int i = 0; i < n; i++)
        {
            string line = reader.ReadLine();
            a[i] = Convert.ToInt32(line);
        }
    }
}

Властивості

public int N
{
    // Властивість для читання кількості елементів (n)
    get { return n; }
}
public int NegativeCount
{
    // Властивість для підрахунку від'ємних чисел
    get
    {
        int count = 0;
        for (int i = 0; i < n; i++)
        {
            if (a[i] < 0) count++;
        }
        return count;
    }
}

Метод FindMaxIndex

public int FindMaxIndex()
{
    // Метод для знаходження індексу максимального елемента масиву
    int maxIndex = 0;
    int maxValue = a[0];
    
    for (int i = 1; i < n; i++)
    {
        if (a[i] > maxValue)
        {
            maxValue = a[i];
            maxIndex = i;
        }
    }
    
    return maxIndex;
}

Метод Print

public void Print()
{
    // Метод для виведення масиву на екран
    Console.WriteLine();
    
    for (int i = 0; i < n; i++)
    {
        Console.Write(" {0} ", a[i]);
    }
    
    Console.WriteLine();
}

Метод Pr

public int Product(int startIndex, int endIndex)
{
    // Обчислює добуток елементів масиву
    // в діапазоні індексів від startIndex до endIndex (включно)
    int product = 1;
    
    for (int i = startIndex; i <= endIndex; i++)
    {
        product *= a[i];
    }
    
    return product;
}

Клас Program

static void Main(string[] args)
{
    // Ініціалізація об'єкта масиву
    Ar array;
    
    // Вибір конструктора
    Console.Write("Оберіть конструктор (1/2) --> ");
    int choice = Convert.ToInt32(Console.ReadLine());
    
    if (choice == 1)
    {
        // Конструктор 1 - заповнення випадковими числами
        Console.Write("Введіть кількість чисел --> ");
        int count = Convert.ToInt32(Console.ReadLine());
        array = new Ar(count, 10);
    }
    else
    {
        // Конструктор 2 - зчитування з файлу
        array = new Ar("data.txt");
    }
    
    // Виведення масиву
    array.Print();
    
    // Підрахунок від'ємних чисел
    int negativeCount = array.NegativeCount;
    Console.WriteLine("Кількість від'ємних чисел = {0}", negativeCount);
    
    // Знаходження індексу максимального елемента
    int maxIndex = array.FindMaxIndex();
    Console.WriteLine("Індекс максимального елемента: {0}", maxIndex);
    
    // Обчислення добутку елементів після максимального
    if (maxIndex != array.Count - 1)
    {
        int product = array.Product(maxIndex + 1, array.Count - 1);
        Console.WriteLine("Добуток елементів після максимального = {0}", product);
    }
    else
    {
        Console.WriteLine("Максимальний елемент останній. Добуток не обчислюється.");
    }
    
    Console.ReadKey();
}

Результати тестування проекту "Обробка масивів"

№ тесту Тестовий сценарій Вхідні дані Очікуваний результат Фактичний результат Статус Примітки
1 Ініціалізація масиву (Конструктор 1) n=5, x=10 Масив з 5 випадкових чисел (-10 до 10) Масив з 5 чисел у вказаному діапазоні Успішно Перевірка генерації випадкових чисел
2 Ініціалізація масиву (Конструктор 2) Файл data.txt з числами Масив з чисел з файлу Масив містить числа з файлу Успішно Перевірка читання з файлу
3 Підрахунок від'ємних чисел Масив: [3, -2, 0, -5, 4] 2 від'ємних числа 2 Успішно Коректний підрахунок
4 Пошук максимального елемента Масив: [3, 7, 2, 9, 4] Індекс 3 (значення 9) Індекс 3 Успішно Коректне визначення індексу
5 Обчислення добутку після максимального Масив: [2, 5, 1, 8, 3, 4] Добуток 3*4=12 12 Успішно Коректні обчислення
6 Максимальний елемент останній Масив: [2, 3, 1, 5] Повідомлення про неможливість обчислення Повідомлення виведено Успішно Коректна обробка граничного випадку
7 Обробка некоректного вводу Введення "abc" замість числа Повідомлення про помилку Повідомлення виведено Успішно Коректна обробка винятків

Висновки:

Варіанти завдань

Варіант 1

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 2

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 3

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 4

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 5

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 6

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 7

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 8

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 9

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 10

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 11

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 12

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 13

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 14

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 15

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 16

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Варіант 17

Описати клас Ar для роботи з одновимірним масивом:

Закриті поля класу:

Реалізувати методи:

У методі Main класу Program:

Назад Вперед Зміст