回 帖 发 新 帖 刷新版面

主题:[讨论]本人最近做的编程练习题

本人最近做的编程练习题

 这道题原本是我看到的一个小学生数学题,现在 我把它稍加改动,做成 汇编程序编程题

 题目 要求 :  假设有一个无限非循环小数, 0.771711711171111711111.........
              这个小数的小数位 精确到 210位 时 它们的位数相加 的和等于多少?例如
               
              7+7+1+7+1+1+7+1+1+1+7+1+1+1+1.........这样加下去到210 位的和是多少?

现在要求用汇编语言程序设计, 求出一下3个数据结果:

      1.      输入一个数 表示小数位数长度 例如 210 位 ,求出这个序列数的和? 显示出来

      2.      求出这个位数的最后一位是 '7' 还是  '1' 并显示出来;

      3.      求出这个序列数 的循环次数,例如  7 71 711 7111 71111 循环5次,并显示出来

期待他家的参与,

我已经把程序作出了,等待大家有不同的解法

我做的程序是可以满足求 1000一下 位数的和!


回复列表 (共7个回复)

沙发


程序截图


[img]http://photo.blog.sina.com.cn/photo/5ee4bba3x9b2010aa2aaa[/img]

板凳

http://photo.blog.sina.com.cn/controllers/photo_edit_flash.php?pic_id=5ee4bba3x9b2010aa2aaa&ctg_id=209501&title=ccf

3 楼

tupian


http://g1a54.mail.126.com/app/wp/doGetFile.jsp?sid=LBIURsAcwcUKUlfJeJcckSSnDJOdPOLX&mode=download&mid=67:1tbiQxXUA00vIeNoHAACsX

4 楼

怎么不能同时显示图片呀!!!!!!!!!!!

麻烦楼主发个 上传图片的方法?

5 楼


[url=http://]http://g1a54.mail.126.com/app/wp/doGetFile.jsp?sid=LBIURsAcwcUKUlfJeJcckSSnDJOdPOLX&mode=download&mid=67:1tbiQxXUA00vIeNoHAACsX[/url]

6 楼

怎么没人关注啊?我的 代码有点长,我贴上代码:

dat segment
msg1            DB 'please input a integer $'
msg2            DB 'context result is: $'
msg2Len         EQU $ - msg2
msg3            DB 'input error! $'
msg7            DB '              $'
msg4            DB 'SUM =  $'
msg5            DB 'Cycle count = $'
msg6            DB 'end char  =  $'
nReg            DW 20 DUP(?)
BitNum          DW ?
CYCLE1          DW ?
SUM1            DW ?
iNum            DW ?
Ed1             DW ?
BitN            DB 10 DUP(?)
dat ends

datstack segment para stack 'stack'
darray          DB 300 DUP(?)
top             DW ? 
datstack ends

7 楼


code      segment
          assume DS:DAT,CS:code,SS:datstack

start:    XOR AX,AX
          MOV AX,dat
          MOV DS,AX
          MOV AX,datstack
          MOV SS,AX

STOI      MACRO           sour,count,iResult
          LOCAL L
          MOV  BX,0H        
          MOV  SI,0H
          MOV  BL,01H
L:        MOV  AX,00H
          MOV  AL,BL
          MUL  BYTE PTR[sour]
          ADD  SI,AX
          INC  sour
          MOV  AL,BL
          MOV  BH,10
          MUL  BH
          MOV  BL,AL
          DEC  count
          CMP  count,00H
          JNE  L
          MOV  iResult,SI
          ENDM

          ;LEA DI,msg1
RI:       MOV DX,offset msg1
          MOV AH,09H
          INT 21H
          CALL showCR
          MOV SI,00H
loop1:    MOV AH,01H
          INT 21H
          SUB AL,30H
          MOV BYTE PTR[BitN+SI],AL
          INC SI
          ADD AL,30H
          CMP AL,0DH
          JNE loop1
          CMP SI,4
          JA  RITIP
          JLE CON
RITIP:    MOV DX,offset msg3
          MOV AH,09H
          INT 21H
          CALL showCR
          JMP RI
CON:      XOR AX,00h
          DEC SI
          MOV nReg,SI
          CMP nReg,01H
          JZ A1
          CMP nReg,02H
          JZ A2
          CMP nReg,03H
          JZ A3
A2:       MOV AL,BYTE PTR[BitN+0]
          MOV AH,BYTE PTR[BitN+1]
          MOV BYTE PTR[BitN+1],AL
          MOV BYTE PTR[BitN+0],AH 
          JMP A1
          
A3:       MOV AL,BYTE PTR[BitN+0]
          MOV AH,BYTE PTR[BitN+2]
          MOV BYTE PTR[BitN+2],AL
          MOV BYTE PTR[BitN+0],AH
A1:       LEA DI,BitN

          STOI         DI,nReg,BitNum
          MOV CX,BitNum

          MOV AX,00H
          MOV BX,0001H
          ADD AX,07H
          DEC CX

C2:       ADD AX,07H
          MOV Ed1,07H
          INC BX
          DEC CX
          CMP CX,00H
          JZ  C3
          
          MOV BP,BX
          SUB BP,01H
          MOV DX,BP
C1:       ADD AX,01H
          MOV Ed1,01H
          DEC DX
          DEC CX
          CMP CX,00H
          JZ  C3
          CMP DX,00H
          JNZ C1
          CMP CX,00H
          JNZ C2
          JZ  C3
C3:       MOV CYCLE1,BX       ;
          MOV CYCLE1,BX       ;cycle count
          MOV SUM1,AX         ;
          MOV SUM1,AX         ;complate sum
          MOV AX,Ed1          ;end integer

我来回复

您尚未登录,请登录后再回复。点此登录或注册