Форум программистов, компьютерный форум CyberForum.ru

Помогите с задачей пожалуйста. Перегрузка операций. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В заданной строке найти координаты подстроки http://www.cyberforum.ru/cpp-beginners/thread6826.html
Помогите решить задачу.В заданной строке найти координаты подстроки(т.е номер первого и последнего ее символа),содержащей большее кол-во пробелов.Задача не трудная,если бы не пару нюансов. 1)Задача пишется в стандарте СИ 2)ВВод исходной строки происходит из файла,т.е организовать char нельзя,т.к и динамику нельзя использовать 3)Самое главное.все нужно делать с помощью билиотеки string.h,т.е...
C++ Взялся учить C++. НИЧЕГО не выходит. Скачал вот dev-C++, нарыл кучу литературы по С++, дважды перечитал ее, и из предложенного в книгах, у меня не вышло НИЧЕГО. Дело в том, что я совершенно не знаком ни с какими языками программирования. В книгах, как правило, все подробно разжовывают, а потом, предлагают написать программу. Пишу то, из чего собственно и предлагают слепить прогу в книгах. Пробую скомпилировать, и при компиляции... http://www.cyberforum.ru/cpp-beginners/thread6786.html
C++ Клонированный итератор
Помогите пожалуста написать код программы: Определить клонированный итератор для параметризующих контейнеров с прямым доступом. Применить его для реализации сортировки слиянием и функции поиска делением пополам.
Абстрактный класс Pyramid C++
Помогите пожалуста написать код программы: Определить абстрактный класс треугольных пирамид Pyramid и построить иерархию: пирамида, правильная пирамида, срезанная пирамида.
C++ Клас Prism http://www.cyberforum.ru/cpp-beginners/thread6782.html
Помогите пожалуста написать код программы: Определить класс треугольных призм Prism, предусмотрев функции доступа к его составляющим: основ Base, боковых граней Face, ребер Edge и вершин Vertex.
C++ Помощь в написании программы Помогите пожалуста написать код программы: В круг заданного радиуса r с центром в начале координат вписан правильный многоугольный Polygon. Конструктор строит его вершини в направлении, противоположному движению часовой стрелки, начиная с вершини (r,0). Определить копировальное присвоение многоугольных и мультиконструктор копирование с соответствующим увеличением или уменьшением числа вершин на... подробнее

Показать сообщение отдельно
SL1M
0 / 0 / 0
Регистрация: 25.03.2008
Сообщений: 22
08.04.2008, 18:52  [ТС]     Помогите с задачей пожалуйста. Перегрузка операций.
Да, идея эта работает, переписал под себя только, вот что получилось...
Большое спасибо!

