Как Петя Бейсиков Тоню Соображалкину программировать учил
- Автор: Бруно Мартузан
- Жанр: Околокомпьютерная литература / Детская образовательная литература / Basic, Visual Basic, VB Script, VBA и т.п.
- Дата выхода: 1987
Читать книгу "Как Петя Бейсиков Тоню Соображалкину программировать учил"
12. НЕБОЛЬШОЙ ЭКСКУРС В БУХГАЛТЕРСКОЕ ДЕЛО
— Эта программа рассчитывает подоходный налог по заданной величине зарплаты.
— Ужас, какие серьезные дела! Я, например, и знать не знаю, сколько мои предки получают и какие налоги платят.
— Могла бы и поинтересоваться. Правда, я и сам, только работая с этой программой, узнал, по какому алгоритму рассчитывается подоходный налог. И этот алгоритм выглядит так: с зарплаты, меньшей 70 рублей, никаких налогов не удерживают — это так называемый необлагаемый минимум. Налог не удерживают и с копеек. Если тебе положены 71 руб. 99 коп., то налог будешь платить только с 71 рубля. Для сумм 71,72 или 73 рубля налог N рассчитывается по формуле:
N=0.34A—23.89,
где через А обозначена зарплата. Для следующих сумм формулы будут такими:
N=0.35A—24.60, если 74<А<76;
N=0.34A—23.79, если 77<А<90;
N=0.12А—3.80, если 91 <А<100.
Наконец, начиная с 101 рубля налог платят как со ста рублей плюс еще 13 % от суммы выше ста рублей. Для этого случая получается такая формула:
N=0.1 ЗА—4.80.
— Поняла я не так уж много.
— Тогда посмотри еще блок-схему.
А теперь текст программы.
10 PRINT "ПРОГРАММА СЧИТАЕТ ПОДОХОДНЫЙ НАЛОГ"
20 REM А — ДОХОД / N — НАЛОГ
30 М=70 RЕM НЕОБЛАГАЕМЫЙ МИНИМУМ ЗАРПЛАТЫ
40 R1=.34 REM КОЭФФ. В ФОРМУЛЕ N=R1*A-Z
56 R2=.35
60 R3=.12
70 R4=.13
80 S1=73 RЕM КОНСТАНТЫ ДЛЯ СМЕНЫ ФОРМУЛ
90 S2=76 S3=90
100 Z1=23.39 RЕМ КОЭФФ. В ФОРМУЛАХ
110 Z2=24.6
120 Z3=23.79
130 Z4=3.8
140 Z5=4.8
150 S4=100
155
160 PRINT PRINT "ВВЕДИТЕ ЗАРПЛАТУ В РУБЛЯХ"
170 INPUT A1
180 A=INT(A1) REM НАЛОГ НАСЧИТЫВАЮТ ТОЛЬКО С РУБЛЕЙ
185
190 RЕМ НАЧАЛО РАСЧЕТА НАЛОГА жжжжжжжжжжжжжжжжжжжжжжжжжжж
200 IF А>М THEN 220
210 PRINT "ЗАРПЛАТА";А;" РУБ. НЕ ОБЛАГАЕТСЯ" GO ТО 350
220 IF А>S1 THEN 240
230 N=R1*A-Z1 GO ТО 310 REM 0.34*А-23.89
240 IF А>S2 THEN 260
250 N=R2*A-Z2 GO ТО 310 РЕМ 0.35*А-24.60
260 IF А>S3 THEN 280
270 N=R1*A-Z3 GO ТО 310 РЕМ 0.34*А-23.79
280 IF А>S4 THEN 300
290 N=RЗ*А-Z4 GO ТО 310 REM 0.12*А-3.80
300 N=R4*A-Z5 РЕМ 0.13*А-4.80
305
310 REM НАЛОГ РАССЧИТАН жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
320 K=INT(N*100+.5) N=K/100
330 R=INT(N) K=K-R*100 REM ОТДЕЛЯЕТ РУБ. ОТ КОП.
340 PRINT PRINT “НАЛОГ БУДЕТ ”;R;” РУБ. ”;к;" КОП”
350 PRINT PRINT “ВВЕДИТЕ 0 ДЛЯ ОКОНЧАНИЯ РАБОТЫ”
360 INPUT Z
370 IF Z<>0 THEN 160
380 STOP
390 END
— Давай сюда эту программу, сейчас я ее разнесу в пух и прах. Так, так… Первая строка выпечатывает, что программа собирается делать. Очень хорошо. Во второй строке примечания — зарплата, налог…
— В следующих строках я определяю необходимые для счета постоянные. Например, через М обозначаю необлагаемый минимум. Когда этот минимум повысят, в программе нужно будет поменять только строку 30 и не придется по всей программе искать, где стоит число 70 и что именно это 70 там означает. То же самое и с другими постоянными.
— Понято! Это происходит в строках с номерами с 30 по 150. Потом пользователь вводит величину зарплаты. Это происходит в строке 170. А в строке 180? Что там делается?