com's notebooks

  • 3 - /com/3
    Last edited 4 years ago
    // D'abord on écrit la base de règles de calcul de l'impôt dans notre nouveau langage base = ` - nom: revenu imposable format: euros - nom: revenu abattu formule: allègement: assiette: revenu imposable abattement: 10% - nom: impôt sur le revenu formule: barème: assiette: revenu abattu tranches: - en-dessous de: 9807 taux: 0% - de: 9807 à: 27086 taux: 14% - de: 27086 à: 72617 taux: 30% - de: 72617 à: 153783 taux: 41% - au-dessus de: 153783 taux: 45% - nom: impôt final formule: allègement: assiette: impôt sur le revenu décote: plafond: 1177 taux: 75% ` // Puis on écrit les instructions de notre calcul instructions = [ // 1) ce que l'on veut calculer, notre objectif : 'impôt final', // 2) nos données d'entrée, qui décrivent notre situation : { 'revenu imposable': 2000*12 },    // 3) la base de règles, qui contient notamment la règle 'impôt final' et la règle 'revenu imposable'   { base } ] // On charge la bibliothèque de calcul publiée par l'Etat require("mon-entreprise@1.2.1") // Et finalement, on lance le calcul ! .default.evaluate(...instructions) // et hop, on obtient le même résultat !
  • 1 - /com/1
    Last edited 4 years ago
    ri = 2000 * 12 ria = ri * 0.9 irad = Math.max(Math.min(ria, 27086) - 9807, 0) * 0.14 + Math.max(Math.min(ria, 72617) - 27086, 0) * 0.3 + Math.max(Math.min(ria, 153783) - 72617, 0) * 0.41 + Math.max(ria - 153783, 0) * 0.45; ir = (irad < 1569) ? Math.max(irad - (1177 - irad * (3 / 4)), 0) : irad // puis on affiche le résultat : ir
  • 2 - /com/2
    Last edited 6 years ago
    // L'impôt final est le résultat de ces trois opérations succéssives sur le revenu imposable annuel impôtFinal = décote(barème(abattement(2000 * 12))); // Voici ces opérations une par une : function abattement(revenuImposable) { return revenuImposable - revenuImposable * (10/100); } function barème(assiette) { return ( Math.max(Math.min(assiette, 27086) - 9807, 0) * 0.14 + Math.max(Math.min(assiette, 72617) - 27086, 0) * 0.3 + Math.max(Math.min(assiette, 153783) - 72617, 0) * 0.41 + Math.max(assiette - 153783, 0) * 0.45 ); } function décote(impôt) { if (impôt < 1569) return Math.max(impôt - (1177 - impôt * (3 / 4)), 0); else return impôt; } // On affiche le résultat final impôtFinal
  • 1 - /com/explications
    Last edited 6 years ago
    On part d'un code dégueu, on l'améliore jusqu'à le présenter dans une interface Web explorable. Code dégueu pour un célibataire (donc pas d'histoire de parts).