Прості завдання на класи
Приклад
Створити клас Triangle, що описує трикутник по трьох його сторонах.
Закриті поля класу – a, b, с - сторони трикутника. Реалізувати методи:
- Конструктор із трьома параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Трикутник існує, якщо довжина кожної сторони додатна і менша від суми довжин двох інших сторін.
- Метод без параметрів Perimetr, який обчислює периметр трикутника.
- Метод без параметрів Sqr, який обчислює площу трикутника.
- Метод без параметрів Print, що виводить на екран значення полів.
Клас Triangle у C#
Цей приклад демонструє створення простого класу Triangle, що представляє трикутник із трьома сторонами. Клас містить:
- Конструктор із параметрами
- Метод для обчислення периметра
- Метод для обчислення площі (за формулою Герона)
Код програми
class Triangle
{
double a, b, c;
public Triangle(double a, double b, double c) // конструктор класу
{
this.a = a;
this.b = b;
this.c = 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));
}
public void Print() // метод для виведення інформації
{
Console.WriteLine("Сторони трикутника: a={0}, b={1}, c={2}", a, b, c);
Console.WriteLine("Периметр = " + Perimeter());
Console.WriteLine("Площа = " + Area());
}
}
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора з параметрами;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
class Program
{
static void Main(string[] args)
{
double sideA, sideB, sideC;
try
{
// Введення сторін трикутника
Console.Write("Сторона a = ");
sideA = Convert.ToDouble(Console.ReadLine());
Console.Write("Сторона b = ");
sideB = Convert.ToDouble(Console.ReadLine());
Console.Write("Сторона c = ");
sideC = Convert.ToDouble(Console.ReadLine());
// Створення об'єкта трикутника
Triangle triangle = new Triangle(sideA, sideB, sideC);
// Виведення інформації про трикутник
triangle.Print();
// Перевірка існування трикутника
if (triangle.IsValid()) // Трикутник існує
{
// Обчислення параметрів
double perimeter = triangle.CalculatePerimeter();
double area = triangle.CalculateArea();
// Виведення результатів
Console.WriteLine("Периметр = {0}\nПлоща = {1:F3}", perimeter, area);
}
else // Трикутник не існує
{
Console.WriteLine("Трикутник з такими сторонами не існує");
}
}
catch
{
// Обробка інших можливих помилок
Console.WriteLine("Сталася помилка при введенні даних!");
}
Console.WriteLine("Натисніть будь-яку клавішу для виходу...");
Console.ReadKey();
}
}
Відпрацювання без винятків:
Тестування програми
| Вхідні значення |
Очікуваний периметр |
Очікувана площа |
| a = 3, b = 4, c = 5 |
12 |
6 |
| a = 6, b = 8, c = 10 |
24 |
24 |
| a = 5, b = 5, c = 6 |
16 |
12 |
Висновки
Клас Triangle є прикладом інкапсуляції в об'єктно-орієнтованому програмуванні. Завдяки методам Perimeter та Area ми можемо легко отримати геометричні характеристики трикутника, а метод Print дозволяє виводити інформацію у зручному вигляді.
Варіанти завдань
Варіант 1
Створити клас Circle, що описує коло за його радіусом. Закрите поле класу – r радіус. Реалізувати методи:
- Конструктор з параметром, що надає значення його полю;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Коло існує, якщо його радіус додатний.
- Метод без параметрів Area, який обчислює площу кола.
- Метод без параметрів Length, який обчислює довжину кола.
- Метод без параметрів Print, що відображає значення поля.
У методі Main класу Program:
- Ввести з клавіатури значення поля класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення поля на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 2
Створити клас Square, що описує квадрат за його стороной. Закрите поле класу – сторона квадрата. Реалізувати методи:
- Конструктор з параметром, що надає значення його полю;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Квадрат існує, якщо його сторона є додатною.
- Метод без параметрів Area, який обчислює площу квадрата.
- Метод без параметрів Perimeter, який обчислює периметр квадрата.
- Метод без параметрів Print, що відображає значення поля.
У методі Main класу Program:
- Ввести з клавіатури значення поля класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення поля на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 3
Створити клас Rectangle, що описує прямокутник за довжинами двох його сторін. Закриті поля класу – a та b сторони прямокутника. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Прямокутник існує, якщо його сторони є додатними.
- Метод без параметрів Area, який обчислює площу прямокутника.
- Метод без параметрів Perimeter, який обчислює периметр прямокутника.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 4
Створити клас Cube, що описує куб по його ребру. Закрите поле класу – ребро куба. Реалізувати методи:
- Конструктор з параметром, що надає значення його полю;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Куб існує, якщо його ребро додатне.
- Метод без параметрів Area, який обчислює площу повної поверхні куба.
- Метод без параметрів Volume, який обчислює об'єм куба.
- Метод без параметрів Print, що відображає значення поля.
У методі Main класу Program:
- Ввести з клавіатури значення поля класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення поля на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 5
Створити клас Shar, що описує кулю за її радіусом. Закрите поле класу – r радіус. Реалізувати методи:
- Конструктор з параметром, що надає значення його полю;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Куля існує, якщо її радіус додатний.
- Метод без параметрів Area, який обчислює площу поверхні кулі.
- Метод без параметрів Volume, який обчислює об'єм кулі.
- Метод без параметрів Print, що відображає значення поля.
У методі Main класу Program:
- Ввести з клавіатури значення поля класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення поля на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 6
Створити клас Parallelepiped який описує паралелепіпеди по трьох ребрах. Закриті поля класу – a, b, c -- ребра. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Паралелепіпед існує, якщо його ребра додатні.
- Метод без параметрів Area, який обчислює площу поверхні паралелепіпеда.
- Метод без параметрів Volume, який обчислює об'єм паралелепіпеда.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 7
Створити клас Cylinder, що описує циліндри. Закриті поля класу: r – радіус, h – висота. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Циліндр існує, якщо його радіус та висота додатні.
- Метод без параметрів Area, який обчислює площу повної поверхні циліндра.
- Метод без параметрів Volume, який обчислює об'єм циліндра.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 8
Створити клас Triangle, що описує трикутник по трьох його сторонах. Закриті поля класу – a, b та c сторони трикутника. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт. Трикутник існує, якщо довжина кожної сторони додатна і менша від суми довжин двох інших сторін.
- Метод без параметрів Corners, який обчислює кути трикутника за його сторонами.
Метод повинен повертати три значення: кути трикутника у градусах.
Зауваження: Спочатку визначити косинуси кутів, по них отримати кути в радіанах, потім радіани перевести в градуси.
- Метод без параметрів Perimeter, який обчислює периметр трикутника.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 9
Створити клас Rombus, що описує ромб за двома його діагоналями. Закриті поля класу – a та b діагоналі ромба. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Ромб існує, якщо його довжини діагоналей додатні.
- Метод без параметрів Area, який обчислює площу ромба.
- Метод без параметрів Side, який обчислює сторону ромба.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 10
Створити клас Number. Закрите поле класу – це натуральне число. Реалізувати методи:
- Конструктор з параметром, що надає значення його полю;
- Логічний метод Correct, який перевіряє, чи є число натуральним.
Якщо число є додатним, то об'єкт існує.
- Метод без параметрів Prime, який визначає чи є число простим.
- Метод без параметрів Palindrome, який визначає чи є число паліндромом.
- Метод без параметрів Print, що відображає значення поля.
У методі Main класу Program:
- Ввести з клавіатури значення поля класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення поля на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 11
Створити клас Numbers. Закриті поля класу – a, b два натуральні числа. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи є числа натуральними. Якщо числа додатні, об'єкт існує.
- Метод без параметрів Nod, який обчислює найбільший спільний дільник цих чисел.
- Метод без параметрів Nok, який обчислює найменше спільне кратне цих чисел.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 12
Створити клас Vector. Закриті поля класу – координати кінців вектора (x1, y1, x2, y2). Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи вектор не виродився в крапку. Тобто, якщо x1=x2 та y1=y2, то об'єкт не існує.
- Метод Length без параметрів, що обчислює довжину вектора.
- Метод Koord - отримання координат вектора за координатами його кінців. У методі має бути два значення, що повертаються.
Координати вектора рівні різниці відповідних координат точок його кінця та початку.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 13
Створити клас Angle для роботи з кутами на площині. Закриті поля класу – величина кута у градусах (grad)
та хвилинах (min). Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Логічний метод Correct, який перевіряє, чи може існувати такий об'єкт.
Будемо вважати, що кут існує, якщо 0<grad<360 і 0<min<60
- Метод Rad-переводить значення кута в градусах і хвилинах в радіани;
- Метод Psin обчислює значення синуса цього кута.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод Correct, який перевіряє існування такого об'єкта.
- Якщо такий об'єкт може існувати, то застосувати до нього інші методи класу та вивести на екран отримані значення
- Якщо об'єкт існувати не може, вивести відповідне повідомлення
- Всю програму помістити у блок try. Блок catch повинен містити спільне повідомлення про решту помилок.
Варіант 14
Створити клас Point для роботи з точками на площині. Закриті поля класу координати точки (x, y). Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Метод Dist без параметрів, що знаходить відстань від точки до початку координат;
- Метод Fourth без параметрів і повертає рядок з номером чверті координатної площини (або осі), в якій знаходиться точка.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта методи класу;
- Вивести на екран отримані значення.
- Всю програму помістити у блок try. Блок catch повинен мати спільне повідомлення про помилки.
Варіант 15
Створити клас Equal з двома числовими полями A та B. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Func з одним параметром, що обчислює та повертає y=Ax+B для x заданого в параметрі;
- Root, що вирішує лінійне рівняння Ax=B.
Метод повинен повертати рядок, який містить значення кореня або повідомлення, що коріння немає або їх нескінченно багато.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Ввести з клавіатури значення X;
- Застосувати до створеного об'єкта метод Func класу та вивести на екран результат;
- Вирішити рівняння - застосувати до створеного об'єкта метод Root
- Вивести на екран отримані значення
- Всю програму помістити у блок try. Блок catch повинен мати спільне повідомлення про помилки.
Варіант 16
Створити клас Time, що описує час. Закриті поля класу – hour, min, sec – години, хвилини та секунди. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Метод без параметрів IsValid, який перевіряє, чи можливий такий час. Метод повертає значення логічного типу.
- Метод без параметрів Plus1, який збільшує час на 1 секунду.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод IsValid;
- Якщо результат застосування дорівнює False, вивести повідомлення
- Якщо результат застосування дорівнює True,
то застосувати до створеного об'єкта метод Plus1 та вивести на екран отримані значення
- Всю програму помістити у блок try. Блок catch повинен мати спільне повідомлення про помилки.
Варіант 17
Створити клас Date, який описує дату. Закриті поля класу – year, month, day–рік, місяць та число. Реалізувати методи:
- Конструктор з параметрами, що надає значення його полям;
- Метод без параметрів IsValid, який перевіряє, чи можлива така дата. Метод повертає значення логічного типу.
- Метод без параметрів Plus1, який збільшує дату на 1 день.
- Метод без параметрів Print, що виводить на екран значення полів.
У методі Main класу Program:
- Ввести з клавіатури значення полів класу;
- Створити об'єкт за допомогою конструктора;
- Вивести значення полів на екран за допомогою методу Print;
- Застосувати до створеного об'єкта метод IsValid;
- Якщо результат застосування дорівнює False, вивести повідомлення
- Якщо результат застосування дорівнює True,
то застосувати до створеного об'єкта метод Plus1 і вивести отримані значення на екран.
- Всю програму помістити у блок try. Блок catch повинен мати спільне повідомлення про помилки.
Назад
Вперед
Зміст