Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Введення в узагальнене програмування»Содержание книги Поиск на нашем сайте
Міністерство освіти і науки України Запорізький національний технічний університет
Кафедра програмних засобів
Звіт з лабораторної роботи №7 Виконав ст. гр. КНТ-423 В.В. Білевський
Прийняв ст. викл. Н. О. Миронова
Запоріжжя, 2014 7.1Мета роботи:Навчитись використовувати шаблони при розробці програм.
7.2 Завдання до роботи:Виконати завдання з лабораторної роботи № 1, де тип елементу заданої структури даних довільний. Використати шаблонні функції. 7.3 Текст програми: #include <iostream> #include <conio.h> #include <cmath>
using namespace std; template <class Q> class Vector{ Q x,y,z; public: Vector(); Vector(Q a, Q b, Q c);
void Vvod(); void Dlina(); void Show(){cout << x <<' '<< y<<' '<< z<<endl;}
template <typename I> friend Vector<I> operator + (Vector<I> &a, Vector<I> &c); template <typename I> friend Vector<I> operator + (I num, Vector<I> &a);
template <typename I> friend Vector<I> operator - (Vector<I> &a, Vector<I> &c); template <typename I> friend Vector<I> operator - (Vector<I> &a, I num);
template <typename I> friend Vector<I> operator * (Vector<I> &a, Vector<I> &c); template <typename I> friend Vector<I> operator * (Vector<I> &a, I num);
template <typename I> friend bool operator == (Vector<I> &a, Vector<I> &b); template <typename I> friend bool operator != (Vector<I> &a, Vector<I> &b); };
template <class Q> Vector <Q>::Vector(){ x=0;y=0;z=0; }
template <class Q> Vector <Q>::Vector(Q a, Q b, Q c){ x=a;y=b;z=c; }
template <class Q> void Vector <Q>::Dlina(){ double dlina = sqrt(x*x+y*y+z*z); cout << "Dlina vectora: "<<dlina<< endl; }
template <class Q> void Vector<Q>::Vvod(){ cout << "Vvedite koordinati:\nx = "; cin >> x; cout << "y = "; cin >> y; cout << "z = "; cin >> z; }
template <class Q> Vector <Q> operator +(Vector<Q> &a, Vector<Q> &c){ Vector<Q> b; b.x=a.x+c.x; b.y+=a.y+c.y; b.z+=a.z+c.z; return b; } template <class Q> Vector<Q> operator +(Q num, Vector<Q>& a){ Vector<Q> b; b.x = a.x +num; b.y = a.y +num; b.z = a.z +num; return b; }
template <class Q> Vector<Q> operator -(Vector<Q> &a, Vector <Q>&c){ Vector<Q> b; b.x=a.x-c.x; b.y+=a.y-c.y; b.z+=a.z-c.z; return b; }
template <class Q> Vector<Q> operator -(Vector<Q>& a, Q num){ Vector<Q> b; b.x = a.x -num; b.y = a.y -num; b.z = a.z -num; return b; }
template <class Q> Vector<Q> operator *(Vector<Q> &a, Vector<Q> &c){ Vector<Q> b; b.x=a.x*c.x; b.y=a.y*c.y; b.z=a.z*c.z; return b; }
template <class Q> Vector<Q> operator *(Vector<Q>& a, Q num){ Vector<Q> b; b.x = a.x *num; b.y = a.y *num; b.z = a.z *num; return b; } template <class Q> bool operator == (Vector<Q> &a, Vector <Q>&b){ bool zn; if(a.x==b.x&&a.y==b.y&&a.z==b.z) zn=true; return zn; }
template <class Q> bool operator != (Vector<Q> &a, Vector <Q> &b){ bool zn; if(a.x!=b.x||a.y!=b.y||a.z!=b.z) zn=true; return zn; }
int main() { Vector<int> obj1, obj2(1,2,3), obj3;
obj1.Vvod();
obj3=obj1+obj2; obj3.Show();
obj3=2+obj1; obj3.Show();
obj3=obj2-obj1; obj3.Show();
obj3=obj2-4; obj3.Show();
obj3=obj1*obj1; obj3.Show();
obj3=obj2*3; obj3.Show();
if(obj1==obj2) cout << "Vektora ravny\n"; else cout<<"Vektora ne ravny\n";
if(obj1!=obj2) cout << "Vektora ne ravny\n"; else cout<<"Vektora ravny\n";
obj1.Dlina(); getch(); return 0; }
7.4 Знімки з єкрану:
Рисунок 7.1- Робота програми
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 50; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |