home *** CD-ROM | disk | FTP | other *** search
/ Input 64 / Input_64_85-04_1985_Verlag_Heinz_Weise_de.d64 / EINKOMMENSTEUERT (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  8KB  |  269 lines

  1. 100 poke50257,0
  2. 110 poke 53280,10: poke 53281,0
  3. 120 print chr$(147);chr$(14);chr$(8);
  4. 130 z=0: f=9: gosub 60610
  5. 140 print "[149]        [197]inkommenssteuertabelle";
  6. 150 z=1: f=8: gosub 60610
  7. 170 z=24: f=8: gosub 60610
  8. 180 print "[149] [198]ehler : [146]";
  9. 190 ft$="  o.k. !": gosub 60210
  10. 510 gosub 60910
  11. 515 so$="[129]        [185][185][185][185]"
  12. 520 su$="[145][129]        [184][184][184][184]"
  13. 525 kt$="   [205]enue    ": gosub 60110
  14. 530 z=4: s=0: f=8: r=0: gosub 60410
  15. 550 print so$:print "        [158] f1 [146]  -  [200]inweise"
  16. 560 print su$: print so$
  17. 570 print "        [158] f3 [146]  -  [193]nfangswerte"
  18. 580 print su$: print so$
  19. 590 print "        [158] f5 [146]  -  [193]usgabe": print su$
  20. 710 get c$: if c$="" goto 710
  21. 720 c=asc (c$)-132
  22. 730 if c<1 or c>3 goto 810
  23. 740 ft$="  o.k. !": gosub 60210
  24. 750 on c goto 1010, 2010, 3010
  25. 810 ft$="  [206]icht erlaubte [212]aste !": gosub 60210: goto 710
  26. 1010 kt$="  [200]inweise  ": gosub 60110: goto 5110
  27. 2010 kt$="[193]nfangswerte": gosub 60110: gosub 60910
  28. 2040 z=4: s=0: f=7: r=0: gosub 60410    
  29. 2070 print so$: print "        [158] f1 [146]  -  [199]rundtabelle"
  30. 2080 print su$: print so$
  31. 2090 print "        [158] f3 [146]  -  [211]plittingtabelle": print su$
  32. 2110 get c$: if c$="" goto 2110
  33. 2120 c=asc (c$)-132
  34. 2130 if c<1 or c>2 goto 2190
  35. 2140 ft$= "  o.k. !": gosub 60210: gosub60910
  36. 2150 gosub 60910: z=4: s=3: f=7: r=0: gosub 60410
  37. 2155 on c goto 2160,2170
  38. 2160 print"[199]rundtabelle"
  39. 2165 tb=1: z=z+1: gosub 60450: print "[163][163][163][163][163][163][163][163][163][163][163][163]": goto 2210
  40. 2170 print "[211]plittingtabelle"
  41. 2180 tb=2: z=z+1: gosub 60450: print "[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]": goto 2210
  42. 2190 ft$="  [206]icht erlaubte [212]aste !": gosub 60210: goto 2110
  43. 2210 ft$="  o.k. !": gosub 60210: z=8: s=3: f=7: r=0: gosub 60410
  44. 2220 print "[193]nfangswert :";
  45. 2230 ez=8: es=18: gosub 60710: aw=val(ew$)
  46. 2260 z=10: s=3: f=7: r=0: gosub 60410
  47. 2270 print "[197]ndwert     :";
  48. 2280 ez=10: es=18: gosub 60710: ew=val(ew$)
  49. 2310 if aw < ew goto 510
  50. 2320 ft$="  [197]ndwert <= [193]nfangswert !"
  51. 2330 gosub 60210: goto 510
  52. 3010 kt$="  [193]usgabe   ": gosub 60110
  53. 3030 def fnsp(x)=7-(int(log(x)/log(10)))
  54. 3110 if tb=2 goto 3140
  55. 3120 la=54*int(aw/54): lb=la+53
  56. 3130 tb$="  [199]rundtabelle  ": goto 3160
  57. 3140 la=108*int(aw/108): lb=la+107
  58. 3150 tb$="[211]plittingtabelle"
  59. 3160 zt=7: goto 4110
  60. 3210 lc=la: if tb=2 then lc=la/2
  61. 3230 if lc<4212 goto 3320
  62. 3240 if lc<18000 goto 3330
  63. 3250 if lc<59999 goto 3340
  64. 3260 if lc<129999 goto 3360
  65. 3310 ld=int(0.56*lc-14837): goto 3410
  66. 3320 ld=0: goto 3410
  67. 3330 ld=int(0.22*lc-926): goto 3410
  68. 3340 ld=(lc-18000)/10000
  69. 3350 ld=int((((3.05*ld-73.76)*ld+695)*ld+2200)*ld+3034): goto 3410
  70. 3360 ld=(lc-60000)/10000
  71. 3370 ld=int((((0.09*ld-5.45)*ld+88.13)*ld+5040)*ld+20018)
  72. 3410 if tb=2 then ld=ld+ld
  73. 3415 z=zt: s=1: gosub 60450:p1=7:p2=7:p3=7
  74. 3420 if la<>0 then p1=fnsp(la)
  75. 3430 if lb<>0 then p2=fnsp(lb)
  76. 3440 if ld<>0 then p3=fnsp(ld)
  77. 3450 s=0+p1: gosub 60450: print la;
  78. 3460 print "-";: s= 9+p2: gosub 60450: print lb;
  79. 3470 s=24+p3: gosub 60450: print ld;
  80. 3480 zt=zt+1: if zt<=19 goto 3510
  81. 3490 zt=7: ts=4: goto 6110
  82. 3510 if tb=2 goto 3530
  83. 3520 la=la+54: lb=lb+54: goto 3550
  84. 3530 la=la+108: lb=lb+108
  85. 3550 if la<=ew goto 3210
  86. 3560 ts=5: goto 6110
  87. 4110 gosub 60910: z=3: s=0: f=7: r=0: gosub 60410
  88. 4130 print"[182][183][183][183][183]";
  89. 4135 print"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]";
  90. 4140 print"[183][183][183][183][183][183][183][183][183][181][182]    [197]inkommen ";
  91. 4145 print"    [181]                   [181]";
  92. 4150 print"[182][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]";
  93. 4155 print"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][181][182]         ";
  94. 4160 print"                         ";
  95. 4165 print"    [181][182]                  [181]";
  96. 4170 print"                   [181][182]    ";
  97. 4175 print"              [181]          ";
  98. 4180 print"         [181][182]              ";
  99. 4185 print"    [181]                   [181]";
  100. 4190 print"[182]                  [181]     ";
  101. 4195 print"              [181][182]         ";
  102. 4200 print"         [181]               ";
  103. 4205 print"    [181][182]                  [181]";
  104. 4210 print"                   [181][182]    ";
  105. 4215 print"              [181]          ";
  106. 4220 print"         [181][182]              ";
  107. 4225 print"    [181]                   [181]";
  108. 4230 print"[182]                  [181]     ";
  109. 4235 print"              [181][182]         ";
  110. 4240 print"         [181]               ";
  111. 4245 print"    [181][182]                  [181]";
  112. 4250 print"                   [181][182]    ";
  113. 4255 print"              [181]          ";
  114. 4260 print"         [181][182]              ";
  115. 4265 print"    [181]                   [181]";
  116. 4270 print"[182][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]";
  117. 4275 print"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][181]          ";
  118. 4280 z=4: s=21: gosub 60450: print tb$;: goto 3210
  119. 5110 ts=0: gosub 60910
  120. 5120 z=3: s=1: f=7: r=0: gosub 60410
  121. 5140 print"1.[193][204][204][199][197][205][197][201][206][197][211] ";
  122. 5145 print"                         ";
  123. 5150 print" [163][163][163][163][163][163][163][163][163][163][163][163][163]           ";
  124. 5155 print"                  [215]enn  [211]";
  125. 5160 print"ie  [201]hre   [211]teuererklaeru";
  126. 5165 print"ng      selbst  machen wo";
  127. 5170 print"llen,  benoetigen      [211]i";
  128. 5175 print"e  fuer die  [197]rmittlung  ";
  129. 5180 print"der  zu      zahlenden [211]t";
  130. 5185 print"euern eine [197]inkommens-   ";
  131. 5190 print"   steuertabelle. [205]it die";
  132. 5195 print"ser  [212]abelle      koennen";
  133. 5200 print" [211]ie feststellen ob:     ";
  134. 5205 print"                         ";
  135. 5210 print"                        -";
  136. 5215 print" [211]ie bei [201]hrer [211]teuerklae";
  137. 5220 print"rung            mit einer";
  138. 5225 print" [206]achzahlung rechen      ";
  139. 5230 print"      muessen, oder ob [211]i";
  140. 5235 print"e [211]teuern            zuru";
  141. 5240 print"eckbekommen.             ";
  142. 5245 print"                         ";
  143. 5250 print"                        -";
  144. 5255 print" das [198]inanzamt im [197]inkomm";
  145. 5260 print"ens-            steuerbes";
  146. 5265 print"cheid ([204]ohnsteuerbe-     ";
  147. 5270 print"      scheid) die zu zahle";
  148. 5275 print"nde [211]teu-           er r";
  149. 5280 print"ichtig berechnet hat.    ";
  150. 5290 goto 6110
  151. 5310 rem t2
  152. 5330 print"  -wieviel [211]teuern [211]ie spar";
  153. 5340 print"en,             wenn [211]ie ";
  154. 5345 print" durch  steuerlich       ";
  155. 5350 print"      beguenstigte  [193]usga";
  156. 5355 print"ben  [201]hr             'zu ";
  157. 5360 print"versteuerndes [197]inkommen' ";
  158. 5365 print"           senken.       ";
  159. 5370 print"                         ";
  160. 5375 print"                         ";
  161. 5380 print"              [196]iese      ";
  162. 5385 print"[197]inkommenssteuertabelle  ";
  163. 5390 print"    gilt unveraendert auc";
  164. 5395 print"h fuer die fo-     lgende";
  165. 5400 print"n  [202]ahre, solange der [211]te";
  166. 5405 print"uer-     tarif nicht geae";
  167. 5410 print"ndert wird.             [196]";
  168. 5415 print"ie  [199]rundtabelle[146]  gilt  f";
  169. 5420 print"uer alle      nicht verhe";
  170. 5425 print"irateten [208]ersonen, fuer  ";
  171. 5430 print"    die getrennt lebenden";
  172. 5435 print",  sowie fuer      die ge";
  173. 5440 print"trennt zu veranlagenden [197]";
  174. 5445 print"he-      gatten.         ";
  175. 5450 print"                        [198]";
  176. 5455 print"uer alle  anderen gilt di";
  177. 5460 print"e [211]plit-[146]      tingtabelle[146]";
  178. 5465 print".                        ";
  179. 5470 goto 6110
  180. 5610 rem t3
  181. 5630 print"  [196]i";
  182. 5635 print"e [212]abelle im [208]rogramm rei";
  183. 5640 print"cht von                  ";
  184. 5645 print"                         ";
  185. 5650 print"           0 [196][205] - 999999 ";
  186. 5655 print"[196][205] [146].                     ";
  187. 5660 print"                         ";
  188. 5665 print"      2.[194]enutzen des [208]rog";
  189. 5670 print"ramms                  [163][163]";
  190. 5675 print"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]     ";
  191. 5680 print"             [218]unaechst  e";
  192. 5685 print"rmitteln [211]ie  [201]hr  'zu   ";
  193. 5690 print"   versteuerndes [197]inkomme";
  194. 5695 print"n'. [193]nleitun-     gen daz";
  195. 5700 print"u entnehmen [211]ie entsprech";
  196. 5705 print"en-     den [194]uechern, ode";
  197. 5710 print"r [194]roschueren der      [203]o";
  198. 5715 print"mmunen und [198]inanzaemter. ";
  199. 5720 print"             [205]it dem [208]rog";
  200. 5725 print"rammteil  [193]nfangswerte[146]   ";
  201. 5730 print"   waehlen [211]ie [201]hre  [212]abe";
  202. 5735 print"lle  ([199]rund-      oder [211]p";
  203. 5740 print"littingtabelle) aus. [205]it ";
  204. 5745 print"der     [197]ingabe von [193]nfan";
  205. 5750 print"gswert und [197]ndwert     er";
  206. 5755 print"halten [211]ie den entspreche";
  207. 5760 print"nden [212]a-     bellenaussch";
  208. 5765 print"nitt.                    ";
  209. 5770 goto 6110
  210. 5910 rem t4
  211. 5930 print" [205]i";
  212. 5935 print"t [208]rogrammteil  [193]usgabe[146]  ";
  213. 5940 print"wird der     [212]abellenauss";
  214. 5945 print"chnitt  auf  [194]ildschirm  ";
  215. 5950 print"   ausgegeben.           ";
  216. 5955 print"                  [193]us der";
  217. 5960 print" [212]abelle lesen [211]ie die [200]o";
  218. 5965 print"ehe     der zu zahlenden ";
  219. 5970 print"[202]ahressteuer ab.       [206]a";
  220. 5975 print"ch [193]bzug der waehrend des";
  221. 5980 print"  [202]ahres     gezahlten  [211]";
  222. 5985 print"teuern  koennen [211]ie nun  ";
  223. 5990 print"   feststellen, ob [211]ie mi";
  224. 5995 print"t einer [210]ueck-    erstatt";
  225. 6000 print"ung oder [206]achzahlung zu r";
  226. 6005 print"ech-    nen haben.       ";
  227. 6110 ts=ts+1: z=22: s=3: gosub 60450
  228. 6120 print "[215]eiter :  w [146]          [205]enue :  m [146]"
  229. 6150 get c$: if c$="" goto 6150
  230. 6160 if c$="m" goto 510
  231. 6170 if c$<>"w" goto 6150
  232. 6180 gosub 60910
  233. 6190 z=3: s=1: gosub 60450
  234. 6200 on ts goto 5310,5610,5910,510,4110,510
  235. 60110 z=1: s=13: f=8: r=1: gosub 60410
  236. 60130 print kt$;: gosub 60510: return
  237. 60210 z=24: s=10: f=8: r=1: gosub 60410
  238. 60230 print "                            ";
  239. 60240 s=10: gosub 60450: print ft$;: gosub 60510
  240. 60270 z=az: s=as: f=af: r=ar: return
  241. 60410 az=peek(214):as=peek(211):ar=peek(199):af=peek(646)
  242. 60430 poke 199,r: poke 646,f
  243. 60450 poke 214,z: poke 211,s: sys 58640: return
  244. 60510 poke 199,ar: poke 646,af
  245. 60520 poke 214,az: poke 211,as: sys 58640: return
  246. 60610 s=0: r=1: gosub 60410
  247. 60630 print "                                       ";
  248. 60640 poke 55295+(z+1)*40,f: poke 1023+(z+1)*40,160
  249. 60660 az=z: as=s: af=f: ar=r: gosub 60510: return
  250. 60710 poke 204,1: ew$="": zz=0: z=ez: s=es: gosub 60410
  251. 60715 print "        ";: s=es: gosub 60450
  252. 60720 get w$: poke 204,0: if w$="" goto 60720
  253. 60730 w=asc(w$)
  254. 60740 if w=13 goto 60800
  255. 60745 if w=20 then 60710
  256. 60750 if w<48 or w>57 goto 60810
  257. 60760 zz=zz+1: if zz>6 goto 60850
  258. 60770 if ff<>0 then poke 204,1: ft$="  o.k. !": ff=0: gosub 60210
  259. 60780 ew$=ew$+w$
  260. 60790 s=es: z=ez: gosub 60450: print ew$;: goto 60720
  261. 60800 poke 204,1: print " ";: if zz=0 then print "[157]0";
  262. 60805 return
  263. 60810 ff=1: poke 204,1: ft$="  keine ziffer !": gosub 60210: goto 60720
  264. 60850 ff=1: poke 204,1: ft$="  [215]ert zu lang !": gosub 60210: goto 60710
  265. 60910 z=2: s=0: gosub 60450
  266. 60920 for i=1 to 22
  267. 60930 print "                                        ";
  268. 60940 next: return
  269.