- •Лабораторна робота №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
Приклади виконання завдання
Приклад №1
Програма для роботи із комплексними числами. Членами класу є дійсна та уявна частина комплексного числа. Методами класу є: вивід комплексного числа на екран; конструктор для ініціалізації комплексних чисел; деструктор; обчислення та вивід модуля комплексного числа; обчислення та вивід аргументу комплексного числа.
Для ініціалізації комплексного числа створено перевантажений конструктор:
complex(double)ініціалізація
комплексного числа виду
(якщо параметр в дужках не задано, то по
замовчуванню ініціалізується комплексне
число
);
complex(double,double)ініціалізація
комплексного числа виду
.
Деструктор ~complex() створено також, хоча для нашого класу задач його використання не є обов’язковим.
Для роботи із комплексними числами описано перевантажені операції:
bool operator ==(complex) порівняння двох комплексних чисел;
complex operator +(complex) додавання двох комплексних чисел;
complex operator -(complex) віднімання двох комплексних чисел;
complex operator *(complex) множення двох комплексних чисел;
complex operator /(complex) ділення двох комплексних чисел;
complex operator -=(complex ) комплексне спряження;
complex operator =(complex) операція присвоєння для комплексних чисел;
void operator ++() префіксне збільшення на 1 дійсної частини;
void operator ++(int) постфіксне збільшення на 1 уявної частини;
void operator --() префіксне зменшення на 1 дійсної частини;
void operator --(int) постфіксне зменшення на 1 уявної частини.
#include<iostream>
#include<math.h>
#include <windows.h>
#define pi 3.1415926
using namespace std;
class complex
{
private:
double x;
double y;
public:
void operator ++();
void operator ++(int);
Void operator --();
Void operator --(int);
complex operator +(complex );
complex operator -(complex );
complex operator *(complex );
complex operator /(complex );
complex operator -=(complex );
complex operator =(complex);
bool operator ==(complex);
double modul();
double argument();
Void show_complex();
complex(double);
complex(double, double);
~complex();
};
// Порівняння двох комплексних чисел
bool complex::operator== (complex chislo)
{
if(x == chislo.x && y == chislo.y)
{
return true;
}
return false;
};
complex complex::operator +(complex a) //Додавання
{
complex temp(0.);
temp.x=x+a.x;
temp.y=y+a.y;
return temp;
};
complex complex::operator -(complex a) //Віднімання
{
x=x-a.x;
y=y-a.y;
return *this;
};
complex complex::operator *(complex a) //Множення
{
x=x*a.x-y*a.y;
y=y*a.x+x*a.y;
return *this;
};
complex complex::operator /(complex a) //Ділення
{
double temp;
temp=a.x*a.x-a.y*a.y;
x=x*a.x+y*a.y;
y=y*a.x-x*a.y;
return *this;
};
//Комплексне спряження
complex complex::operator -=(complex a)
{
x=a.x;
y=-a.y;
return *this;
};
//Операція присвоєння
complex complex::operator =(complex a)
{
x=a.x;
y=a.y;
return *this;
};
//Префіксне збільшення на 1 дійсної частини
void complex::operator ++()
{
x++;
};
//Префіксне зменшення на 1 дійсної частини
void complex::operator --()
{
x--;
};
//Постфіксне збільшення на 1 уявної частини
void complex::operator ++(int)
{
y++;
};
//Постфіксне зменшення на 1 уявної частини
void complex::operator --(int)
{
y--;
};
double complex::modul()
{
return pow(x*x+y*y,1/2.0);
};
double complex::argument()
{
return atan2(y,x)*180/pi;
};
void complex::show_complex()
{
if(y>=0) cout<<x<<"+"<<y<<"i"<<endl;
else cout<<x<<"-"<<fabs(y)<<"i"<<endl;
};
//Конструктор №1
complex::complex(double x0=1.0)
{
x=x0;
y=x0;
};
//Конструктор №2
complex::complex(double x0, double y0)
{
x=x0;
y=y0;
};
//Деструктор
complex::~complex()
{
};
void main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
/*Ввід комплексного числа c1 за допомогою конструктора №1 */
complex c1;
cout<<"Комплексне число с1=\t";
c1.show_complex();
/*Ініціалізація комплексного числа c2 за допомогою конструктора №1 */
complex c2(2.);
cout<<"Комплексне число с2=\t";
c2.show_complex();
/*Ініціалізація комплексного числа c3 за допомогою конструктора №2 */
complex c3(1.,-1.);
cout<<"Комплексне число с3=\t";
c3.show_complex();
c3++;
cout<<"Комплексне число с3 після префіксної операції ++ =\t";
c3.show_complex();
++c3;
cout<<"Комплексне число с3 після постфіксної операції ++ =\t";
c3.show_complex();
c3=c3-c1;
cout<<"Комплексне число с3 після віднімання віднього с1=\t";
c3.show_complex();
c3-=c3;
cout<<"Комплексне спряження числа с3=\t";
c3.show_complex();
complex c4;
c4=((c3+c1)/(c3+c2))*c1;
cout<<"Обчислення виразу c4=((c3+c1)/(c3+c2))*c1 : с4=\t";
c4.show_complex();
cout<<"Порівняння чисел с3 та с4 -\t";
if (c3==c4) cout<<"Числа рівні \n";
else cout<<"Числа не рівні між собою\n";
cout<<"Модуль комплексного числа с4=\t"<<c4.modul()<<endl;
cout<<"Аргумент комплексного числа с4=\t"<<c4.argument()<<endl;
cout<<"Комплексне спряження числа с4=\t";
c4-=c4;
c4.show_complex();
cout<<"Модуль комплексного числа с4=\t"<<c4.modul()<<endl;
cout<<"Аргумент комплексного числа с4=\t"<<c4.argument()<<endl;
c4.show_complex();
--c4;
c4.show_complex();
c4--;
c4.show_complex();
}
Результат
роботи програми:
