Bases de la programmation (trace de pseudo-code)

La fonction isLeap suivante renvoie true si l'année y est bissextile. and est évalué avant or. Pour quelle valeur de y isLeap(y) renvoie-t-elle true ?

○boolean: isLeap(integer: y)
  return y mod 4 = 0 and y mod 100 ≠ 0 or y mod 400 = 0
  1. A1800
  2. B1900
  3. C2000
Afficher la réponse et l'explication

Réponse : C. 2000

Comme and est prioritaire sur or, la condition signifie (y mod 4 = 0 and y mod 100 ≠ 0) or y mod 400 = 0. Une année est bissextile si elle est divisible par 4 sans l'être par 100, ou si elle est divisible par 400. 1800 et 1900 sont divisibles par 100 mais pas par 400 : elles donnent false. 2000 est divisible par 400 : elle donne true.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de la programmation (trace de pseudo-code)

  1. ÷ est la division ; quand le résultat est affecté à une variable entière (y compris un argument de fonction), la partie fractionnaire est supprimée. Lorsque la fonction pow suivante est appelée sous la forme pow(2, 10), combien de fois pow est-elle appelée, premier appel compris ?
  2. Quelle est la valeur de retour de la fonction s suivante appelée sous la forme s(7) ?
  3. Lorsque la procédure p suivante est appelée sous la forme p(3), quelle suite de valeurs est affichée ?
  4. Quelle est la valeur de retour de la fonction fib suivante appelée sous la forme fib(10) ?
  5. Lorsque la fonction c suivante est appelée sous la forme c(4, 2), combien de fois c est-elle appelée, premier appel compris ?