jules

Hozzászólások

10 bejegyzés megtekintése - 121-130 / 269
  • Szerző
    Bejegyzés
  • Hozzászólás: matrix osztaly osszeadasra #2154770
    jules
    Felhasználó

      Nagyon koszi.

      Meg valami:
      Amit most kiir nekem az a „sum”, azaz a matrixok osszege?
      Es ennek az atlagat hogyan irathatom ki? Azaz, a pl. ” sum /=5; „-ot.

      Hozzászólás: matrix osztaly osszeadasra #2154765
      jules
      Felhasználó

        Ez igy lefordul, de…39.gif 

        Code:
        #include  
        #include
        #include
        #include
        #include

        #define N 5

        using namespace std;

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

        /* —————–RANDOM_GENERATOR——————————- */

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

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

        /* ——————MATRIX_CLASS———————————–*/
        class Matrix {

        private:

        float tomb[3][3];

        public:
         
          void init(vektor &a){

            tomb[0][0] = a.x * a.x;
            tomb[0][1] = a.x * a.y;
            tomb[0][2] = a.x * a.z;
            tomb[1][0] = a.y * a.x;
            tomb[1][1] = a.y * a.y;
            tomb[1][2] = a.y * a.z;
            tomb[2][0] = a.z * a.x;
            tomb[2][1] = a.z * a.y;
            tomb[2][2] = a.z * a.z;
          }

        Matrix &operator +=(Matrix b){
        int k,l;
        for(k=0; k<3; k++)
        for(l=0; l<3; l++)
          tomb[k][l] += b.tomb[k][l];
        return *this;
        }

        Matrix &operator/=(float c){
        int k,l;
        for(k=0; k<3; k++)
        for(l=0; l<3; l++)
          tomb[k][l] /= c;
        return *this;
        }

        };

        /* ——————————————————————– */

        int main() {

            int i,j;

            vektor tar[5];

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

            float phi  = rand(0.0f, M_2PIf);
            float costheta = rand(-1.0f, 1.0f);
           
            float x = 1.0f * sqrtf(1-costheta*costheta) * cosf(phi);
            float y = 1.0f * sqrtf(1-costheta*costheta) * sinf(phi);
            float z = 1.0f * costheta;

            tar[i].x = x;
            tar[i].y = y;
            tar[i].z = z;

            }

            Matrix m[5];
            for (i=0;i<5;i++) {
         
            m[i].init(tar[i]);
            }

            Matrix sum = m[0];

            for (i=0;i<5;i++) {
         
            sum += m[i];
            }
           
            sum /= N;

           

        return 0;
        }

        Hozzászólás: matrix osztaly osszeadasra #2154766
        jules
        Felhasználó

          Ez igy lefordul, de…39.gif 

          Code:
          #include  
          #include
          #include
          #include
          #include

          #define N 5

          using namespace std;

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

          /* —————–RANDOM_GENERATOR——————————- */

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

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

          /* ——————MATRIX_CLASS———————————–*/
          class Matrix {

          private:

          float tomb[3][3];

          public:
           
            void init(vektor &a){

              tomb[0][0] = a.x * a.x;
              tomb[0][1] = a.x * a.y;
              tomb[0][2] = a.x * a.z;
              tomb[1][0] = a.y * a.x;
              tomb[1][1] = a.y * a.y;
              tomb[1][2] = a.y * a.z;
              tomb[2][0] = a.z * a.x;
              tomb[2][1] = a.z * a.y;
              tomb[2][2] = a.z * a.z;
            }

          Matrix &operator +=(Matrix b){
          int k,l;
          for(k=0; k<3; k++)
          for(l=0; l<3; l++)
            tomb[k][l] += b.tomb[k][l];
          return *this;
          }

          Matrix &operator/=(float c){
          int k,l;
          for(k=0; k<3; k++)
          for(l=0; l<3; l++)
            tomb[k][l] /= c;
          return *this;
          }

          };

          /* ——————————————————————– */

          int main() {

              int i,j;

              vektor tar[5];

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

              float phi  = rand(0.0f, M_2PIf);
              float costheta = rand(-1.0f, 1.0f);
             
              float x = 1.0f * sqrtf(1-costheta*costheta) * cosf(phi);
              float y = 1.0f * sqrtf(1-costheta*costheta) * sinf(phi);
              float z = 1.0f * costheta;

              tar[i].x = x;
              tar[i].y = y;
              tar[i].z = z;

              }

              Matrix m[5];
              for (i=0;i<5;i++) {
           
              m[i].init(tar[i]);
              }

              Matrix sum = m[0];

              for (i=0;i<5;i++) {
           
              sum += m[i];
              }
             
              sum /= N;

             

          return 0;
          }

          Hozzászólás: matrix osztaly osszeadasra #2154759
          jules
          Felhasználó

            nyilvan ezt is probaltam mar. ez sem jo… marcsak azert sem, mert nekem csak egy i counter van az egesz programmban…

            Hozzászólás: matrix osztaly osszeadasra #2154760
            jules
            Felhasználó

              nyilvan ezt is probaltam mar. ez sem jo… marcsak azert sem, mert nekem csak egy i counter van az egesz programmban…

              Hozzászólás: matrix osztaly osszeadasra #2154755
              jules
              Felhasználó

                hat az osszeadas eredmenye egy 3×3-as matrix, ami a „sum”, nalam. de ezt igy nem irathatom ki, h

                Code:
                std::cout << sum << std::endl;

                nem? (hulyeseget ad igy nyilvan…)

                Hozzászólás: matrix osztaly osszeadasra #2154756
                jules
                Felhasználó

                  hat az osszeadas eredmenye egy 3×3-as matrix, ami a „sum”, nalam. de ezt igy nem irathatom ki, h

                  Code:
                  std::cout << sum << std::endl;

                  nem? (hulyeseget ad igy nyilvan…)

                  Hozzászólás: matrix osztaly osszeadasra #2154752
                  jules
                  Felhasználó

                    egy rakas hiba van…. majd kesobb ide copyzom. de alapvetoen a kiiratasnak hulyeseget adok meg.
                    nyilvan valami tömb értékeit kellene kiiratni ket loopban, gondolom.

                    Code:
                    std::cout << valami_tömb[i][j] << std::endl;

                    csak a zoltan22 kollegat kellene rabirni, hogy segitsen!!

                    Hozzászólás: matrix osztaly osszeadasra #2154751
                    jules
                    Felhasználó

                      egy rakas hiba van…. majd kesobb ide copyzom. de alapvetoen a kiiratasnak hulyeseget adok meg.
                      nyilvan valami tömb értékeit kellene kiiratni ket loopban, gondolom.

                      Code:
                      std::cout << valami_tömb[i][j] << std::endl;

                      csak a zoltan22 kollegat kellene rabirni, hogy segitsen!!

                      Hozzászólás: matrix osztaly osszeadasra #2154747
                      jules
                      Felhasználó

                        kerlek zoltan22, segits mar egy kicsit… legalabb nezd meg a kodot, hogy jo-e! a kiiratasos resz nelkul hibatlanul lefordul, de lehet hogy van benne hiba, mert ugye a „sum”-ot igy onmagaban nem lehet kiiratni, ezt valahogy tombositeni kellene… hadd legyek mar okosabb, vegre legyen meg… ez mar tenyleg csak par aprosag…

                      10 bejegyzés megtekintése - 121-130 / 269