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

Запрограммировать и протестировать заданную перегруженную операцию, содержащуюся в классе, производном от заданного класса VECTOR. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять местами каждые два соседних слова http://www.cyberforum.ru/cpp-beginners/thread411748.html
Напишите программу, которая выведет на экран введённый текст выведет на экран меняя местами каждые два соседних слова.
C++ [C++] В S1 отсортировать по возрастанию группы символов по n Помогите написать программу на С++. Тема:Работа со строками Условие: В S1 отсортировать по возрастанию группы символов по n. Длина S1 кратна n. http://www.cyberforum.ru/cpp-beginners/thread411730.html
C++ Символьные строки и матрицы
1)))) Определить с помощю функции совместимость матрицы размерности М * М относительно главной диагонали. Вывести исходную матрицу и сообщение о проверке. 2))))заданы 2 символьные строки А и Б . Требуется вычислить сколькими способами можно получить строку В из строки А, вычеркивая некоторые символы, например для строк aaabbbccc и abc это число равно 36 3))))Дана целочисленная прямоугольная...
C++ Переделать программу под класс. Т.е. чтобы она работала так же, но с классом
Дано вещественное число а и натуральное число n. Вычислить : а^1,a^2,a^3,..a^n. Операцию возведения в степень не использовать. #include <iostream> using namespace std; int main() { double a,p; int n; cin >> n >> a;
C++ Двумерный массив http://www.cyberforum.ru/cpp-beginners/thread411715.html
Задана матрица размером N х. N и число k. Разделить элементы k-и строки на диагональный элемент, расположенный в этой строке. #include<conio.h> #include<iostream.h> #include<stdlib.h> const n=5; void main() {
C++ C++ Задача с функциями и массивами. Условие задачи: Переписть элементы массива ,натуральных(целые положительные) чисел Х, в массив Y являющимися простыми(делятся на себя и на 1).Вычислить их сумму и если она кратна С осуществить цикличиский свиг на 2 влево (сдвигать будем массив Х). Пример простых чисел: 2 3 5 7 11 13 17 19 23 29 31. Нужно сделать 3и функции. 1 в которой будет создаваться глобальный массив Х и заполнятся... подробнее

Показать сообщение отдельно
Myccon
Сообщений: n/a

Запрограммировать и протестировать заданную перегруженную операцию, содержащуюся в классе, производном от заданного класса VECTOR. - C++

19.12.2011, 19:07. Просмотров 271. Ответов 0
Метки (Все метки)

Помогите пожалуйста решить задачку.

Запрограммировать и протестировать заданную перегруженную операцию,
содержащуюся в классе, производном от заданного класса VECTOR.
V  объект, которому принадлежит метод (перегруженная операция),
L – локальный объект (определяется как копия V),
F – формальный объект, a – скаляр, A – массив, j=0,1,…,n-1
Пример. Скалярное произведение векторов:
F1*F2 { а= F1. xj * F2. xj ; возвращается a. }

Задание: V^a{ L. xj =pow(V.xj ,a); возвращается L.}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <alloc.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
 struct VECTOR{int n; float*x;
 void nw(){x=new float[n];}
// default  constructor:
 VECTOR(){n=0;x=0;}
// constructor with 1 arg. :
 VECTOR(int fn){n=fn; nw();}
// constructor with 2 arg. :
 VECTOR(int n,float*x);
// copying  constructor:
 VECTOR(VECTOR&v);
// destructor:
~VECTOR(){if(x)delete[]x;}
//V=F {V.n=F.n;V.x[j]=F.x[j];return*this==V
//(we can write V1=V2=V3 due to VECTOR&)}:
 VECTOR&operator=(VECTOR&F);
//  V() {output V.x[0], V.x[1],... }:
 void operator()(FILE*f);
// V[j] {return V.x[j]
//(we can write V1[i]=V2[j]=V3[k] due to float&...)}:
 float&operator[](int j){return x[j];}
 }; // end of VECTOR body
  VECTOR::VECTOR(int fn,float*fx)
{n=fn; nw(); for(int j=0;j<n;++j)x[j]=fx[j];}
  VECTOR::VECTOR(VECTOR&F)
{n=F.n;nw();for(int j=0;j<n;++j)x[j]=F.x[j];}
  VECTOR&VECTOR::operator=(VECTOR&F)
{if(x)delete[]x; n=F.n;nw();
for(int j=0;j<n;++j)x[j]=F.x[j];return*this;}
  void VECTOR::operator()(FILE*f=stdout)
{for(int j=0;j<n;++j)fprintf(f,"% -7g",x[j]);}
// end of VECTOR
 
// independant function:
  float operator*(VECTOR&v1, VECTOR&v2)
{float a=0; for(int j=0;j<v1.n;++j)
a+=v1.x[j]*v2.x[j]; return a;}
 
 struct DV:VECTOR{DV():VECTOR(){}DV(int fn):VECTOR(fn){}
DV(int n,float*x):VECTOR(n,x){};
DV(DV&v):VECTOR(v){};
DV&operator++(int);
}; // end of DV body
  DV&DV::operator++(int)                                         -
{for(int j=0;j<n;++j)x[j]++;return*this;}
// end of DV
 
  void main(){cout<<"\n\n mem0="<<coreleft()<<'\n';
 {int m=0, n=3; float y[3]={1,2,3};
//tests of constructors (VECTOR v1(n,y),v2(v1),v3;)
//and operators ( operator=,  operator() ):
 VECTOR v1(n,y),v2(v1),v3; v3=v2;
cout<<"VECTOR v1(n,y),v2(v1),v3; v3=v2; v3(); -> ";
v3();
// test of operator*:
m=v2*v3; cout<<"\n m=v2*v3; -> m="<<m;
// test of operator++:
 cout<<"\n mem="<<coreleft()<<'\n';
{ DV dv(n,y),d(dv);
 d++; cout<<"\n d++; d(); ->"; d();
 cout<<"\n mem="<<coreleft()<<'\n';
}}cout<<"\n mem="<<coreleft(); getch(); }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru