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

Завдання на класи з властивостями

Приклад

Розглянемо той самий клас Triangle, що описує трикутник за трьома його сторонами. Закриті поля класу – a, b, с - сторони трикутника. Реалізувати методи:

  1. Без конструктора. Використовуватиметься конструктор за замовчуванням.
  2. Властивості для надання значення всім полям. При заповненні полів перевірте значення. Якщо число додатне, то присвоювання виконувати. Якщо ні, то присвоювання не виконувати, а виводити повідомлення.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Трикутник існує, якщо довжина кожної сторони менша від суми довжин двох інших сторін.
  4. Метод без параметрів Perimetr, який обчислює периметр трикутника.
  5. Метод без параметрів Sqr, який обчислює площу трикутника.
  6. Метод без параметрів Print, що виводить на екран значення полів.
internal class Triangle
public class Triangle
{
    private double a, b, c; // Поля класу
    public double A // Властивість для сторони A
    {
        set
        {
            if (value > 0) a = value;
            else Console.WriteLine("Помилка: сторона A не може бути від'ємною або нульовою");
        }
    }
    public double B // Властивість для сторони B
    {
        set
        {
            if (value > 0) b = value;
            else Console.WriteLine("Помилка: сторона B не може бути від'ємною або нульовою");
        }
    }
    public double C // Властивість для сторони C
    {
        set
        {
            if (value > 0) c = value;
            else Console.WriteLine("Помилка: сторона C не може бути від'ємною або нульовою");
        }
    }
    public bool IsValid() // Метод перевірки існування трикутника
    {
        return (a + b > c) && (a + c > b) && (b + c > a);
    }
    public void Print() // Метод виведення даних
    { 
        Console.WriteLine("Сторони трикутника: a={0}, b={1}, c={2}", a, b, c); 
    }
    public double Perimeter() // Метод обчислення периметра
    {
        return a + b + c;
    }
    public double Area() // Метод обчислення площі
    {
        double p = Perimeter() / 2;
        return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
    }
}

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

internal class Triangle
using System;

class Program
{
    static void Main(string[] args)
    {
        double x, y, z;
        try
        {
            // Введення сторін трикутника
            Console.Write("Введіть x = "); 
            x = Convert.ToDouble(Console.ReadLine());
            
            Console.Write("Введіть y = "); 
            y = Convert.ToDouble(Console.ReadLine());
            
            Console.Write("Введіть z = "); 
            z = Convert.ToDouble(Console.ReadLine());

            // Створення об'єкта
            Triangle t = new Triangle();
            
            // Присвоєння значень через властивості
            t.A = x; 
            t.B = y; 
            t.C = z;
            
            // Виведення значень сторін
            t.Print();

            // Перевірка існування трикутника
            if (t.IsValid()) // Якщо трикутник існує
            {
                // Обчислення параметрів
                double p = t.Perimeter();
                double s = t.Area();
                
                // Виведення результатів
                Console.WriteLine("Периметр = {0}, Площа = {1:F3}", p, s);
            }
            else // Якщо трикутник не існує
            {
                Console.WriteLine("Такий трикутник не існує");
            }
        }
        catch
        {
            // Обробка інших можливих помилок
            Console.WriteLine("Помилка введення даних!");
        }
        
        Console.ReadKey();
    }
}

Результати тестування проекту "Трикутник"

№ тесту Вхідні дані (a, b, c) Очікуваний результат Фактичний результат Статус Примітки
1 3, 4, 5 Периметр = 12, Площа ≈ 6.000 Периметр = 12, Площа = 6.000 ✅ Успішно Прямокутний трикутник
2 5, 5, 5 Периметр = 15, Площа ≈ 10.825 Периметр = 15, Площа ≈ 10.825 ✅ Успішно Рівносторонній трикутник
3 5, 5, 10 "Такий трикутник не існує" "Такий трикутник не існує" ✅ Успішно Сума двох сторін дорівнює третій
4 0, 4, 5 "Помилка: сторона не може бути від'ємною або нульовою" "Помилка: сторона A не може бути від'ємною або нульовою" ✅ Успішно Нульова сторона
5 -2, 3, 4 "Помилка: сторона не може бути від'ємною або нульовою" "Помилка: сторона A не може бути від'ємною або нульовою" ✅ Успішно Від'ємна сторона
6 1, 1, 3 "Такий трикутник не існує" "Такий трикутник не існує" ✅ Успішно Невиконується нерівність трикутника
7 "abc", 2, 3 "Помилка введення даних!" "Помилка введення даних!" ✅ Успішно Некоректний тип даних
8 7.5, 10.2, 12.8 Периметр ≈ 30.5, Площа ≈ 38.151 Периметр = 30.5, Площа ≈ 38.151 ✅ Успішно Дробові значення

