gabaman

Hozzászólások

10 bejegyzés megtekintése - 311-320 / 2,173
  • Szerző
    Bejegyzés
  • Hozzászólás: file beolvasás c++ #2174448
    gabaman
    Felhasználó
      uzsolt wrote:
      1. Van egy olyan függvény, hogy eof, nézz utána! Biztosan c++ is ismer ilyet…

      Létezik egy ‘bool std::ifstream::eof()’ metódus, már csak az a kérdés, hogy hol kell megadni hogy ‘FILE*’ típust használjon.  😮

      uzsolt wrote:
      2. Dos/win alatt írtad? Tele van ^M-mel…

      Talán ez a legkisebb probléma. Bár csak ez lenne a legnagyobb.

      uzsolt wrote:
      De látom, gabaman is hasonlóan gondolkodik…

      Ez most jó vagy rossz?  ;D

      uzsolt wrote:
      Biztosan így szól a házi feladat 😉

      Milyen legyen a megoldás ha már a feladatban megadott dolgok ordítanak és mentális fájdalmat okoznak? Ha a tanító bácsi nem tanulta meg a C++ használatát, akkor mit vár a kisdiáktól?  :rolleyes:

      Hozzászólás: file beolvasás c++ #2174443
      gabaman
      Felhasználó
        kisbetu wrote:
        Pedig idáig még értettem is…

        Ilyesmi kellene (C++ szemlélettel):

        Code:
        template struct Complex {
            T R,I; 
        };

        template class MatrixRow {
          friend class Matrix;
          private:
            int N;
            Complex *V;
            MatrixRow (int n, T* v);
          public:
            MatrixRow (); // Nem implementált
            Complex operator [] (int num);
            MatrixRow& operator = (const MatrixRow &m);
        };

        template class Matrix {
          private:
            int N;
            Complex **V;
          public:
            MatrixRow (); // Nem implementált
            MatrixRow (int n);
            MatrixRow operator [] (int num);
            Matrix& operator = (const Matrix &m);
            bool operator != (const Matrix &m);
            bool operator == (const Matrix &m);
        };

        Így már nem olyan egyszerű, de akkor már miért kell C++ a C helyett?

        Hozzászólás: file beolvasás c++ #2174444
        gabaman
        Felhasználó
          kisbetu wrote:
          Pedig idáig még értettem is…

          Ilyesmi kellene (C++ szemlélettel):

          Code:
          template struct Complex {
              T R,I; 
          };

          template class MatrixRow {
            friend class Matrix;
            private:
              int N;
              Complex *V;
              MatrixRow (int n, T* v);
            public:
              MatrixRow (); // Nem implementált
              Complex operator [] (int num);
              MatrixRow& operator = (const MatrixRow &m);
          };

          template class Matrix {
            private:
              int N;
              Complex **V;
            public:
              MatrixRow (); // Nem implementált
              MatrixRow (int n);
              MatrixRow operator [] (int num);
              Matrix& operator = (const Matrix &m);
              bool operator != (const Matrix &m);
              bool operator == (const Matrix &m);
          };

          Így már nem olyan egyszerű, de akkor már miért kell C++ a C helyett?

          Hozzászólás: file beolvasás c++ #2174439
          gabaman
          Felhasználó

            Mellesleg ez egy ultra gagyi hányinger (általában agy nélküli matematikusok és fizikusok csinálnak ilyet):

            Code:
            #define SIZE  50
            #define REAL  double
            #define SQRT  sqrt
            #define ABS   fabs

              typedef  struct {
                REAL R,I; 
              } COMPLEX;

              typedef COMPLEX CMat[SIZE][SIZE];

            Hozzászólás: file beolvasás c++ #2174440
            gabaman
            Felhasználó

              Mellesleg ez egy ultra gagyi hányinger (általában agy nélküli matematikusok és fizikusok csinálnak ilyet):

              Code:
              #define SIZE  50
              #define REAL  double
              #define SQRT  sqrt
              #define ABS   fabs

                typedef  struct {
                  REAL R,I; 
                } COMPLEX;

                typedef COMPLEX CMat[SIZE][SIZE];

              Hozzászólás: file beolvasás c++ #2174437
              gabaman
              Felhasználó

                Azt hiszem kezdem érteni mit szeretnél. Van egy C++ mátrix feldolgozó gyűjteményed és ahhoz szeretnél beolvasó részt készíteni.

                jules wrote:
                Kiprobaltam 1000 helyett csak 2-re, de igy csak a 2. matrixot olvassa be 🙁

                Code:
                void BEO() {

                  int i, j;
                  FILE *fp;
                  fp=fopen(„matrix.dat”,”r”);

                  for(int k=0; k<2; k++){
                  fscanf(fp,"%d", &N);
                  for (i=1; i<=N; i++)
                    for (j=1; j<=N; j++)
                      fscanf(fp,"%lf %lf", &A[i][j].R, &A[i][j].I);
                  }
                  fclose(fp);

                };

                Valami ilyesmit szeretnél: (nem kommentezem, mert ha nem érted úgyis reménytelen)

                Code:
                typedef COMPLEX ** MATRIX;

                MATRIX matrix_letrehozas (int N)
                {
                  MATRIX A;
                  A = new (COMPLEX*)[N];
                  for (int  i=0;i<N;i++)
                    A[i] = new COMPLEX[N];
                  return A;
                }

                bool matrix_beolvasas (FILE *fp, MATRIX A)
                {
                  int N;
                  if (fscanf(fp,"%dn", &N) != 1)
                    return false;

                  A = matrix_letrehozas (N);

                  for (i=1; i<=N; i++)
                    for (j=1; j<=N; j++)
                      if (fscanf(fp,"%lf %lfn", &A[i][j].R, &A[i][j].I) != 2)
                        return false;

                  return true;
                }

                void BEO() {

                  int i, j;
                  FILE *fp;
                  MATRIX M[2];

                  fp=fopen("matrix.dat","r");

                  for(int k=0; k<2; k++)
                    if (matrix_beolvasas (fp, M[k]) != true) {
                      std::cerr << "Hibaüzenet" << std::endl;
                      exit (-1);
                    }
                  fclose(fp);

                  (…) // Ide jön a mátrix feldolgozás
                };

                Alapvető hibák:
                – mindig ugyanabba a változóba olvasd be a mátrixot, ezért tudod az utolsót elérni
                – nem teszed külön függvénybe a logikailag különálló részeket
                – nincs alapvető hibakezelés sem, ezért nem tudod mi jó és mi nem
                – fogalmad sincs mi a tömb adatszerkezet
                – erősen kevered a C és C++ gondolkodásmódot (=> káosz)

                Hozzászólás: file beolvasás c++ #2174438
                gabaman
                Felhasználó

                  Azt hiszem kezdem érteni mit szeretnél. Van egy C++ mátrix feldolgozó gyűjteményed és ahhoz szeretnél beolvasó részt készíteni.

                  jules wrote:
                  Kiprobaltam 1000 helyett csak 2-re, de igy csak a 2. matrixot olvassa be 🙁

                  Code:
                  void BEO() {

                    int i, j;
                    FILE *fp;
                    fp=fopen(„matrix.dat”,”r”);

                    for(int k=0; k<2; k++){
                    fscanf(fp,"%d", &N);
                    for (i=1; i<=N; i++)
                      for (j=1; j<=N; j++)
                        fscanf(fp,"%lf %lf", &A[i][j].R, &A[i][j].I);
                    }
                    fclose(fp);

                  };

                  Valami ilyesmit szeretnél: (nem kommentezem, mert ha nem érted úgyis reménytelen)

                  Code:
                  typedef COMPLEX ** MATRIX;

                  MATRIX matrix_letrehozas (int N)
                  {
                    MATRIX A;
                    A = new (COMPLEX*)[N];
                    for (int  i=0;i<N;i++)
                      A[i] = new COMPLEX[N];
                    return A;
                  }

                  bool matrix_beolvasas (FILE *fp, MATRIX A)
                  {
                    int N;
                    if (fscanf(fp,"%dn", &N) != 1)
                      return false;

                    A = matrix_letrehozas (N);

                    for (i=1; i<=N; i++)
                      for (j=1; j<=N; j++)
                        if (fscanf(fp,"%lf %lfn", &A[i][j].R, &A[i][j].I) != 2)
                          return false;

                    return true;
                  }

                  void BEO() {

                    int i, j;
                    FILE *fp;
                    MATRIX M[2];

                    fp=fopen("matrix.dat","r");

                    for(int k=0; k<2; k++)
                      if (matrix_beolvasas (fp, M[k]) != true) {
                        std::cerr << "Hibaüzenet" << std::endl;
                        exit (-1);
                      }
                    fclose(fp);

                    (…) // Ide jön a mátrix feldolgozás
                  };

                  Alapvető hibák:
                  – mindig ugyanabba a változóba olvasd be a mátrixot, ezért tudod az utolsót elérni
                  – nem teszed külön függvénybe a logikailag különálló részeket
                  – nincs alapvető hibakezelés sem, ezért nem tudod mi jó és mi nem
                  – fogalmad sincs mi a tömb adatszerkezet
                  – erősen kevered a C és C++ gondolkodásmódot (=> káosz)

                  Hozzászólás: Kernel hiba miatti chip-meghibásodás #2173495
                  gabaman
                  Felhasználó

                    Nekem úgy tűnik, hogy nagyon sok emberkét becsapnak ezek a szándékosan túlzó és félelmet keltő (FUD) cikkek. Az hogy ilyesmi itt is előfordul azt bizonyítja – szerintem – hogy nagyon kezd leépülni ez a közösség. Elég megnézni még a linux vírusokról szóló témákat.

                    Idézek a Linux e1000e meghajtó forráskódjából:

                    Copyright(c) 1999 – 2008 Intel Corporation.

                    Forrás: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=drivers/net/e1000e;

                    Tehát:
                    1. van egy Intel termék a sok ezerből (e10000e)
                    2. a gyártó (Intel) fejleszti a nyílt forráskódú meghajtót hozzá
                    3. nem stabil, fejlesztés alatt levő meghajtóról van szó
                    4. egyes disztribek használják a nem stabil, fejlesztés alatt levő verziókban
                    5. van elérhető javítás hozzá

                    Következtetés: a Linux kernel megeszi a chip-eket ezért veszélyes, tehát kerülendő

                    Hozzászólás: Kernel hiba miatti chip-meghibásodás #2173496
                    gabaman
                    Felhasználó

                      Nekem úgy tűnik, hogy nagyon sok emberkét becsapnak ezek a szándékosan túlzó és félelmet keltő (FUD) cikkek. Az hogy ilyesmi itt is előfordul azt bizonyítja – szerintem – hogy nagyon kezd leépülni ez a közösség. Elég megnézni még a linux vírusokról szóló témákat.

                      Idézek a Linux e1000e meghajtó forráskódjából:

                      Copyright(c) 1999 – 2008 Intel Corporation.

                      Forrás: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=drivers/net/e1000e;

                      Tehát:
                      1. van egy Intel termék a sok ezerből (e10000e)
                      2. a gyártó (Intel) fejleszti a nyílt forráskódú meghajtót hozzá
                      3. nem stabil, fejlesztés alatt levő meghajtóról van szó
                      4. egyes disztribek használják a nem stabil, fejlesztés alatt levő verziókban
                      5. van elérhető javítás hozzá

                      Következtetés: a Linux kernel megeszi a chip-eket ezért veszélyes, tehát kerülendő

                      Hozzászólás: Megint a „Linuxvírus”… #2172096
                      gabaman
                      Felhasználó

                        Véletlenül nem települt fel a beagle? Az képes ilyesmit csinálni, főleg ha rosszul van beállítva. Viszont ha egyszer végigfut akkor nagyon hasznos tud lenni.

                        http://beagle-project.org

                      10 bejegyzés megtekintése - 311-320 / 2,173