![]() |
Mòdul
5
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
Pràctica
d'ampliació ![]() ![]() |
Càlcul de la matriu transposada d’una matriu
quadrada
En aquesta pràctica aprendrem com es passen vectors multidimensionals a una funció.
|
||
![]() |
Desenvolupament de la pràctica
Si tenim una matriu A d'n files i m columnes, s'anomena transposada d'A, i es nota AT , com la matriu d'm files i n columnes que resulta de canviar l'element aij per l'element aji. De moment, i per simplificar aquesta pràctica, suposarem matrius quadrades, això vol dir del mateix nombre de files que de columnes. Esquemàticament, si tenim la matriu A:
La matriu transposada és:
En aquesta pràctica construirem una funció anomenada transposada que farà la transposició d'una matriu passada com argument. Definiu un projecte nou anomenat m5p06 i afegiu-li un arxiu de font C/C++ anomenat m5p06.cpp. Escriviu el següent codi:
Explicació del programa El programa demana els elements de la matriu A, una vegada introduïts tots, mostra la matriu, la transposa i la torna a mostrar per veure com s'ha produït la transposició. La transposició es fa a través de la funció transposada(). Fixeu-vos que en el protocol d'aquesta funció s'ha posat double [][MAX_FILES] com a primer argument. És obligatori indicar totes les dimensions menys la primera. La crida es fa amb el nom de la matriu. En els vectors multidimensionals el nom és un punter al primer element d'un vector de punters. En aquest cas, a = &a[0] i a[0]=&a[0][0]. |