Висновки:

1. Позитивне тестування (тести 1, 2, 8):
Програма коректно обчислює периметр і площу для валідних трикутників.

2. Негативне тестування (тести 3, 4, 5, 6):
Система правильно виявляє неіснуючі трикутники та обробляє некоректні значення сторін.

3. Тестування на межових значеннях (тести 3, 4):
Коректна робота з нульовими та граничними значеннями (a + b = c).

4. Обробка винятків (тест 7):
Програма стабільно реагує на некоректне введення даних.

Загальний результат: Проект успішно пройшов усі тести. Код коректно реалізує всі заявлені функції згідно з технічним завданням.

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

Варіант 1

Створити клас Rectangle, що описує прямокутник за двома його сторонами. Закриті поля класу – a та b сторони прямокутника. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень сторонам.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Об'єкт існує, якщо значення полів є позитивними.
  4. Метод без параметрів Area, який обчислює площу прямокутника.
  5. Метод без параметрів Perimeter, який обчислює периметр прямокутника.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 2

Створити клас Shar, що описує кулю за її радіусом. Закрите поле класу – r радіус. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивість, в якій виконується надання значення радіусу.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Об'єкт існує, якщо значення поля є додатним.
  4. Метод без параметрів Area, який обчислює площу поверхні кулі.
  5. Метод без параметрів Volume, який обчислює об'єм кулі.
  6. Метод без параметрів Print, що відображає значення поля.

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

Варіант 3

Створити клас Cube, що описує куб по його ребру. Закрите поле класу – ребро куба. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивість, в якій виконується надання значення ребру.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Куб існує, якщо його ребро додатне.
  4. Метод без параметрів Area, який обчислює площу повної поверхні куба.
  5. Метод без параметрів Volume, який обчислює об'єм куба.
  6. Метод без параметрів Print, що відображає значення поля.

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

Варіант 4

Створити клас Circle, що описує коло за його радіусом. Закрите поле класу – r радіус. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивість, в якій виконується надання значення радіусу.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Коло існує, якщо його радіус додатний.
  4. Метод без параметрів Area, який обчислює площу кола.
  5. Метод без параметрів Length, який обчислює довжину кола.
  6. Метод без параметрів Print, що відображає значення поля.

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

Варіант 5

Створити клас Square, що описує квадрат за його стороною. Закрите поле класу – сторона квадрата. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивість, в якій виконується надання значення стороні.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Квадрат існує, якщо його сторона є додатною.
  4. Метод без параметрів Area, який обчислює площу квадрата.
  5. Метод без параметрів Perimeter, який обчислює периметр квадрата.
  6. Метод без параметрів Print, що відображає значення поля.

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

Варіант 6

Створити клас Cylinder, що описує циліндри. Закриті поля класу: r – радіус, h – висота. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Циліндр існує, якщо його радіус та висота додатні.
  4. Метод без параметрів Area, який обчислює площу повної поверхні циліндра.
  5. Метод без параметрів Volume, який обчислює об'єм циліндра.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 7

Створити клас Parallelepiped який описує паралелепіпеди по трьох сторонах. Закриті поля класу – a, b, c - ребра. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Паралелепіпед існує, якщо його ребра додатні.
  4. Метод без параметрів Area, який обчислює площу повної поверхні паралелепіпеда.
  5. Метод без параметрів Volume, який обчислює об'єм паралелепіпеда.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 8

