gvnnz / tris

1 stars 0 forks source link

Stampare elenco coordinate sugli assi X e Y #30

Open Ace-Miky opened 6 months ago

Ace-Miky commented 6 months ago

Esempio:

0
1
2
  0 1 2
Ace-Miky commented 6 months ago

@gvnnz Sull'asse Y e' ok:


def print_coordinate_graph1(matrix):
    coordinated = 0
    for row in matrix.data:
        print(coordinated)
        coordinated = coordinated + 1

output:

0
1
2
Ace-Miky commented 6 months ago

sull'asse X invece ci sono problemi:

def print_coordinate_graph3(matrix):
    column_coordinated = []
    n = 0
    for element in range(matrix.count_columns()):
        column_coordinated.append(n)
        n = n + 1
    print(column_coordinated)

output: [0, 1, 2]


def print_coordinate_graph2(matrix):
    column_coordinated = ""
    for element in range(matrix.count_columns()):
        column_coordinated = column_coordinated + " c"
    print(column_coordinated)

output:

c c c

Ace-Miky commented 6 months ago

@gvnnz ok, risolto


def print_coordinate_graph_abscissa(matrix):
    column_coordinated = []
    n = -1
    for element in range(matrix.count_columns()):
        n = n + 1
        x = str(n)
        column_coordinated.append(x)
    column_coordinated_string = " ".join(column_coordinated)
    print("  " + column_coordinated_string)

Poi sistemero' i nomi delle variabili per rendere il tutto piu' chiaro

Ace-Miky commented 6 months ago

Quindi:


def print_coordinate_graph_ordinate(matrix):
    coordinated = 0
    for row in matrix.data:
        print(coordinated)
        coordinated = coordinated + 1

e


def print_coordinate_graph_abscissa(matrix):
    column_coordinated = []
    n = -1
    for element in range(matrix.count_columns()):
        n = n + 1
        x = str(n)
        column_coordinated.append(x)
    column_coordinated_string = " ".join(column_coordinated)
    print("  " + column_coordinated_string)

come output da:

0
1
2
  0 1 2
gvnnz commented 6 months ago

@Ace-Miky l'idea è giusta. Io le semplificherei solo un po', tipo:

def print_coordinate_graph_ordinate(matrix):
    for i in range(matrix.count_rows()): # matrix.count_rows() è più chiaro di matrix.data
        print(i)

def print_coordinate_graph_abscissa(matrix):
    s = ""
    for i in range(matrix.count_columns()):
        s = s + str(i) + " "
    print("  " + s)

La parte più complicata è far stampare il tutto a view.print_matrix. Quella funzione crea una stringa temporanea row_string a cui ci attacca altre stringhe che contengono i simboli del tabellone. Io farei così: per le ordinate, inserisci i valori all'inizio di row_string; per l'ascissa invece si può usare print_coordinate_graph_abscissa() che hai già.

Ace-Miky commented 6 months ago

@gvnnz TOP!