hello,好久不见,今天小编给大家分析以下问题,主要对高一计算机编程入门,紧急求解高一电脑编程~~~进行剖析,大家看完之后应该会有所吸收。

本文目录

  1. 紧急求解高一电脑编程~~~
  2. 高一学编程会不会太晚
  3. 我想学编程,请问该怎么入门

紧急求解高一电脑编程~~~

闰年

闰年:1.为了弥补人为的年份规定与地球实际绕日公转的时间差,2.而人为把时间差补上了的年份,该年即为闰年.

遵循的规律为:四年一闰,百年不润,四百年再润.

if((year%400==0)|(year%4==0)&(year%100!=0))//闰年的计算方法

详情如下:

闰年(leapyear),在公历(格里历)或夏历中有闰日的年份,以及在中国旧历农历中有闰月的年份。地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropicalyear)。公历的平年只有365日,比回归年短约0.2422日,所余下的时间约为四年累计一天,于第四年加于2月,使当年的历年长度为366日,这一年就为闰年。现行公历中每400年有97个闰年。夏历的平年只有354日,比12个朔望月短0.3671日,为使每月初一与月朔相合,规定每30年中有11年的年底增加1日,这一年的历年有355日,即为闰年。中国旧历农历作为阴阳历的一种,每月的天数依照月亏而定,一年的时间以12个月为基准,平年比一回归年少约11天。为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月。在加有闰月的那一年有13个月,历年长度为384或385日,这一年也称为闰年。

按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。

也就是我们通常所说的:

四年一闰,百年不闰,四百年再闰。

西方公历的“闰年”

阳历中有闰日的年份叫闰年,相反就是平年,平年为365天,闰年为366天。在公历(格里历)纪年中,平年的二月为28天,闰年的二月为29天。闰年平月2月29日为闰日。

增加闰日的原因

现时的公历以回归年为“年”的计算基础,而一个回归年大约等于365.24220日。因为在平年公历只计算365日,结果四年后便会累积0.24220×4=0.9688日,大约等于一日,所以便逢四年增加一日闰日以抵销这0.9688日。

计算闰年的方法

公历纪年法中,能被4整除的大多是闰年,不能被100整除而能被400整除的年份是闰年,能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。

中国农历的“闰年”

中国旧历农历纪年中,有闰月的一年称为闰年。一般年份为12个月,354或355天,闰年则为13个月,383或384天

编程中公历闰年的简单计算方法:

设年份year

if(year能被4整除and不能被100整除)oryear能被400整除

then该年为闰年

else该年为平年

具体程序代码:

#主模块:

;月历打印

;主程序设置好入口参数,BX=年份,DL=月份

;调用子程序display

;Bywangrui

;2006-12-8

extrndisplay:far

Esccodeequ01h

Upequ048h

Downequ050h

Leftequ04bh

Rightequ04dh

dsegsegment

Yeardw0

Monthdb0

tempdb10dup(0)

countdw?

ErrMsgdb0dh,0ah,"TheinputNOTdecimal!$"

dsegends

csegsegment

assumecs:cseg,ds:dseg

start:

movax,dseg

movds,ax

callGetYearMonth

Ws:

movbx,Year

movdl,Month

callfarptrdisplay

again:

movah,0

int16h

cmpah,Esccode

jeExit

cmpah,Up

jeNextY

cmpah,Down

jePreY

cmpah,Left

jePreM

cmpah,Right

jeNextM

jmpagain

NextY:

incYear

jmpWs

PreY:

decYear

jmpWs

NextM:

incMonth

cmpMonth,12

jbeskip0

movMonth,1

incYear

skip0:

jmpWs

PreM:

decMonth

cmpMonth,1

jaeskip1

movMonth,12

decYear

skip1:

jmpWs

Exit:

movah,4ch

int21h

;**************************************************

GetYearMonthprocnear

pushax

pushcx

pushsi

pushdi

inputagain:

movYear,0

movMonth,0

movsi,0

repeatY:

movah,1

int21h

cmpal,0dh

jeEndY

cmpal,20h

jeEndY

cmpal,1bh

jeExitDos0

cmpal,30h

jbErr

cmpal,39h

jaErr

subal,30h

movtemp[si],al

incsi

jmprepeatY

Err:

movah,9

leadx,ErrMsg

int21h

movah,2

movdl,0dh

int21h

movdl,0ah

int21h

jmpinputagain

EndY:

movbx,10

movdi,si

movsi,0

NextYBit:

movah,0

moval,temp[si]

movcount,di

subcount,si

deccount

movcx,count

jcxzskipY

lopmul:mulbx

looplopmul

skipY:addYear,ax

incsi

cmpsi,di

jneNextYBit

;----------------------------------Theyearisputinto[Year]

pushdx

movah,2

movdl,0dh

int21h

movdl,0ah

int21h

popdx

jmpskiplap

ExitDos0:

jmpExitDos

skiplap:

movsi,0

repeatM:

movah,1

int21h

cmpal,0dh

jeEndMon

cmpal,20h

jeEndMon

cmpal,1bh

jeExitDos

cmpal,30h

jbErr

cmpal,39h

jaErr

subal,30h

movtemp[si],al

incsi

jmprepeatM

EndMon:

movdi,si

movsi,0

movbl,10

NextMBit:

moval,temp[si]

movcount,di

subcount,si

deccount

movcx,count

jcxzskipM

lpmul:mulbl

looplpmul

skipM:addMonth,al

incsi

cmpsi,di

jneNextMBit

;-------------------------TheMonthisputinto[Month]

pushdx

movah,2

movdl,0dh

int21h

movdl,0ah

int21h

popdx

popdi

popsi

popcx

popax

ret

ExitDos:

movah,4ch

int21h