Код
[FONT=Aharoni][FONT=Aharoni]#include <vcl.h>[/FONT]
[FONT=Aharoni]#include <conio.h>[/FONT]
[FONT=Aharoni]#include <iostream.h>[/FONT]
[FONT=Aharoni]#include <math.h>[/FONT]
[FONT=Aharoni]#pragma hdrstop[/FONT]
[FONT=Aharoni]#pragma argsused[/FONT]
[FONT=Aharoni]using namespace std;[/FONT]
[FONT=Aharoni]class vect {[/FONT]
[FONT=Aharoni]public:[/FONT]
[FONT=Aharoni]  vect(int=0,int=0,int=0,int=0,int=0);[/FONT]
[FONT=Aharoni]  vect operator+(const vect &);[/FONT]
[FONT=Aharoni]  vect operator-(const vect &);[/FONT]
[FONT=Aharoni]  vect operator*(const int &);[/FONT]
[FONT=Aharoni]  int  operator*(const vect &);[/FONT]
[FONT=Aharoni]  int  operator%(const vect & );[/FONT]
[FONT=Aharoni]  void print();[/FONT]
[FONT=Aharoni]private:[/FONT]
[FONT=Aharoni]  int a,b,c,d,e;[/FONT]
[FONT=Aharoni]};[/FONT]
[FONT=Aharoni]//[/FONT][FONT=Aharoni]Конструктор[/FONT][FONT=Aharoni]:[/FONT]
[FONT=Aharoni]vect::vect(int a1,int b1,int c1,int d1,int e1)[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  a = a1;[/FONT]
[FONT=Aharoni]  b = b1;[/FONT]
[FONT=Aharoni]  c = c1;[/FONT]
[FONT=Aharoni]  d = d1;[/FONT]
[FONT=Aharoni]  e = e1;[/FONT]
[FONT=Aharoni]}[/FONT]
[FONT=Aharoni]//Предопределение операции сложения:[/FONT]
[FONT=Aharoni]vect vect::operator+(const vect &opr2)[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  vect sum;[/FONT]
[FONT=Aharoni]  sum.a = a + opr2.a;[/FONT]
[FONT=Aharoni]  sum.b = b + opr2.b;[/FONT]
[FONT=Aharoni]  sum.c = c + opr2.c;[/FONT]
[FONT=Aharoni]  sum.d = d + opr2.d;[/FONT]
[FONT=Aharoni]  sum.e = e + opr2.e;[/FONT]
[FONT=Aharoni]  return sum;[/FONT]
[FONT=Aharoni]}[/FONT]
[FONT=Aharoni]//Предопределение операции вычитания:[/FONT]
[FONT=Aharoni]vect vect::operator-(const vect &opr2)[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  vect diff;[/FONT]
[FONT=Aharoni]  diff.a = a - opr2.a;[/FONT]
[FONT=Aharoni]  diff.b = b - opr2.b;[/FONT]
[FONT=Aharoni]  diff.c = c - opr2.c;[/FONT]
[FONT=Aharoni]  diff.d = d - opr2.d;[/FONT]
[FONT=Aharoni]  diff.e = e - opr2.e;[/FONT]
[FONT=Aharoni]  return diff;[/FONT]
[FONT=Aharoni]}[/FONT]
[FONT=Aharoni]//Предопределение операции умножения:[/FONT]
[FONT=Aharoni]vect vect::operator*(const int &opr2)[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  vect proizv;[/FONT]
[FONT=Aharoni]  proizv.a = a * opr2;[/FONT]
[FONT=Aharoni]  proizv.b = b * opr2;[/FONT]
[FONT=Aharoni]  proizv.c = c * opr2;[/FONT]
[FONT=Aharoni]  proizv.d = d * opr2;[/FONT]
[FONT=Aharoni]  proizv.e = e * opr2;[/FONT]
[FONT=Aharoni]  return proizv;[/FONT]
[FONT=Aharoni]}[/FONT]
[FONT=Aharoni]//[/FONT][FONT=Aharoni]Скалярное произведение векторов:[/FONT]
[FONT=Aharoni]int vect::operator*(const vect &opr2)[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  int s=a*opr2.a+b*opr2.b+c*opr2.c+d*opr2.d+e*opr2.e;[/FONT]
[FONT=Aharoni]  return[/FONT][FONT=Aharoni]s[/FONT][FONT=Aharoni];[/FONT]
[FONT=Aharoni]}[/FONT]
[FONT=Aharoni]//Векторное произведение векторов[/FONT][FONT=Aharoni]:[/FONT]
[FONT=Aharoni]int  vect::operator%(const vect &opr2 )[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  float x,y,z,p;[/FONT]
[FONT=Aharoni]  x=sqrt(a*a+b*b+c*c+d*d+e*e);[/FONT]
[FONT=Aharoni]  y=sqrt(opr2.a*opr2.a+opr2.b*opr2.b+opr2.c*opr2.c+opr2.d*opr2.d+opr2.e*opr2.e);[/FONT]
[FONT=Aharoni]  z=acos((a*opr2.a+b*opr2.b+c*opr2.c+d*opr2.d+e*opr2.e)/(x*y));[/FONT]
[FONT=Aharoni]  p=x*y*z ;[/FONT]
[FONT=Aharoni]  return p;[/FONT]
[FONT=Aharoni]}[/FONT]
[FONT=Aharoni]//Функция вывода:[/FONT]
[FONT=Aharoni]void vect::print()[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  cout<<'('<<a<<", "<<b<<", "<<c<<", "<<d<<", "<<e<<')';[/FONT]
[FONT=Aharoni]}[/FONT]
[FONT=Aharoni]//[/FONT][FONT=Aharoni]Основная программа[/FONT][FONT=Aharoni]:[/FONT]
[FONT=Aharoni]int main()[/FONT]
[FONT=Aharoni]{[/FONT]
[FONT=Aharoni]  SetConsoleCP(1251);[/FONT]
[FONT=Aharoni]  SetConsoleOutputCP(1251);[/FONT]
[FONT=Aharoni]  cout<<"-------------------------\n A-27. [/FONT][FONT=Aharoni]Лаба[/FONT][FONT=Aharoni] 2.[/FONT][FONT=Aharoni] Вариант [/FONT][FONT=Aharoni]1. \n-------------------------\n\n";[/FONT]
[FONT=Aharoni]  vect x(5,6,7,8,9),y(4,3,2,1,7),z;[/FONT]
[FONT=Aharoni]  int scl,t;[/FONT]
[FONT=Aharoni]  float v;[/FONT]
[FONT=Aharoni]  cout<<"\n [/FONT][FONT=Aharoni]Вектор[/FONT][FONT=Aharoni]А[/FONT][FONT=Aharoni]:   ";[/FONT]
[FONT=Aharoni]  x.print();[/FONT]
[FONT=Aharoni]  cout<<"\n [/FONT][FONT=Aharoni]Вектор В [/FONT][FONT=Aharoni]:   ";[/FONT]
[FONT=Aharoni]  y.print();[/FONT]
[FONT=Aharoni]  z = x + y;[/FONT]
[FONT=Aharoni]  cout<<"\n [/FONT][FONT=Aharoni]Сложение[/FONT][FONT=Aharoni]:   ";[/FONT]
[FONT=Aharoni]  z.print();[/FONT]
[FONT=Aharoni]  z = x - y;[/FONT]
[FONT=Aharoni]  cout<<"\n [/FONT][FONT=Aharoni]Вычитание[/FONT][FONT=Aharoni]:  ";[/FONT]
[FONT=Aharoni]  z.print();[/FONT]
[FONT=Aharoni]  t = x * y;[/FONT]
[FONT=Aharoni]cout[/FONT][FONT=Aharoni]<<"\[/FONT][FONT=Aharoni]n[/FONT][FONT=Aharoni]Скалярное произведение:   " <<[/FONT][FONT=Aharoni]t[/FONT][FONT=Aharoni];[/FONT]
[FONT=Aharoni]v = x % y;[/FONT]
[FONT=Aharoni]cout[/FONT][FONT=Aharoni]<<"\[/FONT][FONT=Aharoni]n[/FONT][FONT=Aharoni]Векторное произведение:   " <<[/FONT][FONT=Aharoni]v[/FONT][FONT=Aharoni];[/FONT]
[FONT=Aharoni]cout<<"\n [/FONT][FONT=Aharoni]Введите скаляр[/FONT][FONT=Aharoni]: [/FONT][FONT=Aharoni]";[/FONT]
[FONT=Aharoni]  cin>>scl;[/FONT]
[FONT=Aharoni]  z = x * scl;[/FONT]
[FONT=Aharoni]cout[/FONT][FONT=Aharoni]<<" Умножение вектора А на скаляр:   ";[/FONT]
[FONT=Aharoni]z.print();[/FONT]
[FONT=Aharoni]  z = y * scl;[/FONT]
[FONT=Aharoni]cout[/FONT][FONT=Aharoni]<<"\[/FONT][FONT=Aharoni]n[/FONT][FONT=Aharoni]Умножение вектора В на скаляр:   ";[/FONT]
[FONT=Aharoni]z.print();[/FONT]
[FONT=Aharoni]  getch();[/FONT]
[FONT=Aharoni]  return 0;[/FONT]
[FONT=Aharoni]}[/FONT]
[/FONT]
Только с свойствах окна шрифт на Lucida Console нужно поменять, чтоб русский шрифт нормально отображался.
ПС: Код для Билдера, на остальном пока не умею
 
Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru