Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

come diminuire la complessità ciclomatica?

9
9Andrea9 (12340 points)
12 32 56
in Programmare in Python by (12.3k points)
recategorized by
salve , vorrei abbassare la complessità ciclomatica del mio codice per l'Homework  obbligatorio,

ho due funzioni con complessità pari a 6 e 2:
    F 77:0 ex1 - B (6)
    F 68:0 Points - A (2)

2 blocks (classes, functions, methods) analyzed.
Average complexity: A (4.0)

come posso abbassarla ulteriormente?
529 views
closed

1 Answer

Best answer
alessiodellasanta (11830 points)
8 14 34
by (11.8k points)
selected by
Ciao Andrea, la complessità ciclomatica viene appunto calcolata per ogni funzione (per poi fare la media) in base a quanti cicli (for, while, if) ci sono.

Più riesci a snellire il programma utilizzando solo i cicli necessari, più questo punteggio si abbassa.
9
9Andrea9 (12340 points)
12 32 56
by (12.3k points)
Se sostituissi nella funzione ex1 i cicli con ulteriori funzioni, la complessità si abbasserebbe?
g
gullisa (1170 points)
7 26 32
by (1.2k points)
Sì, più il codice principale è snello più la complessità si riduce all'aumentare delle esecuzioni che esternalizzi
a
alex_andrei13 (3800 points)
14 41 53
by (3.8k points)
Buonasera, come detto anche dagli altri ragazzi, dovresti diminuire l'utilizzo di determinati cicli/operazioni superflue. Esiste anche un sito https://wiki.python.org/moin/TimeComplexity che ti potrebbe aiutare molto a capire le dinamiche
M
Matteo Benvenuti (370 points)
3 8 9
by (370 points)
Da quello che ricordo a lezione é stato detto che la complessità ciclomatica non viene calcolata facendo la media delle complessità di tutte le funzioni ma considerando solamente  la funzione con la complessità più alta questo per evitare si possa abbassare la complessità totale  creando tante  piccole funzioni che non fanno niente . Per abbassarla quindi basta dividere il proprio programma in  funzioni più piccole , facendo questo però potrebbe alzarsi il tempo di esecuzione del programma.