Nello stato S, la cui moneta è il Din (D), sono in discussione due modi di pagare le imposte. La forma progressiva, illustrata nel grafico a sinistra: fino a 2000 D di reddito annuo non si pagano imposte, da 2000 a 4000 D si paga il 10% della parte di esso che supera i 2000 D, da 4000 a 5500 D si paga quanto chi ha un reddito di 4000 D pił il 20% della parte che supera i 4000 D, oltre i 5500 D si paga quanto chi ha un reddito di 5500 D pił il 35% della parte che supera i 5500 D. A destra è illustrato il sistema di tassa piatta: fino a 2000 D di reddito annuo non si pagano imposta, oltre i 2000 D si paga il 15% della parte di esso che supera i 2000 D. Quante imposte pagherebbero, con i due sistemi, coloro che hanno un reddito annuo di 1500 D, 3000 D, 5000 D, 7000 D, 15000 D?
Ecco il codice:
<script language="javascript"> function Calcola() { r = document.Impo.r.value; if(r < 2000) document.Impo.t1.value = 0; if(r >= 2000 && r < 4000) document.Impo.t1.value = (r-2000)*10/100; if(r >= 4000 && r < 5500) document.Impo.t1.value = 200+(r-4000)*20/100; if(r >= 5500) document.Impo.t1.value = 500+(r-5500)*35/100; if(r < 2000) document.Impo.t2.value = 0; if(r >= 2000) document.Impo.t2.value = (r-2000)*15/100 } </script> <center><b> Metti il <i>Reddito</i>. Clicca e ottieni l'<i>Imposta</i><br><br> <form name="Impo"> Reddito = <input type="text" name="r" value="" size=20> <br/><br/> Imposta Prog. = <input type="text" name="t1" value="" size=20><br/><br/> Imposta Flat = <input type="text" name="t2" value="" size=20><br/><br/> <input type="button" value="clicca" onClick="Calcola()"> </form> </b></center>
Come ottenere i grafici in JavaScript: clicca qui e qui (vedi qui).
Per l'insegnante, grafici (e calcoli) con R (vedi qui):
source("http://macosa.dima.unige.it/r.R") # se non l'hai ancora caricato f1=function(x) 0*x; f2=function(x) f1(2000)+10/100*(x-2000) f3=function(x) f2(4000)+20/100*(x-4000); f4=function(x) f3(5500)+35/100*(x-5500) f=function(x) ifelse(x<=2000,f1(x),ifelse(x<=4000,f2(x),ifelse(x<=5500,f3(x),f4(x)))) g1=function(x) 0*x; g2=function(x) g1(2000)+15/100*(x-2000) g=function(x) ifelse(x<=2000,g1(x),g2(x)) f(7000); g(7000) # 1025 750 # Grafici: BF=3.5; HF=2.8; Plane(0,7000,0,1100) graph2(f,0,7000, "brown") x=c(0,2000,4000,5500); POINT(x,f(x),"seagreen") text(2500,150,"10%",font=2,cex=0.9); text(4500,450,"20%",font=2,cex=0.9); text(5500,750,"35%",font=2,cex=0.9) abovex("fasce di reddito annuo (D)"); abovey("imposte annue (D)") BF=3.5; HF=2.8; Plane(0,7000,0,1100) graph2(g,0,7000, "brown") x=c(0,2000); POINT(x,g(x),"seagreen") text(3500,350,"15%",font=2,cex=0.9) abovex("fasce di reddito annuo (D)"); abovey("imposte annue (D)")
I grafici con Desmos: