Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 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 2021-22 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.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

Complessità ciclomatica: metodi?

DGreat (1210 points)
7 11 23
in Programmare in Python by (1.2k points)
Se sviluppassi funzioni e metodi anzichè inserirli direttamente nel main, la complessità ciclomatica migliorerebbe, peggiorerebbe o sarebbe identica?

2 Answers

Best answer
E
Edward (25950 points)
2 4 172
by (26.0k points)
selected by
La complessita ciclomatica aumenta ogni volta che entri in un if, o in un ciclo.

Se al posto di fare quell'if/ciclo chiami una funzione, la complessità ciclomatica diminuisce. Aumentano però leggermente i tempi del programma, che deve fare la chiamata alla funzione (parliamo di micro/nano secondi, ma se la ripeti tante volte potrebbe farsi sentire).
AndreaGasparini (18730 points)
6 12 118
by (18.7k points)
edited by

La complessità ciclomatica viene calcolata per ogni funzione del tuo programma e per la valutazione viene presa in considerazione quella più elevata (quindi più complessa).

Il valore aumenta in base al numero di confronti (if) e cicli (while/for) che effettui e al loro livello di annidamento. Perciò ovviamente scrivere più funzioni che separano le operazioni e svolgono sottoproblemi più piccoli ti aiuterà ad abbassare questo parametro, ma attenzione a non esagerare perché effettuare un numero molto elevato di chiamate ad una funzione può far calare drasticamente l'efficienza.

Installando la libreria radon (conda install -c conda-forge radon) puoi controllare la complessità del tuo programma allo stesso modo in cui viene fatto dal grader dell'homework. Ti basta eseguire questo comando dalla console: radon cc -a -s --show-closures nomeProgramma.py