![]() |
Mòdul
3
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
|
Pràctica
d'ampliació ![]() ![]() |
Totes les parelles
En molts casos, els bucles es fan servir per recórrer tots els casos possibles d'una situació concreta. En aquesta pràctica veurem com formar totes les parelles possibles de valors de dues variables diferents.
|
![]() |
Desenvolupament de la pràctica
Aquest programa és un exemple típic d'ús de bucles encaixats. Es tracta de formar totes les parelles possibles d'un conjunt de n elements. Farem els tres casos següents:
El primer cas correspon al que es coneix com variacions amb repetició d'n elements d'ordre 2 i el nombre total d'aquestes són n2. El segon cas correspon a les variacions sense repetició d'n elements d'ordre 2 i el nombre total d'aquestes són: n·(n-1). El tercer cas correspon a les combinacions d'n elements d'ordre 2 i el nombre total d'aquestes és n·(n-1)/2. Definiu un projecte nou anomenat m3p07 i afegiu-li un arxiu de font C/C++ anomenat m3p07.cpp. Escriviu el següent codi:
Explicació del programa En el primer cas,
s'ha utilitzat un doble bucle encaixat amb dues variables comptadores (ct1 i ct2) que recorren, cada una de elles i de forma independent, tots els valors des d'1 fins a n . En el segon cas,
s'ha afegit en el cos del bucle una sentència condicional if per tal de detectar les repeticions i saltar-les. Si ct1=ct2, la condició ct1-ct2 serà falsa i no entrarà dintre del bloc. En el tercer cas,
com que els elements de la parella no es poden repetir, s'ha triat que el primer element és el més petit, i va des de 1 fins n-1 i el segon element, que serà el més gran, va des de ct1+1 fins a n. |