Informatica: matrici

franciiavarone
Salve,non riesco a scrivere un programma. La traccia è: Data una matrice 5x5, sostituire agli elementi dispari il loro doppio.
Grazie in anticipo

Risposte
killing_buddha
def double_but_only_if_odd(n):
	return 2*n if n % 2 == 0 else n

def do_it_on_matrices(m):
	return zip(*[[double_but_only_if_odd(m[i][j]) for i in range(len(m))] for j in range(len(m)-1)])

(c'è certamente un modo più pitonico di farlo e di evitare di trasporre la matrice con lambda x: zip(*x), ma questo funziona).

franciiavarone
Grazie,non ci sarebbe un modo più semplice?? Perché ancora non abbiamo studiato questo tipo di linguaggio.

killing_buddha
In cosa vuoi scritta la risposta?

franciiavarone
Noi li facciamo in C++, utilizzando un linguaggio basilare

niccoset
Una possibile soluzione potrebbe essere quella di defiinire una funzione come quella che segue

void doubleUpOddElements(int A[5][5]){
    for(int i=0; i<5; i++){
        for(int j=0; j<5; j++){
            if (A[i][j] %2 == 1)
                A[i][j] *= 2;
        }
    }
}

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.