GetYearMonthendp

csegends

endstart

#打印模块:

;***********************************

;入口参数:bx=Yeardl=Month

;***********************************

publicdisplay

datasegment

Yeardw?

Monthdb?

leapdb?

weekstrdb"MONTURWENTHUFRISATSUN",’$’

fillblankdb"$"

fillblank4db"$"

fillblank3db"$"

cdb?

ydb?

firstdaydb?

tempdb?

MonthSizedb?

dataends

csegsegment

assumecs:cseg,ds:data

displayprocfar

pushds

movax,data

movds,ax

movYear,bx

movMonth,dl

movdx,0

xorbh,bh

movah,2

int10h

movah,6

moval,0

movbh,01110000b

movch,0

movcl,0

movdh,24

movdl,79

int10h

movah,6

moval,0

movbh,01110100b

movch,0

movcl,25

movdh,24

movdl,79

int10h

callfarptrdispYM

leadx,weekstr

movah,9

int21h

movah,2

movdl,0dh

int21h

movdl,0ah

int21h

callGetMonthSize;把当前月份的天数放到MonthSize

cmpMonth,2

jaskip

addMonth,12

decYear

skip:

movbl,100

movax,Year

divbl

movc,al

movy,ah

movcl,2

movbl,c

shrbl,cl;int(c/4)

shlc,1;2*c

subbl,c

addbl,y

shry,cl;int(y/4)

addbl,y;int(c/4)-2*c+y+int(y/4)--->bl

incMonth

xorah,ah

moval,Month

movdx,13

muldx

movcx,5

divcx

xchgax,bx

cbw

xchgax,bx

addbx,ax;int(c/4)-2*c+y+int(y/4)+int(13*(m+1)/5)

movax,bx

movcl,7

idivcl

cmpah,0

jGskipAdd

addah,7

skipAdd:

movbl,ah

movfirstday,bl

;--------------------------------计算出当前月份的第一天是星期几

movcl,bl

movch,0

deccl

jcxzskipF

FillB:movah,9

leadx,fillblank

int21h

loopFillB

skipF:

movcl,1

disLop:calldispWeek;日期已经放入cl

inccl

incbl

cmpbl,8

jbskipModle

movbl,1

movah,2

movdl,0dh

int21h

movdl,0ah

int21h

skipModle:

cmpcl,MonthSize

jbedislop

movah,2

movdl,0dh

int21h

movdl,0ah

int21h

popds

ret

displayendp

;******************************************************************

GetMonthSizeprocnear

pushax

pushdx

movleap,0

movax,Year

movch,00000011b

andch,al

movbl,100

divbl

movcl,ah

cmpch,0

jneskipNLeap

cmpcl,0

jneskipLeap

movax,Year

movbx,400

movdx,0

divbx

cmpdl,0

jeskipLeap

skipNLeap:

jmpgmsize

skipLeap:

incleap

gmsize:

moval,Month

cmpal,2

jereturn2

cmpal,8

jbskipInc

incal

skipInc:

testal,1

jzreturnEven

movMonthSize,31

jmpreturn

returnEven:

movMonthSize,30

jmpreturn

return2:

movMonthSize,28

cmpleap,0

jereturn

incMonthSize

return:

popdx

popbx

ret

GetMonthSizeendp

;*****************************************************************

dispWeekprocnear

pushcx

pushbx

pushax

pushdx

cmpcl,10

jaeDoubleDig

leadx,fillblank4

movah,9

int21h

movdl,cl

adddl,30h

movah,2

int21h

jmpback

DoubleDig:

movch,10

movah,0

moval,cl

divch

movcx,ax

movah,9

leadx,fillblank3

int21h

movdl,cl

adddl,30h

movah,2

int21h

movdl,ch

adddl,30h

int21h

back:

popdx

popax

popbx

popcx

ret

dispWeekendp

;*********************************************************

dispYMprocfar

pushbx

pushdx

movax,year

movdh,10

xorsi,si

next:divdh

movcl,ah

movch,0

incsi

pushcx

movah,0

cmpax,0

jnenext

movcx,si

repeat:popdx

movah,2

adddl,30h

int21h

looprepeat

movdl,0dh

movah,2

int21h

movdl,0ah

movah,2

int21h

moval,Month

movah,0

movbl,10

divbl

movcx,ax

movdl,cl

movah,2

adddl,30h

int21h

movdl,ch

adddl,30h

int21h

movdl,0dh

movah,2

int21h

movdl,0ah

movah,2

int21h

popdx

popbx

ret

dispYMendp

;****************************************************

csegends

end

高一学编程会不会太晚

不晚,甚至还早了。

一般来说,如果不是有志于计算机行业或者软件行业的,对编程语言浅尝辄止即可。

过早学习的话,不会对你当前有什么帮助,还很容易拖累你现在的学习进度。

若你有志于软件开发或者计算机从属行业,早点学编程是可以的,可以先从C语言学起。

之后再考虑Python还是Java,C#或者别的。

但说真的,程序员是真的不好混。。年纪轻轻秃了头的比比皆是,你需要谨慎考虑才是。

我想学编程,请问该怎么入门

学编程入门建议:

1.学编程要从根本出发,从理论上来说,需要广泛的阅读。了解算法的博大精深和计算机的基本理论。

2.从实践上来说,需要有广泛的练习,练习的广泛在于练习不同的内容。然后就是创新精神和数学思维能力,这些都是需要培养的。基础要打好学编程要具备一定的基础。

3.逻辑思维能力的培养、学程序设计要有一定的逻辑思维能力。“思维能力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。

对于高一计算机编程入门,紧急求解高一电脑编程~~~的讲解希望对大家有所收获,小编有点事先行告退。

点赞(8)

猜你喜欢

相关推荐

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部