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

Векторы, никак не могу понять - C++

Восстановить пароль Регистрация
 
YourLastSong
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 112
26.12.2010, 17:01     Векторы, никак не могу понять #1
Здравствуйте, господа.

Я бы, возможно, и не стал беспокоить вас по таким пустякам, но для меня это вовсе не является таковым.

У меня случилась довольно большая проблема, которая заключается не только в том, что за невозможность решить данную задачу мне придётся туго, а потому, что я сам никак не могу понять её решение, что, само мобой разумеется, меня невероятно сильно расстроило и продолжает расстраивать до сих пор, т.к. решение я так и не смог придумать.

Итак, у меня имеется след. задание:

http://rghost.ru/3762303

Необходимо сделать 11 задание, однако как решить хоть что-то из этого пока что известно только первое:

Код
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std;
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 /*v3*/::operator=(VECTOR &F /*v2*/)
{
    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
// independent function:
VECTOR operator^   (VECTOR  &v1, float *v2)
{
    
    for(int j=0; j<v1.n ;j++)
        v1.x[j] = pow(v1.x[j],v2[j]); 
    return v1;
}

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 ! (); //добавлено
};// end of DV body
DV &DV::operator!() //добавлено
{
    for(int j=0;j<n;++j)
        x[j]=fabs(x[j]);
    return *this;
}

void main()
{
	int n;
	float *a;
	printf("n = ");
	scanf("%d", &n);
	a = new float[n];
	for (int i = 0; i < n; i++)
	{
		scanf("%g", &a[i]);
	}
	DV v(n, a); //добавлено
	!v; //добавлено
	for (int i = 0; i < n; i++)
	{
		cout << v.x[i] << " ";
	}
	getch();
}
Я знаю, что просить решить что-либо на данном форуме неприлично, но этого бы не произошло, если бы я хоть что-то понимал в данной задаче.

Если у вас есть возможность и желание мне хоть как-то помочь, буду очень признателен.

Заранее благодарю за возможные ответы.

Добавлено через 26 минут
Если есть хоть какие-то подсказки, как это можно сделать, также буду очень признателен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 17:01     Векторы, никак не могу понять
Посмотрите здесь:

немогу никак понять в чем ошибка=(помогите плиз! C++
C++ не могу решить (векторы и строки)
C++ Никак не могу разобраться с конструктором.
C++ никак не могу понять ошибку...
Не могу никак понять (новичек). C++
C++ Никак не могу понять в чем ошибка
Стек на основе массива структур - эт как понять читаю литературу и не могу понять! C++
Интересует часть программы, не могу ее никак понять C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 19:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru