Matriu banda X81995


Statement
 

pdf   zip

html

Una matriu banda és una matriu quadrada on els elements no nuls estan confinats al voltant de la diagonal. Volem dibuixar l’aspecte d’una matriu banda d’n×n amb un paràmetre b que ens indica el gruix de la banda. A continuació es mostra el dibuix per diverses bandes en una matriu de 5×5:

.....    x....    xx...    xxx..
.....    .x...    xxx..    xxxx.
.....    ..x..    .xxx.    xxxxx
.....    ...x.    ..xxx    .xxxx
.....    ....x    ...xx    ..xxx

 b=0      b=1      b=2      b=3

Podem interpretar el valor de b com el nombre d’elements no nuls a la primera fila i a la primera columna de la matriu.

Entrada

L’entrada consisteix en diversos casos. Cada cas especifica els valors d’n i b, amb n > 0 i bn.

Sortida

Cal escriure l’aspecte de les matrius bandes amb els caràcters . i x segons les figures mostrades a l’enunciat. Cal afegir una línia en blanc per separar les matrius de cada cas. No hi ha d’haver línia de separació després de la darrera matriu.

Observació

Cal estructurar el programa amb les funcions que es considerin oportunes. Per a cada funció (excepte el main) cal escriure una especificació que indiqui el que fa la funció.

Important

En els comentaris del programa cal contestar a la pregunta següent (20% de la nota de l’exercici):

  • Com caldria modificar el programa per tal que dibuixés una matriu amb dues bandes del mateix gruix (diagonal i anti-diagonal) formant una creu? Escriviu el codi que caldria posar dins dels comentaris del programa.

Aquest és un exemple d’una matriu amb dues bandes (n=8, b=2).

xx....xx
xxx..xxx
.xxxxxx.
..xxxx..
..xxxx..
.xxxxxx.
xxx..xxx
xx....xx
Public test cases
  • Input

    3 0
    3 1
    3 3
    5 2
    5 4

    Output

    ...
    ...
    ...
    
    x..
    .x.
    ..x
    
    xxx
    xxx
    xxx
    
    xx...
    xxx..
    .xxx.
    ..xxx
    ...xx
    
    xxxx.
    xxxxx
    xxxxx
    xxxxx
    .xxxx
    
  • Information
    Author
    INFO-FME
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++ Python