Радио-86РК/Радио 12-87/Вечный календарь
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: А. СОРОКИН |
Попробуйте представить себе, как осложнилась бы жизнь, не изобрети наши предки календарь, Мы бы сейчас не знали, что живем на пороге XXI века, не ведали, сколько нам лет, когда вести детей в школу, когда уходить на пенсию… Когда, наконец, встречать новый год и что это будет за год — кошки или собаки, в чем его встречать — в белом или красном…
Одним словом, без календаря нам пришлось бы туго. К счастью, предки не ударили в грязь лицом и изобрели даже несколько календарей. Один из них, пользующийся в канун Нового года особой популярностью, мы и предлагаем вниманию владельцев «Радио-86РК». А подготовил его для вас московский школьник Андрей СОРОКИН.
Воспользовавшись программой «Вечный календарь», вы сможете узнать день недели любой заинтересовавшей вас дат с 1581-го по 4000 год (переход со старого стиля на новый учитывается автоматически), название года по восточному календарю и соответствующий ему цвет.
10 Dim N$(11),W$(6),K(12),JK$(11) 20 Cls:Cur 17,24:Print "ВЕЧНЫЙ КАЛЕНДАРЬ (ОТ 1581Г.)" 30 For I=0 To 11: Read N$(I): Next I 40 For I=0 To 6: Read W$(I): Next I 50 For I=0 To 11:Read K(I): Next I 60 For I=0 To 11: Read JK$(I): Next I 70 Print : Print Tab(17);"ВВЕДИТЕ:МЕСЯЦ,ГОД";:Input ME,G 80 XY=0: D=1:If G/4=Int(G/4) Then K(1)=29 90 Rem * ПОПРАВКА НА СТИЛЬ ЛЕТОИСЧИСЛЕНИЯ * 100 If G<1918 Then D=0 110 GE=G:M=ME 120 GoSub 140: Goto 220 130 Rem * ВЫЧИСЛЕНИЕ ДНЯ НЕДЕЛИ * 140 If M>=3 Then M=M-2: Goto 170 150 If M<3 Then M=M+10 160 If M>10 Then G=G-1 170 CE=Int(G/100): G=G-CE*100 180 Z=Int(2.6*M-0.1):DD=Z+D+G+Int(G/4)+Int(CE/4)-2*CE 190 L=DD+777 : DN=L-7*Int(L/7) 200 If DN=0 Then DN=7 210 Return 220 Cls: Cur 4,24 230 GoSub 760 240 Y=DN-1 : SP=21 :U=2 250 Rem * ЦИКЛ МЕСЯЦЕВ * 260 For I=ME-1 To 11 Step 2 270 If I+1>11 Then U=1 280 If I=ME+7 OR I=ME+3 OR I=ME+11 Then GoSub 620 290 Cur 23,SP: Print N$(I) 300 If U<>1 Then Cur 44,SP:Print N$(I+1) 310 Rem * ЦИКЛ ДНЕЙ НЕДЕЛИ * 320 For SH=0 To 6 330 Cur 0,SP-SH-1: Print W$(SH): Next SH 340 X=15 350 For V=1 To U: If V=1 Then DK=I 360 If V=2 Then DK=I+1 370 Rem * ЦИКЛ ЧИСЕЛ * 380 For J=1 To K(DK) 390 Y=Y+1 400 If SP-Y=SP-8 Then Y=1: X=X+3 410 Cur X,SP-Y: Print J 420 Next J 430 X=36: Next V 440 SP=SP-9: Next I: XY=1 450 Rem * ПЕЧАТЬ РИСУНКА * 460 GoSub 620: Cls: Cur 0,24 470 Print Tab(6); "Ш" 480 Print Tab(5) ;"ШШШ" 490 Print Tab(4) ;"ШШШШШ" 500 Print Tab(3) ;"ШШШШШШШ" 510 Print Tab(2) ;"ШШШШШШШШШ" 520 Print Tab(1) ;"ШШШШШШШШШШШ" 530 Print "ШШШШШШШШШШШШШ" 540 Print Tab(6);"Ш" 550 Print Tab(6);"Ш" 560 GE=GE+1: Print Tab(17);"С НОВЫМ ГОДОМ !!!" 570 GoSub 760 580 PR=Usr(-2045) 581 Cls 582 U=2:K(1)=28 583 If GE=1918 Then ME=1:G=1918 :Goto 80 590 Cls 591 Cur 0,24 592 GoSub 760: ME=1: If GE/4=Int(GE/4) Then K(1)=29 600 Goto 260 610 Rem * ВВОД ДАННЫХ И ИХ ОБПАБОТКА ДЛЯ ПРОДОЛЖЕНИЯ ПЕЧАТИ * 620 Cur 22,2: Input "ДАЛЬШЕ (ДА/НЕТ)"; DA$ 630 If LEFT$(DA$,1)<>"Д" AND LEFT$(DA$,1)<>"D" Then 660 640 Cls: SP=21: If XY=1 Then XY=0:Return 650 Cls:Cur 0,24: GoSub 760: Return 660 Cls:Cur 10,22: Print "ДОЛГИХ ВАМ ЛЕТ ЖИЗНИ !!!" 670 K(1)=28: Goto 70 680 Rem * ОПИСАНИЕ ДАННЫХ * 690 Data ЯНВАРЬ,ФЕВРАЛЬ,МАРТ,АПРЕЛЬ,МАЙ,ИЮНЬ,ИЮЛЬ,АВГУСТ 700 Data СЕНТЯБРЬ,ОКТЯБРЬ,НОЯБРЬ,ДЕКАБРЬ 710 Data ПОНЕДЕЛЬНИК,ВТОРНИК,СРЕДА,ЧЕТВЕРГ,ПЯТНИЦА,СУББОТА,ВОСКРЕСЕНЬЕ 720 Data 31,28,31,30,31,30,31,31,30,31,30,31 730 Data ОБЕЗЬЯНЫ,КУРИЦЫ,СОБАКИ,СВИНЬИ,МЫШИ,КОРОВЫ 740 Data ТИГРА,ЗАЙЦА,ДРАКОНА,ЗМЕИ,ЛОШАДИ,ОВЦЫ 750 Rem *ОПРЕДЕЛЕНИЕ И ВЫВОД НАЗВАНИЯ ГОДА ПО ВОСТОЧНОМУ КАЛЕНДАРЮ* 760 OS=GE-12*Int(GE/12) 770 W$=JK$(OS) 780 Print Tab(5);"ПО ВОСТОЧНОМУ КАЛЕНДАРЮ ";GE;" ГОД - ГОД ";W$ 790 GC=GE-1563-Int((GE-1564)/60)*60 800 CO=VAL(RIGHT$(STR$(GC),1)) 810 If CO=1 OR CO=2 Then CO$="СИНИЙ":Goto 860 820 If CO=3 OR CO=4 Then CO$="КРАСНЫЙ":Goto 860 830 If CO=5 OR CO=6 Then CO$="ЖЕЛТЫЙ":Goto 860 840 If CO=7 OR CO=8 Then CO$="БЕЛЫЙ" :Goto 860 850 CO$="ЧЕРНЫЙ." 860 Print Tab(17); "ЦВЕТ ГОДА-"; CO$ 870 Return
Для этого достаточно ввести текст программы в компьютер и запустить ее оператором RUN. На экране появится надпись «ВЕЧНЫЙ КАЛЕНДАРЬ», и компьютер предложит вам ввести месяц и год интересующей даты. Когда это будет сделано, на экране возникнет несколько месяцев календаря «заказанного» года и компьютер поинтересуется, нужны ли последующие месяцы. При положительном ответе («да») он их «распечатает», причем переход на следующий год будет сопровождаться появлением на экране компьютера новогоднего поздравления,
Вообще, история возникновения календаря очень интересна и тем, кто хочет познакомиться с ней подробнее, рекомендую книгу: Климишин И. А. Календарь и хронология.— М.: Наука, 1985.
А. СОРОКИН, г. Москва