- •Лабораторна робота №1
- •Теоретичні відомості
- •Завдання для виконання
- •Int main()
- •Int main()
- •Лабораторна робота №2
- •Теоретичні відомості
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Int k,m; //опис змінних
- •Void main()
- •Завдання для виконання
- •Лабораторна робота №3
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main()
- •Void main()
- •Int main()
- •Завдання для виконання
- •Лабораторна робота №4
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main ( )
- •Void main ( )
- •Завдання для виконання
- •Лабораторна робота №5
- •Теоретичні відомості
- •Void main()
- •Void main()
- •Приклади виконання завдання
- •Void main ( )
- •Void main ( )
- •Завдання для виконання
- •Лабораторна робота №6
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main ( )
- •Void main ( )
- •Void main ( )
- •Завдання для виконання
- •Лабораторна робота №7
- •Теоретичні відомості
- •Void fact(int k);
- •Void fact(k);
- •Int *I; //Вказівник - змінна на дані типу int
- •Int k, *vk; //Опис змінної - вказівника *vk
- •Приклади виконання завдання лабораторної роботи
- •Int fact(int n)// Функція, що обчислює n!
- •Void dryk(int Cnm) /* Функція, що виводить на екран значення Cnm */
- •Void main ( )
- •Int Factorial(int n) /*Рекурсивна функція,що обчислює n! */
- •Void main()
- •Void Vs(double &V, double &s, double r)
- •Void main ( )
- •Void Vs(double *V, double *s, double r)
- •Void main ( )
- •Void main()
- •Завдання для виконання
- •Лабораторна робота №8
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main()
- •Void main()
- •Void main()
- •Завдання для виконання
- •Лабораторна робота №9
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void main()
- •If (!feof(f1))
- •Void main()
- •Void main()
- •Void main()
- •Void main ()
- •Void main ()
- •Ifstream in( "vvid" );
- •In.Close();
- •Завдання для виконання
- •Лабораторна робота №10
- •Теоретичні відомості
- •Char st[40]
- •Char st3[100]
- •Char str4[100]
- •Приклади виконання завдання
- •Void main()
- •Void insert (char *str, int p, char c)
- •Void main()
- •Insert(s,n,c);
- •Void main()
- •Завдання для виконання
- •Лабораторна робота 11
- •Теоретичні відомості
- •If(!strcmp(ms[I].Ngr,"m21"))
- •Завдання для виконання
- •Приклади виконання завдання
- •Void main()
- •Лабораторна робота 12
- •Теоретичні відомості
- •Void show_complex() /*вивід комплекснеого числа на екран */
- •Void show_complex();
- •Void complex::show_complex()
- •Void main()
- •Приклади виконання завдання
- •Завдання для виконання
- •Лабораторна робота 13
- •Теоретичні відомості
- •Приклади виконання завдання
- •Void operator --();
- •Void operator --(int);
- •Void show_complex();
- •Завдання для виконання
- •Завдання для самостійного виконання
- •Додаток №2. Базові типи даних
- •Додаток №3. Основні специфікатори формату функції printf
- •Додаток №5. Основні математичні функції бібліотеки math.H
- •Додаток №6.
- •Додаток №7. Можливі специфікатори аргументу mode
- •Додаток №8. Основні функції для роботи із рядковими змінними бібліотеки string.H
- •Додаток №9. Основні функції для роботи із символами бібліотеки ctype.H
- •Література
- •Ткачук Валерій Михайлович
- •Лабораторний практикум
- •76000, М. Івано-Франківськ, вул. С. Бандери, 1
Лабораторна робота 12
Тема роботи: Програмування класів
Мета роботи: Формування навиків роботи із класами, алгоритмами їх оголошення та обробки.
Для виконання роботи необхідно знати:
поняття класу та його призначення;
оголошення класу;
доступ до відкритих та закритих членів класу;
визначення елементів-функцій класу;
алгоритми роботи із класами.
Теоретичні відомості
Клас – визначений користувачем тип даних (змінні будь-якого типу, інші класи чи вказівники), який створюється для опису абстрактної множини об’єктів – членів класу. При цьому він інкапсулює в себе елементи-дані (члени) та елементи-функції (методи). Елементи-дані задають властивості об’єктів (описуються за допомогою полів класу). Елементи-функції задають операції, які можна виконувати над елементами-даними класу.
В цілому поняття класу нагадує поняття структури в С++ за виключенням ряду моментів:
він містить в собі ряд специфікацій доступу до об’єктів класу;
як правило він включає в себе елементи - функції, що задають правила обробки об’єктів класу;
для створення-знищення об’єктів класу використовуються спеціальні функції – конструктор та деструктор.
На відміну від полів структури, які є доступними завжди, в класі члени та методи можуть мати різний рівень доступу. До відкритих полів (public) доступ дозволений будь-кому. До закритих (private) та захищених (protected) полів доступ ззовні класу є закритий, щоби не порушити цілісність даних. Доступ до таких полів мають тільки елементи-функції класу.
Оголошення класу виконується за наступним синтаксисом:
class <імя класу>
{
private:
<закриті елементи-дані >
<закриті елементи-функції>
protected:
<захищені елементи-дані >
<захищені елементи-функції>
public:
<відкриті елементи-дані >
<відкриті елементи-функції>
}
<імя класу> утворюється за правилами утворення будь-яких інших ідентифікаторів. По замовчуванню для всіх елементів класу діє закритий режим доступу.
Для прикладу створимо клас complex для роботи із комплексними числами. В ньому будуть:
члени класу:
double x – дійсна частина комплексного числа;
double y – уявна частина комплексного числа.
методи класу:
double modul() – функція, що обчислює модуль комплексного числа;
double argument()– функція, що обчислює аргумент комплексного числа;
void show_complex()– функція, що виводить комплексне число на екран;
Оголошення класу матиме наступний вигляд:
class complex
{
public:
double x;
double y;
double modul()/*обчислення модуля комплексного числа */
{
double temp;
temp=pow(x*x+y*y,1/2.0);
return temp;
}
double argument()/*обчислення аргумента комплексного числа */
{
double temp;
temp=atan2(y,x)*180/pi;
return temp;
}
Void show_complex() /*вивід комплекснеого числа на екран */
{
if(y>=0) cout<<x<<"+"<<y<<"i"<<endl;
else cout<<x<<"-"<<y<<"i"<<endl;
}
};
Функції-члени можуть бути визначені як безпосередньо при описі класу, так і в будь якому місці за межами класу, так як це зроблено нижче. Визначення функції-члену починається із імені класу, після якого через операцію :: ім’я функції та її параметри:
class complex
{
public:
double x;
double y;
double modul();
double argument();