Створити клас Number. Закрите поле класу – це натуральне число. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивість, в якій виконується надання значення полю.
  3. Логічний метод Correct, який перевіряє, чи є число натуральним. Якщо число є додатним, то об'єкт існує.
  4. Метод без параметрів Prime, який визначає чи є число простим.
  5. Метод без параметрів Palindrome, який визначає чи є число паліндромом.
  6. Метод без параметрів Print, що відображає значення поля.

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

Варіант 9

Створити клас Triangle, що описує трикутник по трьох його сторонах. Закриті поля класу – a, b та c – сторони трикутника. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості для надання значення всім полям. При заповненні полів перевірте значення. Якщо число додатне, то привласнення виконувати. Якщо ні, то привласнення не виконувати, а виводити повідомлення.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Трикутник існує, якщо довжина кожної сторони менша від суми довжин двох інших сторін.
  4. Метод без параметрів Corners, який обчислює кути трикутника за його сторонами. Метод повинен повертати три значення: кути трикутника у градусах.
    Зауваження: Спочатку визначити косинуси кутів, по них отримати кути в радіанах, потім радіани перевести в градуси.
  5. Метод без параметрів Perimeter, який обчислює периметр трикутника.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 10

Створити клас Rhombus, що описує ромб за двома його діагоналями. Закриті поля класу – a та b - діагоналі ромба. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Ромб існує, якщо його довжини діагоналей додатні.
  4. Метод без параметрів Area, який обчислює площу ромба.
  5. Метод без параметрів Side, який обчислює сторону ромба.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 11

Створити клас Equal з двома числовими полями A та B. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Func з одним параметром, що обчислює y=Ax+B для x заданого в параметрі;
  4. Root, що вирішує лінійне рівняння Ax=B. Метод повинен повертати рядок, який містить значення кореня або повідомлення, що коріння немає або їх нескінченно багато.
  5. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 12

Створити клас Numbers. Закриті поля класу: a, b -- два натуральних числа. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Логічний метод Correct, який перевіряє, чи є числа натуральними. Якщо числа додатні, об'єкт існує.
  4. Метод без параметрів Nod, який обчислює найбільший спільний дільник цих чисел.
  5. Метод без параметрів Nok, який обчислює найменше спільне кратне цих чисел.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 13

Створити клас Date, який описує дату. Закриті поля класу – year, month, day–рік, місяць та число. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Метод без параметрів IsValid, який перевіряє, чи можлива така дата. Метод повертає значення логічного типу.
  4. Метод без параметрів Plus1, який збільшує дату на 1 день.
  5. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 14

Створити клас Time, що описує час. Закриті поля класу – hour, min, sec – години, хвилини та секунди. Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Метод без параметрів IsValid, який перевіряє, чи можливий такий час. Метод повертає значення логічного типу.
  4. Метод без параметрів Plus1, який збільшує час на 1 секунду.
  5. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 15

Створити клас Vector. Закриті поля класу – координати кінців вектора (x1, y1, x2, y2). Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Логічний метод Correct, який перевіряє, чи вектор не виродився в крапку. Тобто, якщо x1=x2 та y1=y2, то об'єкт не існує.
  4. Метод Length без параметрів, що обчислює довжину вектора.
  5. Метод Koord - отримання координат вектора координатами його кінців. У методі має бути два значення, що повертаються. Координати вектора рівні різниці відповідних координат точок його кінця та початку.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 16

Створити клас Angle для роботи з кутами на площині. Закриті поля класу – величина кута у градусах (grad) та хвилинах (min). Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Будемо вважати, що кут існує, якщо 0<grad<360 і 0<min<60
  4. Метод Rad-переводить значення кута в градусах і хвилинах в радіани;
  5. Метод Psin обчислює значення синуса цього кута.
  6. Метод без параметрів Print, що виводить на екран значення полів.

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

Варіант 17

Створити клас Point для роботи з точками на площині. Закриті поля класу координати точки (x, y). Реалізувати методи:

  1. Без конструктора. Використовувати стандартний конструктор.
  2. Властивості, в яких виконується надання значень полям.
  3. Метод Dist без параметрів, що знаходить відстань від точки до початку координат;
  4. Метод Fourth без параметрів і повертає рядок з номером чверті координатної площини (або осі), в якій знаходиться точка.
  5. Метод без параметрів Print, що виводить на екран значення полів.

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

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