Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Drukowanie "przewróconej" tablicy

Ostatnio zmodyfikowano 2016-03-07 14:55
Autor Wiadomość
magick200
Temat założony przez niniejszego użytkownika
Drukowanie "przewróconej" tablicy
» 2016-03-06 23:40:20
Cześć

Potrzebuję pomocy z wydrukowaniem tablicy w taki oto sposób

https://imgur.com/T5ngUct

Czy ktoś ma może pomysł jak sobie z tym poradzić?
P-145652
darko202
» 2016-03-07 10:53:03
chcesz to wydrukować znakowo czy graficznie ?

znakowo byłoby jakoś tak
_ _ _ _ _ _ _ 0 _ 0 _ _ _ _ _ _ _
_ _ _ _ _ _ 1 _ x _ 1 _ _ _ _ _ _
_ _ _ _ _ 2 _ x _ x _ 2 _ _ _ _ _
....
....
_ _ _ _ _ 2 _ x _ x _ 2 _ _ _ _ _
_ _ _ _ _ _ 1 _ x _ 1 _ _ _ _ _ _
_ _ _ _ _ _ _ 0 _ 0 _ _ _ _ _ _ _
itd.

jak widać jest to tablic.
"_" - puse miejsca - zaznaczyłem aby pokazać ideę

graficznie
musi być podobnie, choć zależy jak chcesz rysować np. linie  
P-145657
mokrowski
» 2016-03-07 12:13:50
C/C++
#include <vector>
#include <iostream>
#include <iomanip>

using namespace std;

using VecTbl_t = vector < vector < int >>;

constexpr static size_t value_width = 4;

void show_diagonal( const VecTbl_t & tbl, size_t row, size_t rows ) {
    // show spaces..
    for( size_t i = rows - row; i > 1; --i ) {
        cout << setw( value_width ) << left << "";
    }
    // show values...
    for( size_t index = 0; index <= row; ++index ) {
        cout << setw( value_width ) << left << tbl[ index ][ index ];
        cout << setw( value_width ) << left << "";
    }
    cout << endl;
}

void diamond_vector( const VecTbl_t & tbl ) {
    const size_t rows = tbl.size();
    // "up diamond"
    for( size_t row = 0; row < rows; ++row ) {
        show_diagonal( tbl, row, rows );
    }
    // "down diamond"
    for( size_t row = rows; row > 1; --row ) {
        show_diagonal( tbl, row - 2, rows );
    }
}

int main() {
   
    VecTbl_t my_vec = {
        { 0, 1, 2, 3 },
        { 0, 10, 20, 30 },
        { 0, 100, 200, 300 },
        { 0, 1000, 2000, 3000 }
    };
   
    diamond_vector( my_vec );
}
Smacznego :-)
Kompilować w trybie zgodności z C++11 choć nie szalałem z nowymi właściwościami (bodajże inicjalizacja i using zamiast typedef a i no constexpr...).
P-145663
mateczek
» 2016-03-07 14:55:33
C/C++
#include <iostream>

using namespace std;
int main() {
    char tablica[ 5 ][ 5 ] = { { 'a', 'b', 'c', 'd', 'e' },
        { 'a', 'b', 'c', 'd', 'e' },
        { 'a', 'b', 'c', 'd', 'e' },
        { 'a', 'b', 'c', 'd', 'e' },
        { 'a', 'b', 'c', 'd', 'e' }
    };
   
   
    char nowa[ 9 ][ 9 ];
   
    for( int i = 0; i < 9; i++ ) {
        for( int k = 0; k < 9; k++ ) {
            nowa[ i ][ k ] = ' '; // nową tablicę inicjalizuje spacjami
        }
    }
   
    //budowa nowej tablicy kopiemy kolumnę w dół
    for( int w = 0; w < 5; w++ ) {
        for( int k = 0; k < 5; k++ ) {
            nowa[ w + k ][ k ] = tablica[ w ][ k ]; //wiersz elementu spada o kolumnę w dół
        }
    }
   
   
    //wyświtlenie nowej tablicy
   
    for( int i = 0; i < 9; i++ ) {
        for( int k = 0; k < 9; k++ ) {
            cout << nowa[ i ][ k ];
        }
        cout << endl;
    }
   
}
P-145667
« 1 »
  Strona 1 z 1