Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Błąd w trakcie kompilacji struktury terenu

Ostatnio zmodyfikowano 2015-12-07 14:30
Autor Wiadomość
cobra144
Temat założony przez niniejszego użytkownika
Błąd w trakcie kompilacji struktury terenu
» 2015-12-06 16:13:32
Witam!
Mam kod struktury terenu następnie chciałbym z niego wyodrębnić punkty x,y,z i w tym momencie pojawia się problem z którym nie mogę sobie poradzić mógłby ktoś zerknąć i pomóc w jego rozwiązaniu?

#include <iostream>
#include <math.h>

using namespace std;

typedef unsigned int uint;
typedef float real;


struct Sizes {
uint sizeX;
uint sizeY;
};

struct Range {
real minX;
real minY;
real maxX;
real maxY;
};

struct Point3{
real x;
real y;
real z;
};

typedef real * preal;

struct Data {
preal xData;
preal yData;
preal zData;
};



Sizes initSizes(uint sx, uint sy) 
{
Sizes s;

s.sizeX = sx;
s.sizeY = sy;

return s;
}


Range initRange(real minx, real maxx, real miny, real maxy)
{
Range r;

r.minX = minx;
r.minY = miny;
r.maxX = maxx;
r.maxY = maxy;

return r;
}

preal initX(Sizes &sizes, Range range, uint length)
{
//uint length = sizes.sizeX * sizes.sizeY;

preal x = new real[length];

real hX = (range.maxX - range.minX) / (real)(sizes.sizeX - 1);

for (int i = 0; i < sizes.sizeY; i++)
{
for (int j = 0; j < sizes.sizeX; j++)
{
x[i*sizes.sizeX + j] = range.minX + j*hX;
}
}

return x;
}


preal initY(Sizes &sizes, Range range, uint length)
{
//uint length = sizes.sizeX * sizes.sizeY;

preal y = new real[length];

real hY = (range.maxY - range.minY) / (real)(sizes.sizeY - 1);


for (int i = 0; i < sizes.sizeY; i++)
{
for (int j = 0; j < sizes.sizeX; j++)
{
y[i*sizes.sizeX + j] = range.minY + i*hY;
}
}

return y;
}




preal initZ(Sizes &sizes, Range range, uint length, real(*function)(real, real)) 
{
//uint length = sizes.sizeX * sizes.sizeY;

preal z = new real[length];

real hX = (range.maxX - range.minX) / (real)(sizes.sizeX - 1);
real hY = (range.maxY - range.minY) / (real)(sizes.sizeY - 1);


for (int i = 0; i < sizes.sizeY; i++)
{
for (int j = 0; j < sizes.sizeX; j++)
{
z[i*sizes.sizeX + j] = function(range.minX + i*hX, range.minY + i*hY);
}
}

return z;
}


real genZ1(real x, real y)
{
return 1.;
}


real genZ2(real x, real y)
{
return exp(x);
}


void showVector(real * v, uint l)
{
for (int i = 0; i < l; i++)
cout << "v[" << i << "]= " << v << endl;
}


Data initData(preal x, preal y, preal z)
{
Data d;
d.xData = x;
d.yData = y;
d.zData = z;
return d;
}


//funkcja zwracajaca punkty
Point3 getpoint(Data data,uint i, uint j)
{
Point3 p;
return p;

}


int main(void)
{
Sizes sizes = initSizes(3, 3);
Range range = initRange(-1., 1., -1., 1.);


uint length = sizes.sizeX * sizes.sizeY;

preal xData = initX(sizes, range, length);
preal yData = initY(sizes, range, length);
preal zData = initZ(sizes, range, length, genZ1);
//showVector(zData, length);

    Data teren = initData(xData, yData, zData);
Point3 getPoint(teren, 1, 1);// TU POJAWIA SIĘ BŁĄD

}
P-141501
1aam2am1
» 2015-12-07 07:36:29
Nie patrzyłem w kod za dużo ale tu masz poprawiony ten błąd.
C/C++
#include <iostream>
#include <math.h>

using namespace std;

typedef unsigned int uint;
typedef float real;


