Martix Kasten



  • kann ich dich per icq erreichen



  • Du sollst deine Frage hier stellen. Das will er damit sagen.
    Denn aus deiner Frage kann man nicht wirklich entnehmen wie das, was du machen willst/sollst, aussehen soll.

    Das sollte dir beim stellen deiner Fragen helfen: http://www.lugbz.org/documents/smart-questions_de.html

    BR
    evilissimo





  • #include <stdio.h>

    int main()
    {
    int ObenLinks = 218,
    UntenLinks = 192,
    UntenRechts = 217,
    ObenRechts = 191,
    ObenUnten = 196,
    LinksRechts = 179,
    ObenSpalte = 194,
    LinksZeile = 195,
    MitteSpZe = 197,
    RechtZeile = 180,
    UntenSpalte = 193,
    Zeilen,
    Spalten,
    Breite,
    Hoehe;

    printf("Geben Sie die Anzahle der Spalten ein: ");
    scanf("%i", &Spalten);
    printf("Geben Sie die Anzahl der Zeilen ein: ");
    scanf("%i", &Zeilen);
    printf("Geben Sie die Zellenbreite ein: ");
    scanf("%i", &Breite);
    printf("Geben Sie die Zellenhoehe ein: ");
    scanf("%i", &Hoehe);

    printf("%c", ObenSpalte);
    for(int s = 0; s < Spalten - 2; s++)
    {
    printf("%c", ObenUnten);
    }

    printf("%c", LinksZeile);
    for(int d= 0; d < Zeilen - 2; d++)

    printf("%c", RechtZeile);
    for(int f = 0; f < Breite - 2; f++)

    printf("%c", UntenSpalte);
    for(int g = 0; g < Hoehe - 2; g++)

    printf("%c", ObenLinks);
    for(int j = 0; j < Breite - 2; j++)
    {
    printf("%c", ObenUnten);
    }
    printf("%c\n", ObenRechts);
    Hoehe -= 2;
    for(int i = 0; i < Hoehe; i++)
    {
    printf("%c", LinksRechts);
    for(int j = 0; j < Breite - 2; j++)
    {
    printf(" ");
    }
    printf("%c\n", LinksRechts);
    }
    printf("%c", UntenLinks);
    for(j = 0; j < Breite - 2; j++)
    {
    printf("%c", ObenUnten);
    }
    printf("%c", UntenRechts);
    printf("\n\n");
    return 0;
    }
    will das Programm irgendwie ändern damit ich einen Matrix Kasten mit n hor Spalten und n ver Zeilen erzeugt, die Zellenhöhe und Zellenbreite variable ist. Alle Parameter sollen vorher abgefragt werden.
    Ich blick da irgendwie nicht durch wie ich die for schleifen schreiben soll.
    DANKE



  • da mußt du systematisch rangehen.

    +-----+-----+-----+
      ^     ^     ^
      |     |     |
      |     |     Breite
      |    Breite
     Breite
    

    du mußt Breite mal '-'-zeichen ausgeben. das mußt du dann Spalten mal wiederholen mit '+'-zeichen dazwischen. das erreicht du indem du die for-schleifen schachtelst:

    cout<<"+";
    for(s=0; s<Spalten; ++s)
    {
      for(int b=0; b<Breite; ++b)
      {
        cout<<"-";
      }
      cout<<"+";
    }
    cout<<endl;
    

    nach dem selben prinzip baust du dann den rest des kastens.



  • Das versteh ich nicht ganz ..... wie soll ich das genau machen.. soll ich dann die anderen Schleifen durch das cout ersetzen???



  • wenn das so reicht:
    kannst meine source codes haben, also als eine mögliche lösung...

    also so siehts bei mir aus im output...
    
    -::matrix::-
    (| 0.0000  |  4.000  |  8.000  |  12.00  |)
    (|  1.000  |  5.000  |  9.000  |  13.00  |)
    (|  2.000  |  6.000  |  10.00  |  14.00  |)
    (|  3.000  |  7.000  |  11.00  |  15.00  |)
    

    allerdings sind die klassen ansich vielleicht ein wenig kompliziert... weil die sind mit templates ein wenig optimiert...

    ja gib mir ne email-addi und du bekommst sie gern...
    allerdings hab ich da ne maximal-länge eingebaut oder so... könntest natrülich auch eine dynamische spaltenlänge und breite machen... einfach mal berechenen wie viele stellen deine zahlen brauchen und dann schauen wieviele stellen maximal pro spalte benötigt werden und und und....

    mfg Manuel



  • danielscheibel@arcor.de
    hast du icq oder ähnliches



  • so... kann aber ein wenig dauern... yahoo ist irgendwie slow...

    naja ich hoffe du kannst was damit anfangen, aber ist vielleicht ein wenig kompliziert.. schau dir halt vorallem den output an. einige header werden gar nicht verwendet, da hab ich nur einen unroll von einer normalen schleife, einer einfach geschachtelten und 2 fach geschachtelten gemacht, und dann erst nicht so benutzt... konzentrier dich halt auf die eine output funktion..

    template<long dim> std::ostream& operator<<(std::ostream& os, const sqrd_matrix<dim>& rv)
    

    wenn du generell ein objekt hast (matrix) dann kannst du einen operator<< für alle output stream dinge machen... also das sollte auch für files funktionieren.

    einfach einen opertor<< mit diesen parametern machen und schon kannst deine objekte bequem mit cout ausgeben wie int's oder strings... 👍

    std::ostream& operator<<(std::ostream& os, <dein typ>& obj)
    
    // bequeme ausgabe:
      ...
      ...
      <dein type> object;
      std::cout<<"wert von meinem objekt: "<<object<<std::endl;
      ...
      ...
    


  • oh... sry... also wegen C

    aber warum postest du das in c++??

    in c gibts nat. kein cout... und templates und classen usw...
    mfg manuel


Anmelden zum Antworten