ぱそこんサービス(PC service)
 
客様の満足度を第一に考え、より安く! 無料のオープンソース自由に活用。     2

 
トップ > 実験室 > Nifty復活 > 印紙税計算

約束手形 印紙税計算

プレゼント 
下記はソースリストです。

1000 '******************************
1010 '  約束手形 印紙税計算
1020 '    iAsai 1986/08/19-88/03/31
1021 '            93/12/09-98/08/17
1030 '  file name : tegcut6.txt
1040 '******************************
1080 '
1180 ' /*  表題印書
1190 PRINT  "                   ====================================="
1200 PRINT  "                        約束手形  | 3百万円以下の      "
1210 PRINT  "                         印紙税   |  時には効果が       "
1220 PRINT  "                          計算    |   在りません        "
1230 PRINT  "                      ------------------------------    "
1240 PRINT  "                         額面が百万円を超えいる時に     "
1250 PRINT  "                        端数として百万円未満の金額が    "
1260 PRINT  "                           有る時は百万円と端数を       "
1270 PRINT  "                            加えた額面で発行して。      "
1280 PRINT  "                         (百万未満の発行はしません)     "
1290 PRINT  "                   ====================================="
1410 '
1420 ' /*  額面入力
1430 INPUT "金額を入れて下さい。:"; A#
1440 IF A# <= 0 THEN PRINT "終了します。": END
1450 '
1460 '
1470 ' /*  額面で印紙税が確定する。
1480 IF A# > 1000000000# THEN Y# = 200000!:                                                                                                                               GOSUB 2060
1490 IF A# > 749000000# AND A# <= 1000000000# THEN Y# = 150000!:                                                                                                          GOSUB 2060
1500 IF A# < 100000! THEN Y# = 0: GOSUB 2060
1510 IF A# >= 100000# AND A# < 1000000# THEN Y# = 200!:                                                                                                                   GOSUB 2060
1520 '
1530 ' /*  入力金額出力
1540 PRINT  USING "#,###,###,###"; A#; : PRINT  "単独";
1550 '
1560 ' /*  税表読込み
1570 READ X#, Y#
1580 ' /*  税表終了--> 合計出力
1590 IF X# = 0 THEN GOTO 1920' /*  端数出力へ
1600 '
1610 ' /*  税額確認
1620 B# = A# - INT(A# / X#) * X#: ' /*  残額
1630 C# = INT(A# / X#):   ' /*  処理フラグ C#=0:処理されない,1:処理された
1640 '
1650 ' /*  入力額面を一枚で発行した印税
1660 IF C# = 1 AND G = 0 AND A# > X# THEN PRINT  USING "#,###,###"; F#; : PRINT  "が": PRINT  "------------------------------": G = 1 ELSE IF C# = 1 AND G = 0 THEN PRINT  "": G = 1
1680 F# = Y#: ' /*  前回税額
1690 '
1700 ' /*  残額に百万円以下の端数が有るとき
1710 '   /*  発生時の処理
1720 IF C# = 1 AND B# < 1000000# AND B# <> 0 THEN A# = A# - (B# + 1000000#):                                                                                              E# = 1000000# + B#: GOTO 1570
1730 '   /*  二百万円と端数で発行のとき
1740 IF C# = 1 AND X# = 1000000# AND E# <> 0 THEN A# = A# + E#: Y# = 600:                                                                                                 GOSUB 2060
1750 '
1760 ' /*  処理額が上位額-百万円を超える時は上位印税額で終了
1770 IF X# = 300000000# AND A# > 499000000# THEN Y# = 100000!:                                                                                                            GOSUB 2060
1780 IF X# = 200000000# AND A# > 299000000# THEN Y# = 60000!:                                                                                                             GOSUB 2060
1790 IF X# = 100000000# AND A# > 199000000# THEN Y# = 40000!:                                                                                                             GOSUB 2060
1800 IF X# = 50000000# AND A# > 99000000# THEN Y# = 20000:                                                                                                                GOSUB 2060
1810 IF X# = 30000000# AND A# > 49000000# THEN Y# = 10000:                                                                                                                GOSUB 2060
1820 IF X# = 20000000# AND A# > 29000000# THEN Y# = 6000:                                                                                                                 GOSUB 2060
1830 IF X# = 10000000# AND A# > 19000000# THEN Y# = 4000:                                                                                                                 GOSUB 2060
1840 IF X# = 5000000# AND A# > 9000000# THEN Y# = 2000:                                                                                                                   GOSUB 2060
1850 IF X# = 3000000# AND A# > 4000000# THEN Y# = 1000:                                                                                                                   GOSUB 2060
1860 IF X# = 1000000# AND A# > 1000000# THEN Y# = 400:                                                                                                                    GOSUB 2060
1870 '
1880 ' /*  今回の税額で処理された時、額面と印税を出力
1890 IF C# = 1 THEN PRINT  USING "#,###,###,###"; X#; Y#:                                    Q# = Q# + X#: R# = R# + Y#: A# = B#: GOTO 1570 ELSE GOTO 1570                              ' /*  新しい税表へ
1900 '
1910 ' /*  端数値出力
1920 IF E# <> 0 THEN Y# = 400: PRINT  USING "#,###,###,###"; E#; Y#: Q# = Q# + E#: R# = R# + Y#
1930 '
1940 ' /*  合計出力
1950 PRINT  "=============================="
1960 PRINT  USING "#,###,###,###"; Q#; R#; : PRINT  "合計": PRINT 
1970 RESTORE: CLEAR : GOTO 1080' /*  新しい入力へ
1980 '
1990 ' /*  税表テーブル
2000 DATA 1000000000,150000
2010 DATA  500000000,100000,300000000,60000,200000000,40000,100000000,20000
2020 DATA   50000000, 10000, 30000000, 6000, 20000000, 4000, 10000000, 2000
2030 DATA    5000000,  1000,  3000000,  600,  2000000,  400,  1000000,  200
2040 DATA     100000,   200, 0,0
2050 '
2060 ' /*  SUB : 額面印書と合計加算
2070 PRINT  USING "#,###,###,###"; A#; Y#:                                                  Q# = Q# + A#: R# = R# + Y#:                                                     GOTO 1930