Source: https://www.kiteb.net/education/informatique/bac/bacinfo2012/bac-pratique-28052012-sc-corrige1.pdf