tömbök, mutatók,…stb (C++)

Kezdőlap Fórumok Programozás tömbök, mutatók,…stb (C++)

10 bejegyzés megtekintése - 1-10 / 17
  • Szerző
    Bejegyzés
  • #2154301
    zoltan22
    Felhasználó

      Tarolni lehet:
      statikusan: bejelentesz egy 10 elemu tombot, melynek az elemei a vektoraid.
      dinamikusan: lefoglalsz neki memoriat, es a mutatojat eltarolod valahol (pl. bepakolod egy tombbe (esetleg vektorba :D))

      Kodreszletekkel talan jobban ertnem, hogy hogyan akarod csinalni.

      #2154302
      zoltan22
      Felhasználó

        Tarolni lehet:
        statikusan: bejelentesz egy 10 elemu tombot, melynek az elemei a vektoraid.
        dinamikusan: lefoglalsz neki memoriat, es a mutatojat eltarolod valahol (pl. bepakolod egy tombbe (esetleg vektorba :D))

        Kodreszletekkel talan jobban ertnem, hogy hogyan akarod csinalni.

        #2154303
        kisbetu
        Felhasználó

          Én tömböt (tömböket?) nyitnék nekik, abba táplálnám bele, aztán a tömbindexszel kiszedegetném.
          Persze, ha a kikapcsolás idejére kell eltárolni, akkor valamiféle file a megoldás.

          #2154304
          kisbetu
          Felhasználó

            Én tömböt (tömböket?) nyitnék nekik, abba táplálnám bele, aztán a tömbindexszel kiszedegetném.
            Persze, ha a kikapcsolás idejére kell eltárolni, akkor valamiféle file a megoldás.

            #2154305
            jules
            Felhasználó

              jol hangzik, csak kod formaba kellene onteni. foleg ehhez kellene segitseg…

              itt a vektor generalas:

              Code:
              #include
              #include
              #include
              #include

              using namespace std;

              const float M_2PIf = 6.283185307179586476925286766559f;
              const float M_PIf  = 3.141592653589793238462643383279f;

              float rand(float min, float max)
              {
                  return min + (max – min) * rand() / (float)RAND_MAX;
              }

              int main()
              {   

              int i;

              for (i=0;i<10;i++)
              {

                 
                  float z = rand(-1.0f, 1.0f);
                  float a = rand(0.0f, M_2PIf);

                  float r = sqrtf(1.0f – z*z);

                  float x = r * cosf(a);
                  float y = r * sinf(a);
                 
                  cout << x << " " << y << " " << z << endl;

              }

              return 0;
              }

              #2154306
              jules
              Felhasználó

                jol hangzik, csak kod formaba kellene onteni. foleg ehhez kellene segitseg…

                itt a vektor generalas:

                Code:
                #include
                #include
                #include
                #include

                using namespace std;

                const float M_2PIf = 6.283185307179586476925286766559f;
                const float M_PIf  = 3.141592653589793238462643383279f;

                float rand(float min, float max)
                {
                    return min + (max – min) * rand() / (float)RAND_MAX;
                }

                int main()
                {   

                int i;

                for (i=0;i<10;i++)
                {

                   
                    float z = rand(-1.0f, 1.0f);
                    float a = rand(0.0f, M_2PIf);

                    float r = sqrtf(1.0f – z*z);

                    float x = r * cosf(a);
                    float y = r * sinf(a);
                   
                    cout << x << " " << y << " " << z << endl;

                }

                return 0;
                }

                #2154307
                zoltan22
                Felhasználó

                  En igy csinalnam:

                  Keszitunk egy vektor tipust, mert azzal talan konnyebb dolozni:

                  Code:
                  struct vektor {
                  float x,y,z;
                  };

                  10 vektorunk lesz, ezert a legkenyelmesebb statikusan tarolni:

                  Code:
                  int main() {
                  // a 10 vektor:
                  vektor tar[10];

                  int i;

                  for (i=0;i<10;i++)
                  {

                  float z = rand(-1.0f, 1.0f);
                  float a = rand(0.0f, M_2PIf);

                  float r = sqrtf(1.0f – z*z);

                  float x = r * cosf(a);
                  float y = r * sinf(a);

                  cout << x << " " << y << " " << z << endl;

                  // taroljuk el
                  tar[I].x = x;
                  tar[I].y = y;
                  tar[I].z = z;

                  }

                  return 0;
                  }

                  Ha meg ossze akarjuk oket szorozni, akkor peldaul egy ilyen fuggveny pont megfelel:

                  Code:
                  float szoroz(const vektor a, const vektor b){
                  // itt csinalsz vele amit akarsz
                  return valami;
                  }

                  A fuggveny hasznalata:

                  Code:
                  float t = szoroz(tar[1], tar[2]);

                  Nehany megjegyzes:
                  – amit irtam, az sima C ; C++ nem kell hozza (a kiiratast leszamitva)
                  – a fuggvenyhivast lehet egy kicsit gyorsitani (mar ilyen kis vektor struktura meretnel nem biztos, hogy megeri) mutatok hasznalataval

                  Szerk:
                  a WYSIWTF szerkeszto miert irja at a [ i ] -t [ I ] -re ?

                  #2154308
                  zoltan22
                  Felhasználó

                    En igy csinalnam:

                    Keszitunk egy vektor tipust, mert azzal talan konnyebb dolozni:

                    Code:
                    struct vektor {
                    float x,y,z;
                    };

                    10 vektorunk lesz, ezert a legkenyelmesebb statikusan tarolni:

                    Code:
                    int main() {
                    // a 10 vektor:
                    vektor tar[10];

                    int i;

                    for (i=0;i<10;i++)
                    {

                    float z = rand(-1.0f, 1.0f);
                    float a = rand(0.0f, M_2PIf);

                    float r = sqrtf(1.0f – z*z);

                    float x = r * cosf(a);
                    float y = r * sinf(a);

                    cout << x << " " << y << " " << z << endl;

                    // taroljuk el
                    tar[I].x = x;
                    tar[I].y = y;
                    tar[I].z = z;

                    }

                    return 0;
                    }

                    Ha meg ossze akarjuk oket szorozni, akkor peldaul egy ilyen fuggveny pont megfelel:

                    Code:
                    float szoroz(const vektor a, const vektor b){
                    // itt csinalsz vele amit akarsz
                    return valami;
                    }

                    A fuggveny hasznalata:

                    Code:
                    float t = szoroz(tar[1], tar[2]);

                    Nehany megjegyzes:
                    – amit irtam, az sima C ; C++ nem kell hozza (a kiiratast leszamitva)
                    – a fuggvenyhivast lehet egy kicsit gyorsitani (mar ilyen kis vektor struktura meretnel nem biztos, hogy megeri) mutatok hasznalataval

                    Szerk:
                    a WYSIWTF szerkeszto miert irja at a [ i ] -t [ I ] -re ?

                    #2154309
                    jules
                    Felhasználó

                      jo, koszi.

                      meg annyi, hogy van egy olyan matrixosztalyom, h:

                      Code:
                      template class Matrix {
                      public:

                          Z *A; //!< Pointer to the matrix elements
                          unsigned int M;   //!< Number of Rows
                          unsigned int N;   //!< Number of Columns

                          Matrix(Z *elements ,unsigned int Rows, unsigned int Cols);

                      …stb

                      es definialok igy matrixokat pl:

                      Code:
                      float a[] = {1,1,1};
                          float b[] = {1,1,1};

                          Matrix A(a,3,1);

                          Matrix B(b,1,3);

                      akkor a fenti tombos esetben hogyan tudom megadni pl. a Matrix  A() -t ?

                      gondolom akkor nem  az lesz h  a[] = {1,1,1}, hanem (ezt nem tudom) : tar[1] = {}; 

                      #2154310
                      jules
                      Felhasználó

                        jo, koszi.

                        meg annyi, hogy van egy olyan matrixosztalyom, h:

                        Code:
                        template class Matrix {
                        public:

                            Z *A; //!< Pointer to the matrix elements
                            unsigned int M;   //!< Number of Rows
                            unsigned int N;   //!< Number of Columns

                            Matrix(Z *elements ,unsigned int Rows, unsigned int Cols);

                        …stb

                        es definialok igy matrixokat pl:

                        Code:
                        float a[] = {1,1,1};
                            float b[] = {1,1,1};

                            Matrix A(a,3,1);

                            Matrix B(b,1,3);

                        akkor a fenti tombos esetben hogyan tudom megadni pl. a Matrix  A() -t ?

                        gondolom akkor nem  az lesz h  a[] = {1,1,1}, hanem (ezt nem tudom) : tar[1] = {}; 

                      10 bejegyzés megtekintése - 1-10 / 17
                      • Be kell jelentkezni a hozzászóláshoz.