struct Sizes {
    uint sizeX;
    uint sizeY;
};

struct Range {
    real minX;
    real minY;
    real maxX;
    real maxY;
};

struct Point3 {
    real x;
    real y;
    real z;
};

typedef real * preal;

struct Data {
    preal xData;
    preal yData;
    preal zData;
};



Sizes initSizes( uint sx, uint sy )
{
    Sizes s;
   
    s.sizeX = sx;
    s.sizeY = sy;
   
    return s;
}


Range initRange( real minx, real maxx, real miny, real maxy )
{
    Range r;
   
    r.minX = minx;
    r.minY = miny;
    r.maxX = maxx;
    r.maxY = maxy;
   
    return r;
}

preal initX( Sizes & sizes, Range range, uint length )
{
    //uint length = sizes.sizeX * sizes.sizeY;
   
    preal x = new real[ length ];
   
    real hX =( range.maxX - range.minX ) /( real )( sizes.sizeX - 1 );
   
    for( int i = 0; i < sizes.sizeY; i++ )
    {
        for( int j = 0; j < sizes.sizeX; j++ )
        {
            x[ i * sizes.sizeX + j ] = range.minX + j * hX;
        }
    }
   
    return x;
}


preal initY( Sizes & sizes, Range range, uint length )
{
    //uint length = sizes.sizeX * sizes.sizeY;
   
    preal y = new real[ length ];
   
    real hY =( range.maxY - range.minY ) /( real )( sizes.sizeY - 1 );
   
   
    for( int i = 0; i < sizes.sizeY; i++ )
    {
        for( int j = 0; j < sizes.sizeX; j++ )
        {
            y[ i * sizes.sizeX + j ] = range.minY + i * hY;
        }
    }
   
    return y;
}




preal initZ( Sizes & sizes, Range range, uint length, real( * function )( real, real ) )
{
    //uint length = sizes.sizeX * sizes.sizeY;
   
    preal z = new real[ length ];
   
    real hX =( range.maxX - range.minX ) /( real )( sizes.sizeX - 1 );
    real hY =( range.maxY - range.minY ) /( real )( sizes.sizeY - 1 );
   
   
    for( int i = 0; i < sizes.sizeY; i++ )
    {
        for( int j = 0; j < sizes.sizeX; j++ )
        {
            z[ i * sizes.sizeX + j ] = function( range.minX + i * hX, range.minY + i * hY );
        }
    }
   
    return z;
}


real genZ1( real x, real y )
{
    return 1.;
}


real genZ2( real x, real y )
{
    return exp( x );
}


void showVector( real * v, uint l )
{
    for( int i = 0; i < l; i++ )
         cout << "v[" << i << "]= " << v << endl;
   
}


Data initData( preal x, preal y, preal z )
{
    Data d;
    d.xData = x;
    d.yData = y;
    d.zData = z;
    return d;
}


//funkcja zwracajaca punkty
Point3 getpoint( Data data, uint i, uint j )
{
    Point3 p;
    return p;
   
}


int main( void )
{
    Sizes sizes = initSizes( 3, 3 );
    Range range = initRange( - 1., 1., - 1., 1.);
   
   
    uint length = sizes.sizeX * sizes.sizeY;
   
    preal xData = initX( sizes, range, length );
    preal yData = initY( sizes, range, length );
    preal zData = initZ( sizes, range, length, genZ1 );
    //showVector(zData, length);
   
    Data teren = initData( xData, yData, zData );
    Point3 punkt = getpoint( teren, 1, 1 ); // TU POJAWIA SIĘ BŁĄD ///miales Point3 getPoind //inna nazwa funkcji i Point3 to struktura brakowało zmiennej punkt
   
}

P-141558
cobra144
Temat założony przez niniejszego użytkownika
» 2015-12-07 14:20:45
Jeszcze jedno małe pytanko przy kompilacji pokazuje mi się taki błąd "uninitialized local variable 'p' used" czego może być to wina?
P-141568
carlosmay
» 2015-12-07 14:30:27
Używasz niezainicjalizowanej zmiennej 'p'.
P-141571
« 1 »
  Strona 1 z 1