Am-MagischesQuadrat

Ex-2MNd Forum
Verfügbare Informationen zu "Am-MagischesQuadrat"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: vogel - Sullivan - DB - heavyraptor - JomBo
  • Forum: Ex-2MNd Forum
  • Forenbeschreibung: Das ex-offizielle Forum der Klasse 2MNd des Gymnasiums Neufeld - offiziell: www.2mnd.ch.vu
  • aus dem Unterforum: Gymnasium
  • Antworten: 6
  • Forum gestartet am: Donnerstag 15.02.2007
  • Sprache: deutsch
  • Link zum Originaltopic: Am-MagischesQuadrat
  • Letzte Antwort: vor 16 Jahren, 11 Monaten, 26 Tagen, 16 Stunden, 46 Minuten
  • Alle Beiträge und Antworten zu "Am-MagischesQuadrat"

    Re: Am-MagischesQuadrat

    vogel - 30.04.2007, 16:21

    Am-MagischesQuadrat
    wala, sött loufe...

    Code: /**************************************************************************
      PROGRAM  : MAGICSQ.CPP
      COPYRIGHT:
      CODED BY :
      PURPOSE  :
      REMARKS  :
      COMPILE  : Borland C++, large memory model
     **************************************************************************/

    /**************************** Revision history ****************************
      REV   DATE        NAME  PURPOSE
      ----  ----------- ----  -------------------------------------------------
      1.00  2-APR-2007
     **************************************************************************/

    #include <champ.h>
    #include <stdlib.h>


    void gmain ()
    {
       cinit( "Magische Quadrate" );

       cout << "Erstellen eine magischen Quadrats\n\n"
            << setfill( '-' ) << setw( 80 ) << "-" << setfill( ' ' );

       int n;
       cout << "Gib die Seitenlänge des Quadrats an:  ";
       cin >> n;

       // Zweidimensionalen Array dynamisch erzeugen.
       int ** quadrat = new int*[n];
       int i,j;
       for ( i = 0; i<n; i++ )
          quadrat[i] = new int[n];


       // Mit Nullen füllen

       for( i=0; i<n; i++ )
          for( j=0; j<n; j++)
             quadrat[j][i] = 0;

       //Füllen

       int zahl = 1;
       int x=0;
       int y=n-1;
       int oldx;
       int oldy;

       do
       {
          cout << "Startposition X-Achse einlesen:";
          cin >> x;
       }while(x>=n || x<0);
       do
       {
          cout << "Startposition Y-Achse einlesen:";
          cin >> y;
       }while(y>=n || y<0);

       do
       {
          if(x==n)
             x=0;
          if(y<0)
             y=n-1;
          if(y==n)
             y=0;
          if(quadrat[x][y]==0)
          {
             quadrat[x][y] = zahl;
             oldx = x;
             oldy = y;

             x++;
             y--;
             zahl++;
          }else{
             x = oldx;
             y = oldy+1;
          }
       }while( zahl <= n*n );

       // Ausgabe

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

          cout << setw( 4*n+1 ) << setfill('-') << "-" << endl;

          for( j=0; j<n; j++)
             cout << "|" << setw(3) << setfill(' ') << quadrat[j][i];

          cout << "|" << endl;

       }

       cout << setw( 4*n+1 ) << setfill('-') << "-" << endl;

       //Prüfen

       int pruefen = 0;
       int summe = 0;
       int summeold = 0;

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

          for( j=0; j<n; j++)
             summe += quadrat[i][j];
          if( i>0 )
          {
             if( summe == summeold )
             {
                summeold = summe;
                summe = 0;
             }
             else
             {
                pruefen = 1;
             }
          }else{
             summeold = summe;
             summe = 0;
          }

       }
       for( i=0; i<n; i++)
       {

          for( j=0; j<n; j++)
             summe += quadrat[j][i];
          if( i>0 )
          {
             if( summe == summeold )
             {
                summeold = summe;
                summe = 0;
             }
             else
             {
                pruefen = 1;
             }
          }else{
             summeold = summe;
             summe = 0;
          }

       }

       if( pruefen==0 )
          cout << "Dies ist ein magisches Quadrat!" << endl;
       else
          cout << "Dies ist kein magisches Quadrat!" << endl;


       // Dynamische erzeugte Arrays wieder freigeben
       for ( i = 0; i<n; i++ )
          delete [] quadrat[i];
       delete [] quadrat;

       getch();
       cend();

    }



    Re: Am-MagischesQuadrat

    Sullivan - 30.04.2007, 16:24

    Re: Am-MagischesQuadrat
    vogel hat folgendes geschrieben: wala, sött loufe...

    wala????

    Merci fürs Programm!!!



    Re: Am-MagischesQuadrat

    DB - 30.04.2007, 16:40


    merci



    Re: Am-MagischesQuadrat

    DB - 30.04.2007, 16:40


    merci



    Re: Am-MagischesQuadrat

    heavyraptor - 30.04.2007, 16:47


    HAIL



    Re: Am-MagischesQuadrat

    JomBo - 07.05.2007, 22:09

    Re: Am-MagischesQuadrat
    Code: /**************************************************************************
      PROGRAM  : MAGICSQ.CPP
      COPYRIGHT:
      CODED BY :
      PURPOSE  :
      REMARKS  :
      COMPILE  : Borland C++, large memory model
     **************************************************************************/

    /**************************** Revision history ****************************
      REV   DATE        NAME  PURPOSE
      ----  ----------- ----  -------------------------------------------------
      1.00  2-APR-2007
     **************************************************************************/

    #include <champ.h>
    #include <stdlib.h>


    void gmain ()
    {
       cinit( "Magische Quadrate" );

       cout << "Erstellen eine magischen Quadrats\n\n"
            << setfill( '-' ) << setw( 80 ) << "-" << setfill( ' ' );

       int n;
       do
       {
       cout << "Gib die Seitenlänge des Quadrats an:  ";
       cin >> n;
       } while (n<3 && n%2==0)

       // Zweidimensionalen Array dynamisch erzeugen.
       int ** quadrat = new int*[n];
       int i,j;
       for ( i = 0; i<n; i++ )
          quadrat[i] = new int[n];


       // Mit Nullen füllen

       for( i=0; i<n; i++ )
          for( j=0; j<n; j++)
             quadrat[j][i] = 0;

       //Füllen

       int zahl = 1;
       int x=0;
       int y=n-1;
       int oldx;
       int oldy;

       do
       {
          cout << "Startposition X-Achse einlesen:";
          cin >> x;
          x=x-1;
       }while(x>=n || x<0);
       do
       {
          cout << "Startposition Y-Achse einlesen:";
          cin >> y;
           y=y-1;
       }while(y>=n || y<0);

       do
       {
          if(x==n)
             x=0;
          if(y<0)
             y=n-1;
          if(y==n)
             y=0;
          if(quadrat[x][y]==0)
          {
             quadrat[x][y] = zahl;
             oldx = x;
             oldy = y;

             x++;
             y--;
             zahl++;
          }else{
             x = oldx;
             y = oldy+1;
          }
       }while( zahl <= n*n );

       // Ausgabe

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

          cout << setw( 4*n+1 ) << setfill('-') << "-" << endl;

          for( j=0; j<n; j++)
             cout << "|" << setw(3) << setfill(' ') << quadrat[j][i];

          cout << "|" << endl;

       }

       cout << setw( 4*n+1 ) << setfill('-') << "-" << endl;

       //Prüfen

       int pruefen = 0;
       int summe = 0;
       int summeold = 0;

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

          for( j=0; j<n; j++)
             summe += quadrat[i][j];
          if( i>0 )
          {
             if( summe == summeold )
             {
                summeold = summe;
                summe = 0;
             }
             else
             {
                pruefen = 1;
             }
          }else{
             summeold = summe;
             summe = 0;
          }

       }
       for( i=0; i<n; i++)
       {

          for( j=0; j<n; j++)
             summe += quadrat[j][i];
          if( i>0 )
          {
             if( summe == summeold )
             {
                summeold = summe;
                summe = 0;
             }
             else
             {
                pruefen = 1;
             }
          }else{
             summeold = summe;
             summe = 0;
          }

       }

       if( pruefen==0 )
          cout << "Dies ist ein magisches Quadrat!" << endl;
       else
          cout << "Dies ist kein magisches Quadrat!" << endl;


       // Dynamische erzeugte Arrays wieder freigeben
       for ( i = 0; i<n; i++ )
          delete [] quadrat[i];
       delete [] quadrat;

       getch();
       cend();

    }

    so, mit dere "modifikation" sötte eiglech aui gah, wo sötte gah... bi nid sicher, dassis richtig gschribe ha, gloubes aber... (Magic Squares göh nur bi ungrader aazau... und bi grösser glich drü, da sittelengi '1' komplett witzlos isch und unger '0' darfs ja nid gah... negativi sittelengi... sone scheiss^^ (aso spiufäudgrössi vränderet - faus öppis nümm funktioniert!)


    usserdäm hani gmacht, dass ganz obe links nid 0,0 isch sondern 1,1... isch viu logischer finge ig (aso schtart-koordinate vränderet - faus öppis nümm funktioniert!)



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Ex-2MNd Forum

    Musik - gepostet von Ivan am Donnerstag 31.05.2007
    Christentum = Scheisse - gepostet von heavyraptor am Samstag 21.04.2007
    öksnef - gepostet von jamflex am Mittwoch 01.08.2007
    Witschi - gepostet von mätthu am Samstag 17.02.2007
    Läseprotokoll: Katherina Blum oder so - gepostet von mätthu am Sonntag 13.05.2007



    Ähnliche Beiträge wie "Am-MagischesQuadrat"